Commit aa5ccd99 by Paolo Carlini Committed by Paolo Carlini

stl_algobase.h (__fill_aux(unsigned char*, unsigned char*, const unsigned…

stl_algobase.h (__fill_aux(unsigned char*, unsigned char*, const unsigned char&), [...]): Take the character by value.

2007-01-22  Paolo Carlini  <pcarlini@suse.de>

	* include/bits/stl_algobase.h (__fill_aux(unsigned char*,
	unsigned char*, const unsigned char&), __fill_aux(signed char*,
	signed char*, const signed char&), __fill_aux(char*, char*,
	const char&), __fill_aux(wchar_t*, wchar_t*, const wchar_t&)):
	Take the character by value.
	(__fill_n_aux): Likewise.

From-SVN: r121056
parent 4d8f018e
2007-01-22 Paolo Carlini <pcarlini@suse.de>
* include/bits/stl_algobase.h (__fill_aux(unsigned char*,
unsigned char*, const unsigned char&), __fill_aux(signed char*,
signed char*, const signed char&), __fill_aux(char*, char*,
const char&), __fill_aux(wchar_t*, wchar_t*, const wchar_t&)):
Take the character by value.
(__fill_n_aux): Likewise.
2007-01-21 Paolo Carlini <pcarlini@suse.de> 2007-01-21 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/30449 (fill, fill_n) PR libstdc++/30449 (fill, fill_n)
......
...@@ -580,35 +580,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -580,35 +580,21 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
// Specialization: for char types we can use memset (wmemset). // Specialization: for char types we can use memset (wmemset).
inline void inline void
__fill_aux(unsigned char* __first, unsigned char* __last, __fill_aux(unsigned char* __first, unsigned char* __last, unsigned char __c)
const unsigned char& __c) { std::memset(__first, __c, __last - __first); }
{
const unsigned char __tmp = __c;
std::memset(__first, __tmp, __last - __first);
}
inline void inline void
__fill_aux(signed char* __first, signed char* __last, __fill_aux(signed char* __first, signed char* __last, signed char __c)
const signed char& __c) { std::memset(__first, static_cast<unsigned char>(__c), __last - __first); }
{
const signed char __tmp = __c;
std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
}
inline void inline void
__fill_aux(char* __first, char* __last, const char& __c) __fill_aux(char* __first, char* __last, char __c)
{ { std::memset(__first, static_cast<unsigned char>(__c), __last - __first); }
const char __tmp = __c;
std::memset(__first, static_cast<unsigned char>(__tmp), __last - __first);
}
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
inline void inline void
__fill_aux(wchar_t* __first, wchar_t* __last, const wchar_t& __c) __fill_aux(wchar_t* __first, wchar_t* __last, wchar_t __c)
{ { std::wmemset(__first, __c, __last - __first); }
const wchar_t __tmp = __c;
std::wmemset(__first, __tmp, __last - __first);
}
#endif #endif
template<bool> template<bool>
...@@ -693,7 +679,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -693,7 +679,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _Size> template<typename _Size>
inline unsigned char* inline unsigned char*
__fill_n_aux(unsigned char* __first, _Size __n, const unsigned char& __c) __fill_n_aux(unsigned char* __first, _Size __n, unsigned char __c)
{ {
std::__fill_aux(__first, __first + __n, __c); std::__fill_aux(__first, __first + __n, __c);
return __first + __n; return __first + __n;
...@@ -701,7 +687,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -701,7 +687,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _Size> template<typename _Size>
inline signed char* inline signed char*
__fill_n_aux(signed char* __first, _Size __n, const signed char& __c) __fill_n_aux(signed char* __first, _Size __n, signed char __c)
{ {
std::__fill_aux(__first, __first + __n, __c); std::__fill_aux(__first, __first + __n, __c);
return __first + __n; return __first + __n;
...@@ -709,7 +695,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -709,7 +695,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
template<typename _Size> template<typename _Size>
inline char* inline char*
__fill_n_aux(char* __first, _Size __n, const char& __c) __fill_n_aux(char* __first, _Size __n, char __c)
{ {
std::__fill_aux(__first, __first + __n, __c); std::__fill_aux(__first, __first + __n, __c);
return __first + __n; return __first + __n;
...@@ -718,7 +704,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) ...@@ -718,7 +704,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
#ifdef _GLIBCXX_USE_WCHAR_T #ifdef _GLIBCXX_USE_WCHAR_T
template<typename _Size> template<typename _Size>
inline wchar_t* inline wchar_t*
__fill_n_aux(wchar_t* __first, _Size __n, const wchar_t& __c) __fill_n_aux(wchar_t* __first, _Size __n, wchar_t __c)
{ {
std::__fill_aux(__first, __first + __n, __c); std::__fill_aux(__first, __first + __n, __c);
return __first + __n; return __first + __n;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment