Integrating with NDK r5: STLPort still does not compile

This commit is contained in:
pelya
2011-01-28 14:38:24 +00:00
parent 8418a37c02
commit 343458d9a6
37 changed files with 153 additions and 145 deletions

View File

@@ -15,5 +15,5 @@ if ( grep "package $AppFullName;" project/src/Globals.java > /dev/null && [ "`re
touch project/src/Globals.java
fi
cd project && env PATH=$NDKBUILDPATH nice -n19 ndk-build -j4 V=1 && ant `test -n "$1" && echo release || echo debug` && test -z "$1" && cd bin && adb install -r DemoActivity-debug.apk
cd project && env PATH=$NDKBUILDPATH nice -n19 ndk-build -j4 V=1 -k && ant `test -n "$1" && echo release || echo debug` && test -z "$1" && cd bin && adb install -r DemoActivity-debug.apk

View File

@@ -7,10 +7,10 @@ endif
NDK_VERSION := $(strip $(patsubst android-ndk-%,%,$(filter android-ndk-%, $(subst /, ,$(dir $(TARGET_CC))))))
$(info NDK version $(NDK_VERSION))
ifneq ($(filter r1 r2 r3 r4, $(NDK_VERSION)),)
$(error Your NDK $(NDK_VERSION) is too old, please download NDK r4b from http://developer.android.com )
$(error Your NDK $(NDK_VERSION) is too old, please download NDK r4b or r5b from http://developer.android.com )
endif
ifneq ($(filter r5, $(NDK_VERSION)),)
$(error Your NDK $(NDK_VERSION) generates invalid code, please download NDK r4b from http://developer.android.com or wait for NDK r5b release. Details: http://groups.google.com/group/android-ndk/browse_thread/thread/6b35728eec7ef52f/b57f52776842041d )
$(error Your NDK $(NDK_VERSION) generates invalid code, please use NDK r4b or r5b from http://developer.android.com)
endif
@@ -18,7 +18,7 @@ ifneq ($(findstring -crystax,$(NDK_VERSION)),)
$(info Building with CrystaX toolchain - RTTI and exceptions enabled, STLPort disabled)
CRYSTAX_TOOLCHAIN = 1
endif
ifneq ($(findstring r5,$(NDK_VERSION)),)
ifneq ($(findstring r5b,$(NDK_VERSION)),)
$(info Building with NDK r5)
NDK_R5_TOOLCHAIN = 1
endif

View File

@@ -29,6 +29,6 @@ CustomBuildScript=y
AppCflags=''
AppLdflags=''
AppSubdirsBuild=''
AppUseCrystaXToolchain=y
AppUseCrystaXToolchain=n
AppCmdline='openttd -d 3'
ReadmeText='^You may press "Home" now - the data will be downloaded in background'

View File

@@ -16,6 +16,6 @@ if [ \! -f openttd/objs/lang/english.lng ] ; then
fi
if [ \! -f openttd/Makefile ] ; then
../setEnvironment.sh sh -c "cd openttd && ./configure --host=arm-eabi --with-sdl --with-freetype=sdl-config --with-png --with-zlib --with-libtimidity=$LOCAL_PATH/../../../obj/local/armeabi/libtimidity.so --with-lzo2=$LOCAL_PATH/../../../obj/local/armeabi/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --without-fontconfig --endian=LE"
../setEnvironment.sh sh -c "cd openttd && ./configure --host=arm-linux-androideabi --with-sdl --with-freetype=sdl-config --with-png --with-zlib --with-libtimidity=$LOCAL_PATH/../../../obj/local/armeabi/libtimidity.so --with-lzo2=$LOCAL_PATH/../../../obj/local/armeabi/liblzo2.so --prefix-dir='.' --data-dir='' --without-allegro --without-fontconfig --endian=LE"
fi
../setEnvironment.sh sh -c "cd openttd && make -j1 VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfreetype -lgcc -lz -lc -lstdc++'" && cp -f openttd/objs/release/openttd libapplication.so
../setEnvironment.sh sh -c "cd openttd && make -j1 VERBOSE=1 STRIP='' LIBS='-lsdl-1.2 -llzo2 -lpng -ltimidity -lfreetype -lstlport -lz -lc -lstdc++ -lsupc++'" && cp -f openttd/objs/release/openttd libapplication.so

View File

@@ -19,15 +19,18 @@ fi
NDK=`which ndk-build`
NDK=`dirname $NDK`
GCCVER=4.4.0
echo NDK $NDK
GCCPREFIX=arm-linux-androideabi
GCCVER=4.4.3
PLATFORMVER=android-8
LOCAL_PATH=`dirname $0`
LOCAL_PATH=`cd $LOCAL_PATH && pwd`
STL_INCLUDE="-I$LOCAL_PATH/../stlport/stlport -fno-exceptions -fno-rtti"
STL_LIB="$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.so $LOCAL_PATH/../../obj/local/armeabi/libstlport.a"
if [ -n "`echo $NDK | grep '[-]crystax'`" ] ; then
STL_INCLUDE="-fexceptions -frtti"
STL_LIB="-lstdc++"
echo LOCAL_PATH $LOCAL_PATH
if [ -z "`echo $NDK | grep 'android-ndk-r5b'`" ] ; then
echo "The only supported NDK version is android-ndk-r5b, please download it from http://developer.android.com/"
exit 1
fi
APP_MODULES=`grep 'APP_MODULES [:][=]' $LOCAL_PATH/../Settings.mk | sed 's@.*[=]\(.*\)@\1@'`
@@ -45,38 +48,42 @@ echo $APP_MODULES | xargs -n 1 echo | while read LIB ; do
done
)
CFLAGS="-I$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/include \
-fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums \
-D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -DANDROID \
-Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -O2 \
-fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \
-Wa,--noexecstack -DNDEBUG -g -D__sF=__SDL_fake_stdout \
-I$LOCAL_PATH/../sdl-1.2/include $STL_INCLUDE \
CFLAGS="\
-fexceptions -frtti \
-fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi \
-march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 \
-I$NDK/platforms/$PLATFORMVER/arch-arm/usr/include -Wa,--noexecstack \
-DANDROID -D__sF=__SDL_fake_stdout -DNDEBUG -O2 -g \
-I$NDK/sources/cxx-stl/system/include \
-I$NDK/sources/cxx-stl/gnu-libstdc++/libs/armeabi/include \
-I$LOCAL_PATH/../stlport/stlport \
-I$LOCAL_PATH/../sdl-1.2/include \
`echo $APP_MODULES | sed \"s@\([-a-zA-Z0-9_.]\+\)@-I$LOCAL_PATH/../\1/include@g\"`"
LDFLAGS="-nostdlib -Wl,-soname,libapplication.so -Wl,-shared,-Bsymbolic \
-Wl,--whole-archive -Wl,--no-whole-archive \
$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/lib/gcc/arm-eabi/4.4.0/libgcc.a \
LDFLAGS="\
-fexceptions -frtti \
-Wl,-soname,libapplication.so -shared --sysroot=$NDK/platforms/$PLATFORMVER/arch-arm \
`echo $APP_SHARED_LIBS | sed \"s@\([-a-zA-Z0-9_.]\+\)@$LOCAL_PATH/../../obj/local/armeabi/lib\1.so@g\"` \
$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
-Wl,--no-undefined -Wl,-z,noexecstack \
-L$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libc.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libstdc++.so \
$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib/libm.so \
-L$LOCAL_PATH/../../obj/local/armeabi -Wl,--no-undefined -Wl,-z,noexecstack \
-L$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib \
-lGLESv1_CM -ldl -llog -lz \
-Wl,-rpath-link=$NDK/build/platforms/$PLATFORMVER/arch-arm/usr/lib \
-L$LOCAL_PATH/../../obj/local/armeabi $STL_LIB"
-Wl,-rpath-link=$NDK/platforms/$PLATFORMVER/arch-arm/usr/lib -lsupc++ \
-L$LOCAL_PATH/../../obj/local/armeabi $LOCAL_PATH/../../obj/local/armeabi/libstlport.a"
env PATH=$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin:$LOCAL_PATH:$PATH \
env PATH=$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin:$LOCAL_PATH:$PATH \
CFLAGS="$CFLAGS" \
CXXFLAGS="$CFLAGS" \
LDFLAGS="$LDFLAGS" \
CC="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-gcc" \
CXX="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-g++" \
RANLIB="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-ranlib" \
LD="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-gcc" \
AR="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-ar" \
CPP="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-cpp $CFLAGS" \
NM="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-nm" \
AS="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-as" \
STRIP="$NDK/build/prebuilt/$MYARCH/arm-eabi-$GCCVER/bin/arm-eabi-strip" \
CC="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-gcc" \
CXX="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \
RANLIB="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ranlib" \
LD="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-g++" \
AR="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-ar" \
CPP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-cpp $CFLAGS" \
NM="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-nm" \
AS="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-as" \
STRIP="$NDK/toolchains/$GCCPREFIX-$GCCVER/prebuilt/$MYARCH/bin/$GCCPREFIX-strip" \
$@

View File

@@ -1 +1 @@
ufoai
openttd

View File

@@ -8,7 +8,8 @@ ifneq ($(CRYSTAX_TOOLCHAIN),)
LOCAL_CPP_EXTENSION := .cpp
LOCAL_SRC_FILES := dummy.c
else
LOCAL_CFLAGS := -O3 -I$(LOCAL_PATH)/stlport -I$(LOCAL_PATH)/src -DANDROID_NO_COUT=1
LOCAL_CFLAGS := -O3 -I$(LOCAL_PATH)/stlport -I$(LOCAL_PATH)/src -DANDROID_NO_COUT=1 -frtti -fexceptions
LOCAL_CPP_EXTENSION := .cpp
LOCAL_SRC_FILES := $(addprefix src/,$(notdir $(wildcard $(LOCAL_PATH)/src/*.cpp $(LOCAL_PATH)/src/*.c)))
endif

View File

@@ -139,7 +139,9 @@ underflow_error::~underflow_error() _STLP_NOTHROW_INHERENTLY {}
#if !defined(_STLP_WCE_EVC3)
# if defined (_STLP_NO_BAD_ALLOC)
# ifndef ANDROID
const nothrow_t nothrow /* = {} */;
# endif
# endif
#endif

View File

@@ -17,6 +17,7 @@
*/
#include "stlport_prefix.h"
#include <typeinfo>
#include <hash_map>
#include <vector>

View File

@@ -547,7 +547,7 @@ _OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last,
_OutputIter __out_ite, const _Distance __n) {
_STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
_Distance __remaining = distance(__first, __last);
_Distance __m = (min) (__n, __remaining);
_Distance __m = (_STLP_STD_NAME::min) (__n, __remaining);
while (__m > 0) {
if (_STLP_PRIV __random_number(__remaining) < __m) {
@@ -570,7 +570,7 @@ _OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last,
_RandomNumberGenerator& __rand) {
_STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last))
_Distance __remaining = distance(__first, __last);
_Distance __m = (min) (__n, __remaining);
_Distance __m = (_STLP_STD_NAME::min) (__n, __remaining);
while (__m > 0) {
if (__rand(__remaining) < __m) {
@@ -1035,7 +1035,7 @@ void __merge_sort_loop(_RandomAccessIter1 __first,
__comp);
__first += __two_step;
}
__step_size = (min) (_Distance(__last - __first), __step_size);
__step_size = (_STLP_STD_NAME::min) (_Distance(__last - __first), __step_size);
merge(__first, __first + __step_size,
__first + __step_size, __last,

View File

@@ -539,7 +539,7 @@ lexicographical_compare(const unsigned char* __first1,
_STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1))
_STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2))
const int __result = memcmp(__first1, __first2, (min) (__len1, __len2));
const int __result = memcmp(__first1, __first2, (_STLP_STD_NAME::min) (__len1, __len2));
return __result != 0 ? (__result < 0) : (__len1 < __len2);
}
@@ -570,7 +570,7 @@ __lexicographical_compare_3way(const unsigned char* __first1,
const unsigned char* __last2) {
const ptrdiff_t __len1 = __last1 - __first1;
const ptrdiff_t __len2 = __last2 - __first2;
const int __result = memcmp(__first1, __first2, (min) (__len1, __len2));
const int __result = memcmp(__first1, __first2, (_STLP_STD_NAME::min) (__len1, __len2));
return __result != 0 ? __result
: (__len1 == __len2 ? 0 : (__len1 < __len2 ? -1 : 1));
}

View File

@@ -638,7 +638,7 @@ public:
#endif
reset();
size_t __tmp = _Nb;
const size_t __Nbits = (min) (__tmp, (min) (__n, __s.size() - __pos));
const size_t __Nbits = (_STLP_STD_NAME::min) (__tmp, (min) (__n, __s.size() - __pos));
for ( size_t __i= 0; __i < __Nbits; ++__i) {
typename _Traits::int_type __k = _Traits::to_int_type(__s[__pos + __Nbits - __i - 1]);
// boris : widen() ?

View File

@@ -456,7 +456,7 @@ protected:
this->_M_finish += difference_type(__n);
}
else {
size_type __len = size() + (max)(size(), __n);
size_type __len = size() + (_STLP_STD_NAME::max)(size(), __n);
unsigned int* __q = this->_M_bit_alloc(__len);
iterator __i = copy(begin(), __position, iterator(__q, 0));
__i = copy(__first, __last, __i);
@@ -723,7 +723,7 @@ public:
this->_M_finish += __n;
}
else {
size_type __len = size() + (max)(size(), __n);
size_type __len = size() + (_STLP_STD_NAME::max)(size(), __n);
unsigned int* __q = this->_M_bit_alloc(__len);
iterator __i = copy(begin(), __position, iterator(__q, 0));
__i = copy(__first, __last, __i);
@@ -744,7 +744,7 @@ public:
this->_M_finish += __n;
}
else {
size_type __len = size() + (max)(size(), __n);
size_type __len = size() + (_STLP_STD_NAME::max)(size(), __n);
unsigned int* __q = this->_M_bit_alloc(__len);
iterator __i = copy(begin(), __position, iterator(__q, 0));
__i = copy(__first, __last, __i);
@@ -765,7 +765,7 @@ public:
this->_M_finish += difference_type(__n);
}
else {
size_type __len = size() + (max)(size(), __n);
size_type __len = size() + (_STLP_STD_NAME::max)(size(), __n);
unsigned int* __q = this->_M_bit_alloc(__len);
iterator __i = copy(begin(), __position, iterator(__q, 0));
fill_n(__i, __n, __x);

View File

@@ -142,7 +142,7 @@ protected:
const extern_type* __from,
const extern_type* __end,
size_t __max) const
{ return (int)(min) ( __STATIC_CAST(size_t, (__end - __from)), __max); }
{ return (int)(_STLP_STD_NAME::min) ( __STATIC_CAST(size_t, (__end - __from)), __max); }
virtual int do_max_length() const _STLP_NOTHROW
{ return 1; }

View File

@@ -49,11 +49,8 @@ namespace std {
#ifdef _STLP_IMPORT_VENDOR_CSTD
_STLP_BEGIN_NAMESPACE
# if !defined (ANDROID)
// these types don't exist on Android
using _STLP_VENDOR_CSTD::div_t;
using _STLP_VENDOR_CSTD::ldiv_t;
# endif
using _STLP_VENDOR_CSTD::size_t;
# ifndef _STLP_NO_CSTD_FUNCTION_IMPORTS
@@ -61,13 +58,10 @@ using _STLP_VENDOR_CSTD::size_t;
// these functions just don't exist on Windows CE
using _STLP_VENDOR_CSTD::abort;
using _STLP_VENDOR_CSTD::getenv;
# if !defined (ANDROID)
// these functions don't exist on Android
using _STLP_VENDOR_CSTD::mblen;
using _STLP_VENDOR_CSTD::mbtowc;
using _STLP_VENDOR_CSTD::system;
using _STLP_VENDOR_CSTD::bsearch;
# endif
# endif
using _STLP_VENDOR_CSTD::atexit;
using _STLP_VENDOR_CSTD::exit;
@@ -78,10 +72,7 @@ using _STLP_VENDOR_CSTD::realloc;
using _STLP_VENDOR_CSTD::atof;
using _STLP_VENDOR_CSTD::atoi;
using _STLP_VENDOR_CSTD::atol;
# if !defined (ANDROID)
// this function doesn't exist on Android
using _STLP_VENDOR_CSTD::mbstowcs;
# endif
using _STLP_VENDOR_CSTD::strtod;
using _STLP_VENDOR_CSTD::strtol;
using _STLP_VENDOR_CSTD::strtoul;

View File

@@ -48,7 +48,7 @@ template <class _Tp, class _Alloc >
void _Deque_base<_Tp,_Alloc>::_M_initialize_map(size_t __num_elements) {
size_t __num_nodes = __num_elements / this->buffer_size() + 1 ;
_M_map_size._M_data = (max)((size_t) _S_initial_map_size, __num_nodes + 2);
_M_map_size._M_data = (_STLP_STD_NAME::max)((size_t) _S_initial_map_size, __num_nodes + 2);
_M_map._M_data = _M_map.allocate(_M_map_size._M_data);
_Tp** __nstart = _M_map._M_data + (_M_map_size._M_data - __num_nodes) / 2;
@@ -778,7 +778,7 @@ void deque<_Tp,_Alloc>::_M_reallocate_map(size_type __nodes_to_add,
}
else {
size_type __new_map_size =
this->_M_map_size._M_data + (max)((size_t)this->_M_map_size._M_data, __nodes_to_add) + 2;
this->_M_map_size._M_data + (_STLP_STD_NAME::max)((size_t)this->_M_map_size._M_data, __nodes_to_add) + 2;
_Map_pointer __new_map = this->_M_map.allocate(__new_map_size);
__new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2

View File

@@ -28,10 +28,6 @@
#ifndef _STLP_INTERNAL_EXCEPTION
#define _STLP_INTERNAL_EXCEPTION
#if defined(ANDROID) || defined(__ANDROID__)
# define _STLP_NO_EXCEPTION_HEADER 1
#endif
#if !defined (_STLP_NO_EXCEPTION_HEADER)
# if defined ( _UNCAUGHT_EXCEPTION )

View File

@@ -623,7 +623,7 @@ bool basic_filebuf<_CharT, _Traits>::_M_allocate_buffers(_CharT* __buf, streamsi
_M_int_buf_dynamic = false;
}
streamsize __ebufsiz = (max)(__n * __STATIC_CAST(streamsize, _M_width),
streamsize __ebufsiz = (_STLP_STD_NAME::max)(__n * __STATIC_CAST(streamsize, _M_width),
__STATIC_CAST(streamsize, _M_codecvt->max_length()));
_M_ext_buf = 0;
if ((sizeof(streamsize) < sizeof(size_t)) ||
@@ -708,7 +708,7 @@ void basic_filebuf<_CharT, _Traits>::_M_setup_codecvt(const locale& __loc, bool
_M_codecvt = &use_facet<_Codecvt>(__loc) ;
int __encoding = _M_codecvt->encoding();
_M_width = (max)(__encoding, 1);
_M_width = (_STLP_STD_NAME::max)(__encoding, 1);
_M_max_width = _M_codecvt->max_length();
_M_constant_width = __encoding > 0;
_M_always_noconv = _M_codecvt->always_noconv();

View File

@@ -354,7 +354,7 @@ void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
//Here if max_load_factor is lower than 1.0 the resulting value might not be representable
//as a size_type. The result concerning the respect of the max_load_factor will then be
//undefined.
__num_buckets_hint = (max) (__num_buckets_hint, (size_type)((float)size() / max_load_factor()));
__num_buckets_hint = (_STLP_STD_NAME::max) (__num_buckets_hint, (size_type)((float)size() / max_load_factor()));
size_type __num_buckets = _STLP_PRIV _Stl_prime_type::_S_next_size(__num_buckets_hint);
_M_rehash(__num_buckets);
}
@@ -368,7 +368,7 @@ void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>
return;
}
size_type __num_buckets_hint = (size_type)((float)(max) (__num_elements_hint, size()) / max_load_factor());
size_type __num_buckets_hint = (size_type)((float)(_STLP_STD_NAME::max) (__num_elements_hint, size()) / max_load_factor());
size_type __num_buckets = _STLP_PRIV _Stl_prime_type::_S_next_size(__num_buckets_hint);
#if defined (_STLP_DEBUG)
_M_check();

View File

@@ -649,10 +649,10 @@ __read_buffered(basic_istream<_CharT, _Traits>* __that, basic_streambuf<_CharT,
//is larger than ptrdiff_t one.
_STLP_STATIC_ASSERT(((sizeof(streamsize) > sizeof(ptrdiff_t)) ||
(sizeof(streamsize) == sizeof(ptrdiff_t))) && numeric_limits<ptrdiff_t>::is_signed)
ptrdiff_t __request = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), _Num - __n));
ptrdiff_t __request = __STATIC_CAST(ptrdiff_t, (_STLP_STD_NAME::min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()), _Num - __n));
const _CharT* __p = __scan_delim(__first, __last);
ptrdiff_t __chunk = (min) (ptrdiff_t(__p - __first), __request);
ptrdiff_t __chunk = (_STLP_STD_NAME::min) (ptrdiff_t(__p - __first), __request);
_Traits::copy(__s, __first, __chunk);
__s += __chunk;
__n += __chunk;
@@ -829,13 +829,13 @@ basic_istream<_CharT, _Traits>::readsome(char_type* __s, streamsize __nmax) {
if (__buf->gptr() != __buf->egptr())
_M_gcount
= _STLP_PRIV __read_buffered(this, __buf, (min) (__avail, __nmax), __s,
= _STLP_PRIV __read_buffered(this, __buf, (_STLP_STD_NAME::min) (__avail, __nmax), __s,
_STLP_PRIV _Constant_unary_fun<bool, int_type>(false),
_STLP_PRIV _Project2nd<const _CharT*, const _CharT*>(),
false, false, false);
else
_M_gcount
= _STLP_PRIV __read_unbuffered(this, __buf, (min) (__avail, __nmax), __s,
= _STLP_PRIV __read_unbuffered(this, __buf, (_STLP_STD_NAME::min) (__avail, __nmax), __s,
_STLP_PRIV _Constant_unary_fun<bool, int_type>(false),
false, false, false);
}

View File

@@ -47,6 +47,13 @@ using _STLP_VENDOR_CSTD::malloc;
# error Cannot include native new header as new is a macro.
# endif
# ifdef ANDROID
# include _STLP_NATIVE_CPP_RUNTIME_HEADER(cstddef)
namespace std {
using ::ptrdiff_t;
using ::size_t;
}
# endif
# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new)
# if defined (_STLP_BROKEN_BAD_ALLOC_CLASS)

View File

@@ -159,7 +159,7 @@ __copy_integer_and_fill(const _CharT* __buf, ptrdiff_t __len,
//is larger than ptrdiff_t one.
_STLP_STATIC_ASSERT(((sizeof(streamsize) > sizeof(ptrdiff_t)) ||
(sizeof(streamsize) == sizeof(ptrdiff_t))) && numeric_limits<ptrdiff_t>::is_signed)
ptrdiff_t __pad = __STATIC_CAST(ptrdiff_t, (min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()),
ptrdiff_t __pad = __STATIC_CAST(ptrdiff_t, (_STLP_STD_NAME::min) (__STATIC_CAST(streamsize, (numeric_limits<ptrdiff_t>::max)()),
__STATIC_CAST(streamsize, __wid - __len)));
ios_base::fmtflags __dir = __flg & ios_base::adjustfield;

View File

@@ -803,13 +803,13 @@ bool _S_apply_to_pieces(_CharConsumer& __c,
_RopeRep* __left = __conc->_M_left;
size_t __left_len = __left->_M_size._M_data;
if (__begin < __left_len) {
size_t __left_end = (min) (__left_len, __end);
size_t __left_end = (_STLP_STD_NAME::min) (__left_len, __end);
if (!_S_apply_to_pieces(__c, __left, __begin, __left_end))
return false;
}
if (__end > __left_len) {
_RopeRep* __right = __conc->_M_right;
size_t __right_start = (max)(__left_len, __begin);
size_t __right_start = (_STLP_STD_NAME::max)(__left_len, __begin);
if (!_S_apply_to_pieces(__c, __right,
__right_start - __left_len,
__end - __left_len)) {

View File

@@ -493,7 +493,7 @@ public:
typedef typename _RopeRep::allocator_type allocator_type;
_Rope_RopeConcatenation(_RopeRep* __l, _RopeRep* __r, allocator_type __a)
: _Rope_RopeRep<_CharT,_Alloc>(_RopeRep::_S_concat,
(max)(__l->_M_depth, __r->_M_depth) + 1, false,
(_STLP_STD_NAME::max)(__l->_M_depth, __r->_M_depth) + 1, false,
__l->_M_size._M_data + __r->_M_size._M_data, __a), _M_left(__l), _M_right(__r)
{}
# ifdef _STLP_NO_ARROW_OPERATOR

View File

@@ -258,7 +258,7 @@ basic_stringbuf<_CharT, _Traits, _Alloc>::_M_xsputnc(char_type __c,
}
// At this point we know we're appending.
size_t __app_size = sizeof(streamsize) > sizeof(size_t) ? __STATIC_CAST(size_t, (min)(__n, __STATIC_CAST(streamsize, _M_str.max_size())))
size_t __app_size = sizeof(streamsize) > sizeof(size_t) ? __STATIC_CAST(size_t, (_STLP_STD_NAME::min)(__n, __STATIC_CAST(streamsize, _M_str.max_size())))
: __STATIC_CAST(size_t, __n);
if (this->_M_mode & ios_base::in) {
ptrdiff_t __get_offset = this->gptr() - this->eback();
@@ -308,7 +308,7 @@ basic_stringbuf<_CharT, _Traits, _Alloc>::setbuf(_CharT*, streamsize __n) {
if ((_M_mode & ios_base::out) && !(_M_mode & ios_base::in))
_M_append_buffer();
_M_str.reserve(sizeof(streamsize) > sizeof(size_t) ? __STATIC_CAST(size_t, (min)(__n, __STATIC_CAST(streamsize, _M_str.max_size())))
_M_str.reserve(sizeof(streamsize) > sizeof(size_t) ? __STATIC_CAST(size_t, (_STLP_STD_NAME::min)(__n, __STATIC_CAST(streamsize, _M_str.max_size())))
: __STATIC_CAST(size_t, __n));
_CharT* __data_ptr = __CONST_CAST(_CharT*, _M_str.data());

View File

@@ -57,7 +57,7 @@ basic_streambuf<_CharT, _Traits>::xsgetn(_CharT* __s, streamsize __n) {
while (__result < __n) {
if (_M_gnext < _M_gend) {
size_t __chunk = (min) (__STATIC_CAST(size_t,_M_gend - _M_gnext),
size_t __chunk = (_STLP_STD_NAME::min) (__STATIC_CAST(size_t,_M_gend - _M_gnext),
__STATIC_CAST(size_t,__n - __result));
_Traits::copy(__s, _M_gnext, __chunk);
__result += __chunk;
@@ -88,7 +88,7 @@ basic_streambuf<_CharT, _Traits>::xsputn(const _CharT* __s, streamsize __n)
while (__result < __n) {
if (_M_pnext < _M_pend) {
size_t __chunk = (min) (__STATIC_CAST(size_t,_M_pend - _M_pnext),
size_t __chunk = (_STLP_STD_NAME::min) (__STATIC_CAST(size_t,_M_pend - _M_pnext),
__STATIC_CAST(size_t,__n - __result));
_Traits::copy(_M_pnext, __s, __chunk);
__result += __chunk;
@@ -116,7 +116,7 @@ basic_streambuf<_CharT, _Traits>::_M_xsputnc(_CharT __c, streamsize __n)
while (__result < __n) {
if (_M_pnext < _M_pend) {
size_t __chunk = (min) (__STATIC_CAST(size_t,_M_pend - _M_pnext),
size_t __chunk = (_STLP_STD_NAME::min) (__STATIC_CAST(size_t,_M_pend - _M_pnext),
__STATIC_CAST(size_t,__n - __result));
_Traits::assign(_M_pnext, __chunk, __c);
__result += __chunk;

View File

@@ -84,7 +84,7 @@ void basic_string<_CharT,_Traits,_Alloc>::reserve(size_type __res_arg) {
if (__res_arg > max_size())
this->_M_throw_length_error();
size_type __n = (max)(__res_arg, size()) + 1;
size_type __n = (_STLP_STD_NAME::max)(__res_arg, size()) + 1;
if (__n <= capacity() + 1)
return;
@@ -109,7 +109,7 @@ basic_string<_CharT,_Traits,_Alloc>::append(size_type __n, _CharT __c) {
if (__n > max_size() || size() > max_size() - __n)
this->_M_throw_length_error();
if (size() + __n > capacity())
reserve(size() + (max)(size(), __n));
reserve(size() + (_STLP_STD_NAME::max)(size(), __n));
if (__n > 0) {
#if defined (_STLP_USE_SHORT_STRING_OPTIM)
if (this->_M_using_static_buf())
@@ -136,7 +136,7 @@ basic_string<_CharT, _Traits, _Alloc>::_M_append(const _CharT* __first, const _C
if ((size_type)__n > max_size() || __old_size > max_size() - __n)
this->_M_throw_length_error();
if (__old_size + __n > capacity()) {
size_type __len = __old_size + (max)(__old_size, (size_t) __n) + 1;
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, (size_t) __n) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -217,7 +217,7 @@ _CharT* basic_string<_CharT,_Traits,_Alloc> ::_M_insert_aux(_CharT* __p,
}
else {
const size_type __old_len = size();
size_type __len = __old_len + (max)(__old_len, __STATIC_CAST(size_type,1)) + 1;
size_type __len = __old_len + (_STLP_STD_NAME::max)(__old_len, __STATIC_CAST(size_type,1)) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -279,7 +279,7 @@ void basic_string<_CharT,_Traits,_Alloc>::insert(iterator __pos,
}
else {
const size_type __old_size = size();
size_type __len = __old_size + (max)(__old_size, __n) + 1;
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __n) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -362,7 +362,7 @@ void basic_string<_CharT,_Traits,_Alloc>::_M_insert(iterator __pos,
}
else {
const size_type __old_size = size();
size_type __len = __old_size + (max)(__old_size, __STATIC_CAST(const size_type,__n)) + 1;
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __STATIC_CAST(const size_type,__n)) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -472,7 +472,7 @@ basic_string<_CharT,_Traits,_Alloc>::rfind(const _CharT* __s, size_type __pos, s
if ( __len < __n ) {
return npos;
}
const_pointer __last = this->_M_Start() + (min)( __len - __n, __pos) + __n;
const_pointer __last = this->_M_Start() + (_STLP_STD_NAME::min)( __len - __n, __pos) + __n;
const_pointer __result = find_end(this->_M_Start(), __last,
__s, __s + __n, _STLP_PRIV _Eq_traits<_Traits>());
return __result != __last ? __result - this->_M_Start() : npos;
@@ -486,7 +486,7 @@ basic_string<_CharT,_Traits,_Alloc>::rfind(_CharT __c, size_type __pos) const
if ( __len < 1 ) {
return npos;
}
const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
const_iterator __last = begin() + (_STLP_STD_NAME::min)(__len - 1, __pos) + 1;
const_reverse_iterator __rresult =
_STLP_STD::find_if(const_reverse_iterator(__last), rend(),
_STLP_PRIV _Eq_char_bound<_Traits>(__c));
@@ -515,7 +515,7 @@ basic_string<_CharT,_Traits,_Alloc> ::find_last_of(const _CharT* __s, size_type
if ( __len < 1 ) {
return npos;
}
const const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
const const_iterator __last = begin() + (_STLP_STD_NAME::min)(__len - 1, __pos) + 1;
const const_reverse_iterator __rresult =
_STLP_PRIV __find_first_of(const_reverse_iterator(__last), rend(),
__s, __s + __n,
@@ -558,7 +558,7 @@ basic_string<_CharT,_Traits,_Alloc>::find_last_not_of(const _CharT* __s, size_ty
if ( __len < 1 ) {
return npos;
}
const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
const_iterator __last = begin() + (_STLP_STD_NAME::min)(__len - 1, __pos) + 1;
const_reverse_iterator __rlast = const_reverse_iterator(__last);
const_reverse_iterator __rresult =
_STLP_STD::find_if(__rlast, rend(),
@@ -575,7 +575,7 @@ basic_string<_CharT, _Traits, _Alloc>::find_last_not_of(_CharT __c, size_type __
if ( __len < 1 ) {
return npos;
}
const_iterator __last = begin() + (min)(__len - 1, __pos) + 1;
const_iterator __last = begin() + (_STLP_STD_NAME::min)(__len - 1, __pos) + 1;
const_reverse_iterator __rlast = const_reverse_iterator(__last);
const_reverse_iterator __rresult =
_STLP_STD::find_if(__rlast, rend(),
@@ -591,7 +591,7 @@ template <class _CharT, class _Traits, class _Alloc>
void _STLP_CALL _S_string_copy(const basic_string<_CharT,_Traits,_Alloc>& __s,
_CharT* __buf, size_t __n) {
if (__n > 0) {
__n = (min) (__n - 1, __s.size());
__n = (_STLP_STD_NAME::min) (__n - 1, __s.size());
_STLP_STD::copy(__s.begin(), __s.begin() + __n, __buf);
__buf[__n] = _CharT();
}

View File

@@ -198,7 +198,7 @@ public: // Constructor, destructor, assignment.
this->_M_throw_out_of_range();
else
_M_range_initialize(__s._M_Start() + __pos,
__s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
__s._M_Start() + __pos + (_STLP_STD_NAME::min) (__n, __s.size() - __pos));
}
basic_string(const _Self& __s, size_type __pos, size_type __n,
const allocator_type& __a)
@@ -208,7 +208,7 @@ public: // Constructor, destructor, assignment.
this->_M_throw_out_of_range();
else
_M_range_initialize(__s._M_Start() + __pos,
__s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
__s._M_Start() + __pos + (_STLP_STD_NAME::min) (__n, __s.size() - __pos));
}
#if !defined (_STLP_DONT_SUP_DFLT_PARAM)
@@ -549,7 +549,7 @@ private: // Helper functions for append.
if (__STATIC_CAST(size_type,__n) > this->max_size() || __old_size > this->max_size() - __STATIC_CAST(size_type,__n))
this->_M_throw_length_error();
if (__old_size + __n > this->capacity()) {
size_type __len = __old_size + (max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -624,7 +624,7 @@ public:
if (__pos > __s.size())
this->_M_throw_out_of_range();
return _M_append(__s._M_Start() + __pos,
__s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
__s._M_Start() + __pos + (_STLP_STD_NAME::min) (__n, __s.size() - __pos));
}
_Self& append(const _CharT* __s, size_type __n)
@@ -636,7 +636,7 @@ public:
public:
void push_back(_CharT __c) {
if (this->_M_Finish() + 1 == this->_M_end_of_storage._M_data)
reserve(size() + (max)(size(), __STATIC_CAST(size_type,1)));
reserve(size() + (_STLP_STD_NAME::max)(size(), __STATIC_CAST(size_type,1)));
_M_construct_null(this->_M_Finish() + 1);
_Traits::assign(*(this->_M_Finish()), __c);
++this->_M_finish;
@@ -657,7 +657,7 @@ public: // Assign
if (__pos > __s.size())
this->_M_throw_out_of_range();
return _M_assign(__s._M_Start() + __pos,
__s._M_Start() + __pos + (min) (__n, __s.size() - __pos));
__s._M_Start() + __pos + (_STLP_STD_NAME::min) (__n, __s.size() - __pos));
}
_Self& assign(const _CharT* __s, size_type __n)
@@ -731,7 +731,7 @@ public: // Insert
size_type __beg, size_type __n) {
if (__pos > size() || __beg > __s.size())
this->_M_throw_out_of_range();
size_type __len = (min) (__n, __s.size() - __beg);
size_type __len = (_STLP_STD_NAME::min) (__n, __s.size() - __beg);
if (size() > max_size() - __len)
this->_M_throw_length_error();
_M_insert(begin() + __pos,
@@ -803,7 +803,7 @@ protected: // Helper functions for insert.
void _M_insert_overflow(iterator __pos, _ForwardIter __first, _ForwardIter __last,
difference_type __n) {
const size_type __old_size = this->size();
size_type __len = __old_size + (max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -954,7 +954,7 @@ public: // Erase.
_Self& erase(size_type __pos = 0, size_type __n = npos) {
if (__pos > size())
this->_M_throw_out_of_range();
erase(begin() + __pos, begin() + __pos + (min) (__n, size() - __pos));
erase(begin() + __pos, begin() + __pos + (_STLP_STD_NAME::min) (__n, size() - __pos));
return *this;
}
@@ -982,7 +982,7 @@ public: // Replace. (Conceptually equivalent
_Self& replace(size_type __pos, size_type __n, const _Self& __s) {
if (__pos > size())
this->_M_throw_out_of_range();
const size_type __len = (min) (__n, size() - __pos);
const size_type __len = (_STLP_STD_NAME::min) (__n, size() - __pos);
if (size() - __len >= max_size() - __s.size())
this->_M_throw_length_error();
return _M_replace(begin() + __pos, begin() + __pos + __len,
@@ -993,8 +993,8 @@ public: // Replace. (Conceptually equivalent
size_type __pos2, size_type __n2) {
if (__pos1 > size() || __pos2 > __s.size())
this->_M_throw_out_of_range();
const size_type __len1 = (min) (__n1, size() - __pos1);
const size_type __len2 = (min) (__n2, __s.size() - __pos2);
const size_type __len1 = (_STLP_STD_NAME::min) (__n1, size() - __pos1);
const size_type __len2 = (_STLP_STD_NAME::min) (__n2, __s.size() - __pos2);
if (size() - __len1 >= max_size() - __len2)
this->_M_throw_length_error();
return _M_replace(begin() + __pos1, begin() + __pos1 + __len1,
@@ -1006,7 +1006,7 @@ public: // Replace. (Conceptually equivalent
_STLP_FIX_LITERAL_BUG(__s)
if (__pos > size())
this->_M_throw_out_of_range();
const size_type __len = (min) (__n1, size() - __pos);
const size_type __len = (_STLP_STD_NAME::min) (__n1, size() - __pos);
if (__n2 > max_size() || size() - __len >= max_size() - __n2)
this->_M_throw_length_error();
return _M_replace(begin() + __pos, begin() + __pos + __len,
@@ -1017,7 +1017,7 @@ public: // Replace. (Conceptually equivalent
_STLP_FIX_LITERAL_BUG(__s)
if (__pos > size())
this->_M_throw_out_of_range();
const size_type __len = (min) (__n1, size() - __pos);
const size_type __len = (_STLP_STD_NAME::min) (__n1, size() - __pos);
const size_type __n2 = _Traits::length(__s);
if (__n2 > max_size() || size() - __len >= max_size() - __n2)
this->_M_throw_length_error();
@@ -1029,7 +1029,7 @@ public: // Replace. (Conceptually equivalent
size_type __n2, _CharT __c) {
if (__pos > size())
this->_M_throw_out_of_range();
const size_type __len = (min) (__n1, size() - __pos);
const size_type __len = (_STLP_STD_NAME::min) (__n1, size() - __pos);
if (__n2 > max_size() || size() - __len >= max_size() - __n2)
this->_M_throw_length_error();
return replace(begin() + __pos, begin() + __pos + __len, __n2, __c);
@@ -1158,7 +1158,7 @@ public: // Other modifier member functions.
_STLP_FIX_LITERAL_BUG(__s)
if (__pos > size())
this->_M_throw_out_of_range();
const size_type __len = (min) (__n, size() - __pos);
const size_type __len = (_STLP_STD_NAME::min) (__n, size() - __pos);
_Traits::copy(__s, this->_M_Start() + __pos, __len);
return __len;
}
@@ -1268,7 +1268,7 @@ public: // Compare
if (__pos1 > size())
this->_M_throw_out_of_range();
return _M_compare(this->_M_Start() + __pos1,
this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
this->_M_Start() + __pos1 + (_STLP_STD_NAME::min) (__n1, size() - __pos1),
__s._M_Start(), __s._M_Finish());
}
@@ -1278,9 +1278,9 @@ public: // Compare
if (__pos1 > size() || __pos2 > __s.size())
this->_M_throw_out_of_range();
return _M_compare(this->_M_Start() + __pos1,
this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
this->_M_Start() + __pos1 + (_STLP_STD_NAME::min) (__n1, size() - __pos1),
__s._M_Start() + __pos2,
__s._M_Start() + __pos2 + (min) (__n2, __s.size() - __pos2));
__s._M_Start() + __pos2 + (_STLP_STD_NAME::min) (__n2, __s.size() - __pos2));
}
int compare(const _CharT* __s) const {
@@ -1293,7 +1293,7 @@ public: // Compare
if (__pos1 > size())
this->_M_throw_out_of_range();
return _M_compare(this->_M_Start() + __pos1,
this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
this->_M_Start() + __pos1 + (_STLP_STD_NAME::min) (__n1, size() - __pos1),
__s, __s + _Traits::length(__s));
}
@@ -1303,7 +1303,7 @@ public: // Compare
if (__pos1 > size())
this->_M_throw_out_of_range();
return _M_compare(this->_M_Start() + __pos1,
this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1),
this->_M_Start() + __pos1 + (_STLP_STD_NAME::min) (__n1, size() - __pos1),
__s, __s + __n2);
}
@@ -1313,7 +1313,7 @@ public: // Helper functions for compare.
const _CharT* __f2, const _CharT* __l2) {
const ptrdiff_t __n1 = __l1 - __f1;
const ptrdiff_t __n2 = __l2 - __f2;
const int cmp = _Traits::compare(__f1, __f2, (min) (__n1, __n2));
const int cmp = _Traits::compare(__f1, __f2, (_STLP_STD_NAME::min) (__n1, __n2));
return cmp != 0 ? cmp : (__n1 < __n2 ? -1 : (__n1 > __n2 ? 1 : 0));
}
#if defined (_STLP_USE_TEMPLATE_EXPRESSION) && !defined (_STLP_DEBUG) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND)

View File

@@ -99,7 +99,7 @@ protected:
size_t max_size() const {
const size_type __string_max_size = size_type(-1) / sizeof(_Tp);
typename allocator_type::size_type __alloc_max_size = _M_end_of_storage.max_size();
return (min)(__alloc_max_size, __string_max_size) - 1;
return (_STLP_STD_NAME::min)(__alloc_max_size, __string_max_size) - 1;
}
_String_base(const allocator_type& __a)

View File

@@ -29,12 +29,12 @@ public:
basic_string(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s,
size_type __pos, size_type __n = npos,
const allocator_type& __a = allocator_type())
: _STLP_STRING_SUM_BASE(_Reserve_t(), (__pos <= __s.size()) ? ((min) (__n, __s.size() - __pos)) : 0, __a) {
: _STLP_STRING_SUM_BASE(_Reserve_t(), (__pos <= __s.size()) ? ((_STLP_STD_NAME::min) (__n, __s.size() - __pos)) : 0, __a) {
size_type __size = __s.size();
if (__pos > __size)
this->_M_throw_out_of_range();
else
_M_append_sum_pos(__s, __pos, (min) (__n, __size - __pos));
_M_append_sum_pos(__s, __pos, (_STLP_STD_NAME::min) (__n, __size - __pos));
}
private:
@@ -64,7 +64,7 @@ private:
}
_CharT* _M_append_fast_pos(_CharT const* __s, size_type __s_size, _CharT *__buf,
size_type __pos, size_type __n)
{ return uninitialized_copy(__s + __pos, __s + __pos + (min)(__n, __s_size - __pos), __buf); }
{ return uninitialized_copy(__s + __pos, __s + __pos + (_STLP_STD_NAME::min)(__n, __s_size - __pos), __buf); }
_CharT* _M_append_fast_pos(_STLP_PRIV __cstr_wrapper<_CharT> const& __s, _CharT *__buf,
size_type __pos, size_type __n)
{ return _M_append_fast_pos(__s.c_str(), __s.size(), __buf, __pos, __n); }
@@ -124,7 +124,7 @@ private:
this->_M_throw_length_error();
size_type __offset_size = _M_get_additional_size(__old_size + __s_size, _Char_Is_POD());
if (__old_size + __s_size + __offset_size > this->capacity()) {
const size_type __len = __old_size + __offset_size + (max)(__old_size, __s_size) + 1;
const size_type __len = __old_size + __offset_size + (_STLP_STD_NAME::max)(__old_size, __s_size) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -147,7 +147,7 @@ private:
template <class _Left, class _Right, class _StorageDir>
_Self& _M_append_sum_pos(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s,
size_type __pos, size_type __n) {
size_type __s_size = (min)(__s.size() - __pos, __n);
size_type __s_size = (_STLP_STD_NAME::min)(__s.size() - __pos, __n);
if (__s_size == 0)
return *this;
const size_type __old_size = this->size();
@@ -155,7 +155,7 @@ private:
this->_M_throw_length_error();
size_type __offset_size = _M_get_additional_size(__old_size + __s_size, _Char_Is_POD());
if (__old_size + __s_size + __offset_size > this->capacity()) {
const size_type __len = __old_size + __offset_size + (max)(__old_size, __s_size) + 1;
const size_type __len = __old_size + __offset_size + (_STLP_STD_NAME::max)(__old_size, __s_size) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len);
pointer __new_finish = __new_start;
_STLP_TRY {

View File

@@ -239,7 +239,7 @@ private: // Helper functions for append.
this->_M_throw_length_error();
if (__old_size + __n > capacity()) {
const size_type __len = __old_size +
(max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
(_STLP_STD_NAME::max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len);
pointer __new_finish = __new_start;
_STLP_TRY {
@@ -412,7 +412,7 @@ private: // Helper functions for insert.
void _M_insert_overflow(iterator __position, _ForwardIter __first, _ForwardIter __last,
difference_type __n) {
const size_type __old_size = this->size();
const size_type __len = __old_size + (max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
const size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __STATIC_CAST(size_type,__n)) + 1;
pointer __new_start = this->_M_end_of_storage.allocate(__len);
pointer __new_finish = __new_start;
_STLP_TRY {

View File

@@ -83,7 +83,7 @@ template <class _Tp, class _Alloc>
void vector<_Tp, _Alloc>::_M_insert_overflow_aux(pointer __pos, const _Tp& __x, const __false_type& /*DO NOT USE!!*/,
size_type __fill_len, bool __atend ) {
const size_type __old_size = size();
size_type __len = __old_size + (max)(__old_size, __fill_len);
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __fill_len);
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
@@ -108,7 +108,7 @@ template <class _Tp, class _Alloc>
void vector<_Tp, _Alloc>::_M_insert_overflow(pointer __pos, const _Tp& __x, const __true_type& /*_TrivialCopy*/,
size_type __fill_len, bool __atend ) {
const size_type __old_size = size();
size_type __len = __old_size + (max)(__old_size, __fill_len);
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __fill_len);
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __STATIC_CAST(pointer, _STLP_PRIV __copy_trivial(this->_M_start, __pos, __new_start));

View File

@@ -403,7 +403,7 @@ private:
#endif /* _STLP_MEMBER_TEMPLATES */
size_type __n) {
const size_type __old_size = size();
size_type __len = __old_size + (max)(__old_size, __n);
size_type __len = __old_size + (_STLP_STD_NAME::max)(__old_size, __n);
pointer __new_start = this->_M_end_of_storage.allocate(__len, __len);
pointer __new_finish = __new_start;
_STLP_TRY {

View File

@@ -71,8 +71,6 @@ typedef off_t streamoff;
# elif defined(_LARGEFILE_SOURCE) || defined(_LARGEFILE64_SOURCE) /* || defined(__USE_FILE_OFFSET64) */ \
/* || (defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)) */ /* || defined (__sgi) && defined (_STLP_HAS_NO_NEW_C_HEADERS) */
typedef off64_t streamoff;
# elif defined(ANDROID)
typedef long streamoff;
# else
typedef off_t streamoff;
# endif

View File

@@ -10,14 +10,22 @@
#define _STLP_UNIX 1
// No RTTI support.
#define _STLP_NO_TYPEINFO 1
#define _STLP_NO_RTTI 1
// #define _STLP_NO_TYPEINFO 1
// #define _STLP_NO_RTTI 1
// Have pthreads support.
#define _PTHREADS
// Don't have native <cplusplus> headers
#define _STLP_HAS_NO_NEW_C_HEADERS 1
// #define _STLP_USE_NEW_C_HEADERS 1
// #define _STLP_NO_NEW_NEW_HEADER 1
// #define _STLP_NO_NEW_HEADER 1
#define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
#define _STLP_NO_BAD_ALLOC 1
// No <exception> headers
#define _STLP_NO_EXCEPTION_HEADER 1
#define _STLP_OWN_STDEXCEPT 1 // Already inside libsupc++, but we'll define it under different namespace
// Don't use wchar.h etc
#define _STLP_NO_WCHAR_T 1
@@ -43,15 +51,12 @@
// Little endian platform.
#define _STLP_LITTLE_ENDIAN 1
// No <exception> headers
#define _STLP_NO_EXCEPTION_HEADER 1
// No need to define our own namespace
#define _STLP_NO_OWN_NAMESPACE 1
// #define _STLP_NO_OWN_NAMESPACE 1
// Need this to define STLport's own bad_alloc class (which won't be
// thrown in any case)
#define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
// #define _STLP_NEW_DONT_THROW_BAD_ALLOC 1
#define _STLP_NO_LONG_DOUBLE 1

View File

@@ -338,7 +338,7 @@ public:
_Self& assign(const _Self& __s, size_type __pos, size_type __n) {
if (__pos < __s.size()) {
_M_check_assign((min) (__n, __s.size() - __pos));
_M_check_assign((_STLP_STD_NAME::min) (__n, __s.size() - __pos));
}
_M_non_dbg_impl.assign(__s._M_non_dbg_impl, __pos, __n);
return *this;
@@ -347,7 +347,7 @@ public:
_Self& assign(const _CharT* __s, size_type __n) {
_STLP_FIX_LITERAL_BUG(__s)
_STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT)
_M_check_assign((min) (_Traits::length(__s), __n));
_M_check_assign((_STLP_STD_NAME::min) (_Traits::length(__s), __n));
_M_non_dbg_impl.assign(__s, __s + __n);
return *this;
}

View File

@@ -29,14 +29,14 @@
basic_string(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s,
size_type __pos, size_type __n = npos,
const allocator_type& __a = allocator_type())
: _M_non_dbg_impl(_Reserve_t(), (__pos <= __s.size()) ? ((min) (__n, __s.size() - __pos)) : 0, __a),
: _M_non_dbg_impl(_Reserve_t(), (__pos <= __s.size()) ? ((_STLP_STD_NAME::min) (__n, __s.size() - __pos)) : 0, __a),
_M_iter_list(&_M_non_dbg_impl) {
size_type __size = __s.size();
if (__pos > __size)
//This call will generate the necessary out of range exception:
_M_non_dbg_impl.at(0);
else
_M_append_sum_pos(__s, __pos, (min) (__n, __size - __pos), _M_non_dbg_impl);
_M_append_sum_pos(__s, __pos, (_STLP_STD_NAME::min) (__n, __size - __pos), _M_non_dbg_impl);
}
private:
@@ -63,7 +63,7 @@ private:
}
_Base& _M_append_fast_pos(_CharT const* __s, size_type __s_size, _Base &__str,
size_type __pos, size_type __n)
{ return __str.append(__s + __pos, __s + __pos + (min)(__n, __s_size - __pos)); }
{ return __str.append(__s + __pos, __s + __pos + (_STLP_STD_NAME::min)(__n, __s_size - __pos)); }
_Base& _M_append_fast_pos(_STLP_PRIV __cstr_wrapper<_CharT> const& __s, _Base &__str,
size_type __pos, size_type __n)
{ return _M_append_fast_pos(__s.c_str(), __s.size(), __str, __pos, __n); }
@@ -105,7 +105,7 @@ private:
template <class _Left, class _Right, class _StorageDir>
_Self& _M_append_sum_pos (_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s,
size_type __pos, size_type __n, _Base &__impl) {
_M_non_dbg_impl.reserve(_M_non_dbg_impl.size() + (min) (__s.size() - __pos, __n));
_M_non_dbg_impl.reserve(_M_non_dbg_impl.size() + (_STLP_STD_NAME::min) (__s.size() - __pos, __n));
_M_append_fast_pos(__s, __impl, __pos, __n);
return *this;
}