diff options
Diffstat (limited to 'WebKit')
328 files changed, 0 insertions, 73311 deletions
diff --git a/WebKit/android/stlport/algorithm b/WebKit/android/stlport/algorithm deleted file mode 100644 index 1695735..0000000 --- a/WebKit/android/stlport/algorithm +++ /dev/null @@ -1,60 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_ALGORITHM -#define _STLP_ALGORITHM - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_CSTDIO -// remove() conflicts, <cstdio> should always go first -# include <stl/_cstdio.h> -#endif - -#ifndef _STLP_INTERNAL_ALGO_H -# include <stl/_algo.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(algorithm) -#endif /* _STLP_IMPORT_VENDOR_STD */ - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_ALGORITHM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/assert.h b/WebKit/android/stlport/assert.h deleted file mode 100644 index 28d0109..0000000 --- a/WebKit/android/stlport/assert.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x202 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x202) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -/* evc3 doesn't have assert.h; macro assert() is defined in stl_evc.h */ -#ifndef _STLP_WCE_EVC3 -# include _STLP_NATIVE_C_HEADER(assert.h) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x202) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/bitset b/WebKit/android/stlport/bitset deleted file mode 100644 index 15466e5..0000000 --- a/WebKit/android/stlport/bitset +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_BITSET -#define _STLP_BITSET - -// This implementation of bitset<> has a second template parameter, -// _WordT, which defaults to unsigned long. *YOU SHOULD NOT USE -// THIS FEATURE*. It is experimental, and it may be removed in -// future releases. - -// A bitset of size N, using words of type _WordT, will have -// N % (sizeof(_WordT) * CHAR_BIT) unused bits. (They are the high- -// order bits in the highest word.) It is a class invariant -// of class bitset<> that those unused bits are always zero. - -// Most of the actual code isn't contained in bitset<> itself, but in the -// base class _Base_bitset. The base class works with whole words, not with -// individual bits. This allows us to specialize _Base_bitset for the -// important special case where the bitset is only a single word. - -// The C++ standard does not define the precise semantics of operator[]. -// In this implementation the const version of operator[] is equivalent -// to test(), except that it does no range checking. The non-const version -// returns a reference to a bit, again without doing any range checking. - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_bitset.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_BITSET */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/cassert b/WebKit/android/stlport/cassert deleted file mode 100644 index 51757de..0000000 --- a/WebKit/android/stlport/cassert +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x103 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x103) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#if !defined (_STLP_WCE_EVC3) -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cassert) -# else -# include <assert.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x103 ) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cctype b/WebKit/android/stlport/cctype deleted file mode 100644 index 646c686..0000000 --- a/WebKit/android/stlport/cctype +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CCTYPE - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x104 -# define _STLP_CCTYPE -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x104 ) -# include _STLP_NATIVE_CPP_C_HEADER(cctype) -#else -# ifndef _STLP_INTERNAL_CCTYPE -# include <stl/_cctype.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x104 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CCTYPE */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cerrno b/WebKit/android/stlport/cerrno deleted file mode 100644 index 83b3960..0000000 --- a/WebKit/android/stlport/cerrno +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CERRNO -# define _STLP_CERRNO - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x105 -# include <stl/_prolog.h> -# endif - -# ifndef _STLP_WCE -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cerrno) -# else -# include <errno.h> -# endif -# endif - -#ifndef errno - -# if defined (_STLP_IMPORT_VENDOR_CSTD) && \ - ! defined (__IBMCPP__) && ! defined(__hpux) && ! defined(__MWERKS__) && !defined(_STLP_WCE) -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::errno; -_STLP_END_NAMESPACE -# endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x105 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_CERRNO */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cfloat b/WebKit/android/stlport/cfloat deleted file mode 100644 index 8a76a10..0000000 --- a/WebKit/android/stlport/cfloat +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CFLOAT -#define _STLP_CFLOAT - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x106 -# include <stl/_prolog.h> -#endif - -// Borland defines some implementation constants in std:: namespace, -// we do not want to import them. -#if defined (_STLP_USE_NEW_C_HEADERS) && !defined (__BORLANDC__) -# include _STLP_NATIVE_CPP_C_HEADER(cfloat) -#else -# include <float.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x106 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CFLOAT */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ciso646 b/WebKit/android/stlport/ciso646 deleted file mode 100644 index 901f36f..0000000 --- a/WebKit/android/stlport/ciso646 +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CISO646 -#define _STLP_CISO646 - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x107 -# include <stl/_prolog.h> -#endif - -#if !defined(_STLP_WCE_EVC3) && !defined (N_PLAT_NLM) && !defined (__BORLANDC__) -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(ciso646) -# else -# include <iso646.h> -# endif /* _STLP_USE_NEW_C_HEADERS */ -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x107 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CISO646 */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/climits b/WebKit/android/stlport/climits deleted file mode 100644 index bdd4ab4..0000000 --- a/WebKit/android/stlport/climits +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CLIMITS -# define _STLP_CLIMITS - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x108 -# include <stl/_prolog.h> -#endif - -#if defined (__SUNPRO_CC) && ((__SUNPRO_CC == 0x500) && (__SUNPRO_CC_COMPAT > 4)) -# include </usr/include/limits.h> -#elif defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(climits) -#else -# if defined (__BORLANDC__) -# include _STLP_NATIVE_C_HEADER(limits.h) -# else -# include <limits.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x108 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CLIMITS */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/clocale b/WebKit/android/stlport/clocale deleted file mode 100644 index 4e9ff7a..0000000 --- a/WebKit/android/stlport/clocale +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CLOCALE -#define _STLP_CLOCALE - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x109 -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x109 ) -# include _STLP_NATIVE_CPP_C_HEADER(clocale) -#else -# ifndef _STLP_INTERNAL_CLOCALE -# include <stl/_clocale.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x109 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CLOCALE */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cmath b/WebKit/android/stlport/cmath deleted file mode 100644 index ec319b0..0000000 --- a/WebKit/android/stlport/cmath +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CMATH - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x110 -# define _STLP_CMATH -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x110) -# include _STLP_NATIVE_CPP_C_HEADER(cmath) -#else -# ifndef _STLP_INTERNAL_CMATH -# include <stl/_cmath.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x110 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CMATH */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/complex b/WebKit/android/stlport/complex deleted file mode 100644 index d373824..0000000 --- a/WebKit/android/stlport/complex +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_COMPLEX -#define _STLP_COMPLEX - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x10 -# include <stl/_prolog.h> -#endif - -// This header declares the template class complex, as described in -// in the draft C++ standard. Single-precision complex numbers -// are complex<float>, double-precision are complex<double>, and -// quad precision are complex<long double>. - -// Note that the template class complex is declared within namespace -// std, as called for by the draft C++ standard - -#ifndef _STLP_INTERNAL_COMPLEX -# include <stl/_complex.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x10 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_COMPLEX */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/csetjmp b/WebKit/android/stlport/csetjmp deleted file mode 100644 index 068d0b3..0000000 --- a/WebKit/android/stlport/csetjmp +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CSETJMP - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x111 -# define _STLP_CSETJMP -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x111) -# include _STLP_NATIVE_CPP_C_HEADER(csetjmp) -#else -# ifndef _STLP_INTERNAL_CSETJMP -# include <stl/_csetjmp.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x111 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CSETJMP */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/csignal b/WebKit/android/stlport/csignal deleted file mode 100644 index 9142648..0000000 --- a/WebKit/android/stlport/csignal +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CSIGNAL - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x112 -# define _STLP_CSIGNAL -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x112) -# include _STLP_NATIVE_CPP_C_HEADER(csignal) -#else -# ifndef _STLP_INTERNAL_CSIGNAL -# include <stl/_csignal.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x112 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CSIGNAL */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cstdarg b/WebKit/android/stlport/cstdarg deleted file mode 100644 index 20141ec..0000000 --- a/WebKit/android/stlport/cstdarg +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -#ifndef _STLP_CSTDARG - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x113 -# define _STLP_CSTDARG -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x113) -# include _STLP_NATIVE_CPP_C_HEADER(cstdarg) -#else -# ifndef _STLP_INTERNAL_CSTDARG -# include <stl/_cstdarg.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x113 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CSTDARG */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cstddef b/WebKit/android/stlport/cstddef deleted file mode 100644 index 24d1527..0000000 --- a/WebKit/android/stlport/cstddef +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CSTDDEF - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x114 -# define _STLP_CSTDDEF -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x114) -# include _STLP_NATIVE_CPP_C_HEADER(cstddef) -#else -# ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x114 ) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CSTDDEF */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cstdio b/WebKit/android/stlport/cstdio deleted file mode 100644 index 83eff86..0000000 --- a/WebKit/android/stlport/cstdio +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CSTDIO -#define _STLP_CSTDIO - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x15 -# define _STLP_CSTDIO -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x15) -# include _STLP_NATIVE_CPP_C_HEADER(cstdio) -#else -# ifndef _STLP_INTERNAL_CSTDIO -# include <stl/_cstdio.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x15) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cstdlib b/WebKit/android/stlport/cstdlib deleted file mode 100644 index 4718fbb..0000000 --- a/WebKit/android/stlport/cstdlib +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CSTDLIB - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x116 -# define _STLP_CSTDLIB -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x116) -# include _STLP_NATIVE_CPP_C_HEADER(cstdlib) -#else -# ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x116) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CSTDLIB */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cstring b/WebKit/android/stlport/cstring deleted file mode 100644 index 34d3bdb..0000000 --- a/WebKit/android/stlport/cstring +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CSTRING - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x117 -# define _STLP_CSTRING -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x117) -# include _STLP_NATIVE_CPP_C_HEADER(cstring) -#else -# ifndef _STLP_INTERNAL_CSTRING -# include <stl/_cstring.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x117) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CSTRING */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ctime b/WebKit/android/stlport/ctime deleted file mode 100644 index 0f9c37b..0000000 --- a/WebKit/android/stlport/ctime +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -#ifndef _STLP_CTIME - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x118 -# define _STLP_CTIME -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x118) -# include _STLP_NATIVE_CPP_C_HEADER(ctime) -#else -# ifndef _STLP_INTERNAL_CTIME -# include <stl/_ctime.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x118) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CTIME */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ctype.h b/WebKit/android/stlport/ctype.h deleted file mode 100644 index a3a8032..0000000 --- a/WebKit/android/stlport/ctype.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CTYPE_H - -/* Workaround for a "misbehaviour" when compiling resource scripts using - * eMbedded Visual C++. The standard .rc file includes windows header files, - * which in turn include ctype.h, which results in warnings and errors - */ -#if !defined(RC_INVOKED) - -# if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x219 -# include <stl/_prolog.h> -# elif (_STLP_OUTERMOST_HEADER_ID == 0x219) -# define _STLP_DONT_POP_HEADER_ID -# define _STLP_CTYPE_H -# endif - -# if defined(_STLP_WCE_EVC3) -struct _exception; -# endif - -# include _STLP_NATIVE_C_HEADER(ctype.h) - -/* on evc4 including ctype.h also defines setjmp macro */ -# if defined (_STLP_WCE) -# define _STLP_NATIVE_SETJMP_H_INCLUDED -# endif - -# ifndef _STLP_CTYPE_H_SEEN -# define _STLP_CTYPE_H_SEEN - -/* Undef convenience interfaces */ -# undef isspace -# undef isprint -# undef iscntrl -# undef isupper -# undef islower -# undef isalpha -# undef isdigit -# undef ispunct -# undef isxdigit -# undef isalnum -# undef isgraph -# undef toupper -# undef tolower - -# if defined (UNDER_CE) - -# if (_WIN32_WCE < 300) /* Only wide chars for older versions */ -# define _isctype iswctype -# endif - -__inline int (isalpha)(int c) { return _isctype(c, _ALPHA); } -__inline int (isupper)(int c) { return _isctype(c, _UPPER); } -__inline int (islower)(int c) { return _isctype(c, _LOWER); } -__inline int (isdigit)(int c) { return _isctype(c, _DIGIT); } -__inline int (isxdigit)(int c) { return _isctype(c, _HEX); } -__inline int (isspace)(int c) { return _isctype(c, _SPACE); } -__inline int (ispunct)(int c) { return _isctype(c, _PUNCT); } -__inline int (isalnum)(int c) { return _isctype(c, _ALPHA|_DIGIT); } -__inline int (isprint)(int c) { return _isctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); } -__inline int (isgraph)(int c) { return _isctype(c, _PUNCT|_ALPHA|_DIGIT); } -__inline int (iscntrl)(int c) { return _isctype(c, _CONTROL); } -__inline int (isascii)(int c) { return ((unsigned)(c) < 0x80); } - -# undef _isctype - -__inline int (iswalpha)(int c) { return iswctype(c, _ALPHA); } -__inline int (iswupper)(int c) { return iswctype(c, _UPPER); } -__inline int (iswlower)(int c) { return iswctype(c, _LOWER); } -__inline int (iswdigit)(int c) { return iswctype(c, _DIGIT); } -__inline int (iswxdigit)(int c) { return iswctype(c, _HEX); } -__inline int (iswspace)(int c) { return iswctype(c, _SPACE); } -__inline int (iswpunct)(int c) { return iswctype(c, _PUNCT); } -__inline int (iswalnum)(int c) { return iswctype(c, _ALPHA|_DIGIT); } -__inline int (iswprint)(int c) { return iswctype(c, _BLANK|_PUNCT|_ALPHA|_DIGIT); } -__inline int (iswgraph)(int c) { return iswctype(c, _PUNCT|_ALPHA|_DIGIT); } -__inline int (iswcntrl)(int c) { return iswctype(c, _CONTROL); } -__inline int (iswascii)(int c) { return ((unsigned)(c) < 0x80); } - -# endif /* UNDER_CE */ - -# endif /* _STLP_CTYPE_H_SEEN */ - -# if (_STLP_OUTERMOST_HEADER_ID == 0x219) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -# endif - -#endif /* RC_INVOKED */ - -#endif /* _STLP_CTYPE_H */ diff --git a/WebKit/android/stlport/cwchar b/WebKit/android/stlport/cwchar deleted file mode 100644 index 85b99f8..0000000 --- a/WebKit/android/stlport/cwchar +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CWCHAR - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x120 -# define _STLP_CWCHAR -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x120) -# include _STLP_NATIVE_CPP_C_HEADER(cwchar) -#else -# ifndef _STLP_INTERNAL_CWCHAR -# include <stl/_cwchar.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x120) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CWCHAR */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/cwctype b/WebKit/android/stlport/cwctype deleted file mode 100644 index 29f0859..0000000 --- a/WebKit/android/stlport/cwctype +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CWCTYPE -#define _STLP_CWCTYPE - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x121 -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x121) -# include _STLP_NATIVE_CPP_C_HEADER(cwctype) -#else -# ifndef _STLP_INTERNAL_CWCTYPE -# include <stl/_cwctype.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x121) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_CWCTYPE */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/deque b/WebKit/android/stlport/deque deleted file mode 100644 index 8fdf513..0000000 --- a/WebKit/android/stlport/deque +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_DEQUE -#define _STLP_DEQUE - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x22 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_DEQUE_H -# include <stl/_deque.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(deque) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x22) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_DEQUE */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/errno.h b/WebKit/android/stlport/errno.h deleted file mode 100644 index 27037ea..0000000 --- a/WebKit/android/stlport/errno.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x205 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x205) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#ifdef _STLP_WCE -// only show message when directly including this file in a non-library build -# if !defined(__BUILDING_STLPORT) && (_STLP_OUTERMOST_HEADER_ID == 0x205) -# pragma message("eMbedded Visual C++ 3 and .NET don't have a errno.h header; STLport won't include native errno.h here") -# endif -#else -# ifndef errno -/* We define the following macro first to guaranty the header reentrancy: */ -# define _STLP_NATIVE_ERRNO_H_INCLUDED -# include _STLP_NATIVE_C_HEADER(errno.h) -# endif /* errno */ - -# if !defined (_STLP_NATIVE_ERRNO_H_INCLUDED) -/* If errno has been defined before inclusion of native errno.h including it from STLport errno.h - * becomes impossible because if: - * #define errno foo - * then - * #include _STLP_NATIVE_C_HEADER(errno.h) - * becomes: - * #include _STLP_NATIVE_C_HEADER(foo.h) - * - * To fix this problem you have to find where this definition comes from and include errno.h before it. - */ -# error errno has been defined before inclusion of errno.h header. -# endif - -# ifdef __cplusplus -# ifndef errno /* errno still not defined */ -_STLP_BEGIN_NAMESPACE -# if !defined (__BORLANDC__) -using ::errno; -# else -using _STLP_VENDOR_CSTD::errno; -# endif -_STLP_END_NAMESPACE -# endif /* errno */ -# endif /* __cplusplus */ - -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x205) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/exception b/WebKit/android/stlport/exception deleted file mode 100644 index a8e8cd7..0000000 --- a/WebKit/android/stlport/exception +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -// This header exists solely for portability. Normally it just includes -// the native header <exception>. - -#ifndef _STLP_EXCEPTION - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x423 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x423) -# define _STLP_DONT_POP_HEADER_ID -# define _STLP_EXCEPTION -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x423) || defined (_STLP_DONT_POP_HEADER_ID) -/* If we are here it means that we are in an include called - * from the native lib which means that we can simply forward this - * call to the native exception header: - */ -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception) -#else -# include <stl/_exception.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x423) -# if !defined(_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -#endif /* _STLP_EXCEPTION */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/exception.h b/WebKit/android/stlport/exception.h deleted file mode 100644 index c5937ab..0000000 --- a/WebKit/android/stlport/exception.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_OLDSTD_exception -#define _STLP_OLDSTD_exception - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x824 -# include <stl/_prolog.h> -#endif - -#if defined (__BORLANDC__) || defined (_MSC_VER) -# include <exception> -#else -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception.h) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x824) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_OLDSTD_exception */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/float.h b/WebKit/android/stlport/float.h deleted file mode 100644 index 67adb57..0000000 --- a/WebKit/android/stlport/float.h +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x203 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x203) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#elif (_STLP_OUTERMOST_HEADER_ID == 0x203) -# error This header is only reentrant once, it should be modified if it has to be included more. -#endif - -#if defined (_STLP_WCE_EVC3) -struct _exception; -#endif - -#include _STLP_NATIVE_C_HEADER(float.h) - -#if defined(__BORLANDC__) && defined (__cplusplus) && (__BORLANDC__ >= 0x560) -_STLP_BEGIN_NAMESPACE -using ::_max_dble; -using ::_max_flt; -using ::_max_ldble; -using ::_tiny_ldble; -_STLP_END_NAMESPACE -#endif - -#if defined (__BORLANDC__) && defined (__cplusplus) && !defined (_STLP_BCC_FPU_BUG) -# define _STLP_BCC_FPU_BUG -// Ignore FPU exceptions, set FPU precision to 53 bits for floatio_test and cmath_test -static unsigned int _bcc_fpu_bug = _control87(PC_53|MCW_EM, MCW_PC|MCW_EM); -template <class _Fp> -int __fpclass(_Fp __val) -{ int __f = _fpclass(__val); _control87(PC_53|MCW_EM, MCW_PC|MCW_EM); return __f; } -# define _fpclass __fpclass -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x203) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif diff --git a/WebKit/android/stlport/fstream b/WebKit/android/stlport/fstream deleted file mode 100644 index efdf645..0000000 --- a/WebKit/android/stlport/fstream +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - -// This header defines classes basic_filebuf, basic_ifstream, -// basic_ofstream, and basic_fstream. These classes represent -// streambufs and streams whose sources or destinations are files. - -#ifndef _STLP_FSTREAM -#define _STLP_FSTREAM - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1025 -# include <stl/_prolog.h> -# endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -# include <stl/_ioserr.h> -# include <stl/_fstream.h> - -# if (_STLP_OUTERMOST_HEADER_ID == 0x1025) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_FSTREAM */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/fstream.h b/WebKit/android/stlport/fstream.h deleted file mode 100644 index 4640033..0000000 --- a/WebKit/android/stlport/fstream.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_FSTREAM_H -#define _STLP_FSTREAM_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2026 -# include <stl/_prolog.h> -#endif - -#include <fstream> - -// get desired pollution -#include <iostream.h> - -#ifndef _STLP_HAS_NO_NAMESPACES -# include <using/fstream> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2026) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_FSTREAM_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/functional b/WebKit/android/stlport/functional deleted file mode 100644 index d074103..0000000 --- a/WebKit/android/stlport/functional +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_FUNCTIONAL -#define _STLP_FUNCTIONAL - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x27 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -# if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(functional) -# endif - -# ifndef _STLP_INTERNAL_FUNCTION_H -# include <stl/_function.h> -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x27) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_FUNCTIONAL */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/hash_map b/WebKit/android/stlport/hash_map deleted file mode 100644 index 0e2422d..0000000 --- a/WebKit/android/stlport/hash_map +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_HASH_MAP -#define _STLP_HASH_MAP - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x4028 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if defined (_STLP_NO_EXTENSIONS) -/* Comment following if you want to use hash constainers even if you ask for - * no extension. - */ -# error The hash_map and hash_multimap class are STLport extensions. -#endif - -#include <stl/_hash_map.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x4028) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_HASH_MAP */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/hash_set b/WebKit/android/stlport/hash_set deleted file mode 100644 index 0fc89ec..0000000 --- a/WebKit/android/stlport/hash_set +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_HASH_SET -#define _STLP_HASH_SET - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x4029 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if defined (_STLP_NO_EXTENSIONS) -/* Comment following if you want to use hash constainers even if you ask for - * no extension. - */ -# error The hash_set and hash_multiset class are STLport extensions. -#endif - -#include <stl/_hash_set.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x4029) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_HASH_SET */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/iomanip b/WebKit/android/stlport/iomanip deleted file mode 100644 index 6956190..0000000 --- a/WebKit/android/stlport/iomanip +++ /dev/null @@ -1,175 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOMANIP -#define _STLP_IOMANIP - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1030 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_ioserr.h> -#include <stl/_istream.h> // Includes <ostream> and <ios> - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Machinery for defining manipulators. - -// Class that calls one of ios_base's single-argument member functions. -template <class _Arg> -struct _Ios_Manip_1 { - typedef _Arg (ios_base::*__f_ptr_type)(_Arg); - - _Ios_Manip_1(__f_ptr_type __f, const _Arg& __arg) - : _M_f(__f), _M_arg(__arg) {} - - void operator()(ios_base& __ios) const - { (__ios.*_M_f)(_M_arg); } - - __f_ptr_type _M_f; - _Arg _M_arg; -}; - -// Class that calls one of ios_base's two-argument member functions. -struct _Ios_Setf_Manip { - ios_base::fmtflags _M_flag; - ios_base::fmtflags _M_mask; - bool _M_two_args; - - _Ios_Setf_Manip(ios_base::fmtflags __f) - : _M_flag(__f), _M_mask(0), _M_two_args(false) {} - - _Ios_Setf_Manip(ios_base::fmtflags __f, ios_base::fmtflags __m) - : _M_flag(__f), _M_mask(__m), _M_two_args(true) {} - - void operator()(ios_base& __ios) const { - if (_M_two_args) - __ios.setf(_M_flag, _M_mask); - else - __ios.setf(_M_flag); - } -}; - - -template <class _CharT, class _Traits, class _Arg> -inline basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __istr, - const _Ios_Manip_1<_Arg>& __f) { - __f(__istr); - return __istr; -} - -template <class _CharT, class _Traits, class _Arg> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, - const _Ios_Manip_1<_Arg>& __f) { - __f(__os); - return __os; -} - -template <class _CharT, class _Traits> -inline basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __istr, const _Ios_Setf_Manip& __f) { - __f(__istr); - return __istr; -} - -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, const _Ios_Setf_Manip& __f) { - __f(__os); - return __os; -} - -//---------------------------------------------------------------------- -// The ios_base manipulators. -inline _Ios_Setf_Manip _STLP_CALL resetiosflags(ios_base::fmtflags __mask) -{ return _Ios_Setf_Manip(0, __mask); } - -inline _Ios_Setf_Manip _STLP_CALL setiosflags(ios_base::fmtflags __flag) -{ return _Ios_Setf_Manip(__flag); } - -inline _Ios_Setf_Manip _STLP_CALL setbase(int __n) { - ios_base::fmtflags __base = __n == 8 ? ios_base::oct : - __n == 10 ? ios_base::dec : - __n == 16 ? ios_base::hex : - ios_base::fmtflags(0); - return _Ios_Setf_Manip(__base, ios_base::basefield); -} - -inline _Ios_Manip_1<streamsize> _STLP_CALL -setprecision(int __n) { - _Ios_Manip_1<streamsize>::__f_ptr_type __f = &ios_base::precision; - return _Ios_Manip_1<streamsize>(__f, __n); -} - -inline _Ios_Manip_1<streamsize> _STLP_CALL -setw(int __n) { - _Ios_Manip_1<streamsize>::__f_ptr_type __f = &ios_base::width; - return _Ios_Manip_1<streamsize>(__f, __n); -} - -//---------------------------------------------------------------------- -// setfill, a manipulator that operates on basic_ios<> instead of ios_base. - -template <class _CharT> -struct _Setfill_Manip { - _Setfill_Manip(_CharT __c) : _M_c(__c) {} - _CharT _M_c; -}; - -template <class _CharT, class _CharT2, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, - const _Setfill_Manip<_CharT2>& __m) { - __os.fill(__m._M_c); - return __os; -} - -template <class _CharT, class _CharT2, class _Traits> -inline basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __is, - const _Setfill_Manip<_CharT2>& __m) { - __is.fill(__m._M_c); - return __is; -} - -template <class _CharT> -inline _Setfill_Manip<_CharT> _STLP_CALL -setfill(_CharT __c) { - return _Setfill_Manip<_CharT>(__c); -} - -_STLP_END_NAMESPACE - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1030) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_IOMANIP */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/iomanip.h b/WebKit/android/stlport/iomanip.h deleted file mode 100644 index 1bfb0d2..0000000 --- a/WebKit/android/stlport/iomanip.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOMANIP_H -#define _STLP_IOMANIP_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2031 -# include <stl/_prolog.h> -#endif - -#include <stl/_ioserr.h> - -#include <iomanip> - -#ifndef _STLP_HAS_NO_NAMESPACES -# ifdef _STLP_BROKEN_USING_DIRECTIVE -_STLP_USING_NAMESPACE(stlport) -# else -using _STLP_STD::setiosflags; -using _STLP_STD::resetiosflags; -using _STLP_STD::setbase; -using _STLP_STD::setfill; -using _STLP_STD::setprecision; -using _STLP_STD::setw; -# endif -#endif /* _STLP_HAS_NO_NAMESPACES */ - -// get all the pollution we want -#include <iostream.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2031) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_IOMANIP_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ios b/WebKit/android/stlport/ios deleted file mode 100644 index 2a923ad..0000000 --- a/WebKit/android/stlport/ios +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOS -#define _STLP_IOS - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1032 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -# include <stl/_ioserr.h> -# include <stl/_ios.h> - -# if (_STLP_OUTERMOST_HEADER_ID == 0x1032) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_IOS */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ios.h b/WebKit/android/stlport/ios.h deleted file mode 100644 index 90ccfbb..0000000 --- a/WebKit/android/stlport/ios.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOS_H -#define _STLP_IOS_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1033 -# include <stl/_prolog.h> -#endif - -#include <ios> - -#if defined (_STLP_USE_NAMESPACES) -# include <using/ios> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1033) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_IOS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/iosfwd b/WebKit/android/stlport/iosfwd deleted file mode 100644 index 0a44982..0000000 --- a/WebKit/android/stlport/iosfwd +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOSFWD -#define _STLP_IOSFWD - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1034 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if !defined (_STLP_USE_NO_IOSTREAMS) - -# if defined (_STLP_HAS_WCHAR_T) && !defined (_STLP_INTERNAL_CWCHAR) -# include <stl/_cwchar.h> -# endif /* _STLP_HAS_WCHAR_T && !_STLP_CWCHAR */ - -# include <stl/_iosfwd.h> -#else -# include <stl/char_traits.h> -#endif /* _STLP_USE_NO_IOSTREAMS */ - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1034) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_IOSFWD */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/iostream b/WebKit/android/stlport/iostream deleted file mode 100644 index 05289e4..0000000 --- a/WebKit/android/stlport/iostream +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOSTREAM -#define _STLP_IOSTREAM - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1037 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -#include <stl/_ioserr.h> - -#ifdef _STLP_REDIRECT_STDSTREAMS -// for ofstream redirection -# include <fstream> -#endif - -#include <stl/_iosfwd.h> -#include <stl/_istream.h> - -_STLP_BEGIN_NAMESPACE - -#ifndef _STLP_USE_NAMESPACES -// in case of SGI iostreams, we have to rename our streams not to clash with those -// provided in native lib -# define cin _STLP_cin -# define cout _STLP_cout -# define cerr _STLP_cerr -# define clog _STLP_clog -#endif - -// Note: cin and wcin are both associated with stdio. The C standard -// (Amendment 1, section 4.6.2.1) says that it is an error to mix -// wide- and narrow-oriented I/O on the same stream. This implies -// that it is an error to use both cin and wcin in the same C++ -// program; the same applies to cout and wcout, and cerr/clog and -// wcerr/wclog. - -# ifdef _STLP_REDIRECT_STDSTREAMS -extern _STLP_DECLSPEC istream cin; -extern _STLP_DECLSPEC ofstream cout; -extern _STLP_DECLSPEC ofstream cerr; -extern _STLP_DECLSPEC ofstream clog; -# else -extern _STLP_DECLSPEC istream cin; -extern _STLP_DECLSPEC ostream cout; -extern _STLP_DECLSPEC ostream cerr; -extern _STLP_DECLSPEC ostream clog; -# endif - -# ifndef _STLP_NO_WCHAR_T -extern _STLP_DECLSPEC wistream wcin; -extern _STLP_DECLSPEC wostream wcout; -extern _STLP_DECLSPEC wostream wcerr; -extern _STLP_DECLSPEC wostream wclog; -# endif - -_STLP_END_NAMESPACE - -//# elif defined ( _STLP_USE_NO_IOSTREAMS ) -//# include <stl/_null_stream.h> - -# if (_STLP_OUTERMOST_HEADER_ID == 0x1037) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_IOSTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/iostream.h b/WebKit/android/stlport/iostream.h deleted file mode 100644 index 2e7a7a9..0000000 --- a/WebKit/android/stlport/iostream.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_IOSTREAM_H -#define _STLP_IOSTREAM_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2035 -# include <stl/_prolog.h> -#endif - -#include <iostream> - -// Those should be included all separately, as they do contain using declarations -#include <streambuf.h> -#include <ostream.h> -#include <istream.h> - -#ifndef _STLP_HAS_NO_NAMESPACES - -# ifdef _STLP_BROKEN_USING_DIRECTIVE -_STLP_USING_NAMESPACE(stlport) -# else -using _STLP_STD::cin; -using _STLP_STD::cout; -using _STLP_STD::clog; -using _STLP_STD::cerr; -using _STLP_STD::iostream; -# ifndef _STLP_NO_WCHAR_T -using _STLP_STD::wcin; -using _STLP_STD::wcout; -using _STLP_STD::wclog; -using _STLP_STD::wcerr; -# endif -# endif -#endif /* _STLP_HAS_NO_NAMESPACES */ - -// Obsolete classes for old-style backwards compatibility - - -class istream_withassign : public istream { - public: - istream_withassign() : istream((streambuf*)0) {} - ~istream_withassign() {} - - istream_withassign& operator=(istream& __s) { - ios::init(__s.rdbuf()); - return *this; - } - istream_withassign& operator=(streambuf* __s) { - ios::init(__s); - return *this; - } -}; - -class ostream_withassign : public ostream { - public: - ostream_withassign() : ostream((streambuf*)0) {} - ~ostream_withassign() {} - - ostream_withassign& operator=(ostream& __s) { - ios::init(__s.rdbuf()); - return *this; - } - ostream_withassign& operator=(streambuf* __s) { - ios::init(__s); - return *this; - } -}; - -class iostream_withassign : public iostream { - public: - iostream_withassign() : iostream((streambuf*)0) {} - ~iostream_withassign() {} - iostream_withassign & operator=(ios& __i) { - ios::init(__i.rdbuf()); - return *this; - } - iostream_withassign & operator=(streambuf* __s) { - ios::init(__s); - return *this; - } -} ; - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2035) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_IOSTREAM_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/iso646.h b/WebKit/android/stlport/iso646.h deleted file mode 100644 index 058ed3b..0000000 --- a/WebKit/android/stlport/iso646.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x204 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x204) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -/* evc3 doesn't have iso646.h */ -#if !defined (_STLP_WCE_EVC3) && !defined (N_PLAT_NLM) && !defined (__BORLANDC__) -# include _STLP_NATIVE_C_HEADER(iso646.h) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x204) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/istream b/WebKit/android/stlport/istream deleted file mode 100644 index 9c288ba..0000000 --- a/WebKit/android/stlport/istream +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_ISTREAM -#define _STLP_ISTREAM - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1036 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_ioserr.h> - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1036) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_ISTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/istream.h b/WebKit/android/stlport/istream.h deleted file mode 100644 index d382d96..0000000 --- a/WebKit/android/stlport/istream.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_ISTREAM_H -#define _STLP_ISTREAM_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2037 -# include <stl/_prolog.h> -#endif - -#include <stl/_ioserr.h> - -#include <istream> - -#ifndef _STLP_HAS_NO_NAMESPACES -# ifdef _STLP_BROKEN_USING_DIRECTIVE -_STLP_USING_NAMESPACE(stlport) -# else -using _STLP_STD::basic_istream; -using _STLP_STD::basic_iostream; -using _STLP_STD::istream; -using _STLP_STD::iostream; -using _STLP_STD::ios; -# ifndef _STLP_NO_WCHAR_T -using _STLP_STD::wistream; -using _STLP_STD::wiostream; -# endif -using _STLP_STD::ws; -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2037) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_ISTREAM_H */ diff --git a/WebKit/android/stlport/iterator b/WebKit/android/stlport/iterator deleted file mode 100644 index b08caf4..0000000 --- a/WebKit/android/stlport/iterator +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_ITERATOR -#define _STLP_ITERATOR - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x38 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(iterator) -#endif /* IMPORT */ - -# ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -# endif - -# ifndef _STLP_INTERNAL_STREAM_ITERATOR_H -# include <stl/_stream_iterator.h> -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x38) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_ITERATOR */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/limits b/WebKit/android/stlport/limits deleted file mode 100644 index c0db9eb..0000000 --- a/WebKit/android/stlport/limits +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_LIMITS -#define _STLP_LIMITS - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x39 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x39) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_LIMITS */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/limits.h b/WebKit/android/stlport/limits.h deleted file mode 100644 index 9353af1..0000000 --- a/WebKit/android/stlport/limits.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x201 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x201) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#if defined(_STLP_WCE_EVC3) -struct _exception; -#endif - -#include _STLP_NATIVE_C_HEADER(limits.h) - -#if (_STLP_OUTERMOST_HEADER_ID == 0x201) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif diff --git a/WebKit/android/stlport/list b/WebKit/android/stlport/list deleted file mode 100644 index a638f04..0000000 --- a/WebKit/android/stlport/list +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_LIST -#define _STLP_LIST - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x40 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_LIST_H -# include <stl/_list.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(list) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x40) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_LIST */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/locale b/WebKit/android/stlport/locale deleted file mode 100644 index 289bfe3..0000000 --- a/WebKit/android/stlport/locale +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_LOCALE -#define _STLP_LOCALE - -// Basic framework: class locale and class locale::facet - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1041 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_ioserr.h> - -// Individual facets -#ifndef _STLP_INTERNAL_CTYPE_H -# include <stl/_ctype.h> -#endif - -#ifndef _STLP_INTERNAL_CODECVT_H -# include <stl/_codecvt.h> -#endif - -#ifndef _STLP_INTERNAL_COLLATE_H -# include <stl/_collate.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_PUT_H -# include <stl/_num_put.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_GET_H -# include <stl/_num_get.h> -#endif - -// those never included separately anyway -#include <stl/_monetary.h> -#include <stl/_time_facets.h> -#include <stl/_messages_facets.h> - -// some stuff for streambuf iterators ended up defined there -// Strictly speaking, _istream.h portion is only required for <iterator>, but it may break too many -// programs if we omit it -#ifndef _STLP_ISTREAM_H -# include <stl/_istream.h> -#endif - -// Convenience interfaces -#undef isspace -#undef isprint -#undef iscntrl -#undef isupper -#undef islower -#undef isalpha -#undef isdigit -#undef ispunct -#undef isxdigit -#undef isalnum -#undef isgraph -#undef toupper -#undef tolower - -_STLP_BEGIN_NAMESPACE - -template <class _CharT> -inline bool isspace (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::space, c); } - -template <class _CharT> -inline bool isprint (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::print, c); } - -template <class _CharT> -inline bool iscntrl (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::cntrl, c); } - -template <class _CharT> -inline bool isupper (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::upper, c); } - -template <class _CharT> -inline bool islower (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::lower, c); } - -template <class _CharT> -inline bool isalpha (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alpha, c); } - -template <class _CharT> -inline bool isdigit (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::digit, c); } - -template <class _CharT> -inline bool ispunct (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::punct, c); } - -template <class _CharT> -inline bool isxdigit (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::xdigit, c); } - -template <class _CharT> -inline bool isalnum (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::alnum, c); } - -template <class _CharT> -inline bool isgraph (_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).is(ctype_base::graph, c); } - -template <class _CharT> -inline _CharT toupper(_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).toupper(c); } - -template <class _CharT> -inline _CharT tolower(_CharT c, const locale& loc) -{ return (use_facet<ctype<_CharT> >(loc)).tolower(c); } - -_STLP_END_NAMESPACE - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1041) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_LOCALE */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/locale.h b/WebKit/android/stlport/locale.h deleted file mode 100644 index 9bf7691..0000000 --- a/WebKit/android/stlport/locale.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x242 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x242) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# else -# error STLport include schema violation -# endif -#endif - -/* evc3 doesn't have locale.h */ -#ifndef _STLP_WCE_EVC3 -# include _STLP_NATIVE_C_HEADER(locale.h) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x242) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/map b/WebKit/android/stlport/map deleted file mode 100644 index e18a89b..0000000 --- a/WebKit/android/stlport/map +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_MAP -#define _STLP_MAP - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x43 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_map.h> - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(map) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x43) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_MAP */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/math.h b/WebKit/android/stlport/math.h deleted file mode 100644 index 57bf541..0000000 --- a/WebKit/android/stlport/math.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x244 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x244) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#if !defined (exception) && (!defined (__KCC) || (__KCC_VERSION < 4000)) && \ - !(defined(__IBMCPP__) && (500 <= __IBMCPP__)) && !defined(_STLP_WCE_EVC3) -# define _STLP_EXCEPTION_WAS_REDEFINED 1 -# define exception __math_exception -#endif - -#include _STLP_NATIVE_C_HEADER(math.h) - -#if defined (_STLP_EXCEPTION_WAS_REDEFINED) -# undef exception -# undef _STLP_EXCEPTION_WAS_REDEFINED -#endif - -#ifdef _STLP_WCE_EVC3 -# undef _exception -# define _exception exception -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x244) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/mem.h b/WebKit/android/stlport/mem.h deleted file mode 100644 index d8b3935..0000000 --- a/WebKit/android/stlport/mem.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_mem_h - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x245 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x245) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x245) || defined (_STLP_DONT_POP_HEADER_ID) -# include _STLP_NATIVE_C_HEADER(mem.h) -#else -# if defined (__BORLANDC__) && defined (__USING_CNAME__) -# define _USING_CNAME_WAS_UNDEFINED -# undef __USING_CNAME__ -# endif - -# include _STLP_NATIVE_C_HEADER(mem.h) - -# if defined (__BORLANDC__) && defined (_USING_CNAME_WAS_UNDEFINED) -# define __USING_CNAME__ -# define _STLP_mem_h 1 -# undef _USING_CNAME_WAS_UNDEFINED -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x245) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif - -#endif /* _STLP_mem_h */ - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/memory b/WebKit/android/stlport/memory deleted file mode 100644 index 89af883..0000000 --- a/WebKit/android/stlport/memory +++ /dev/null @@ -1,70 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_MEMORY -#define _STLP_MEMORY - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x46 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_TEMPBUF_H -# include <stl/_tempbuf.h> -#endif - -#ifndef _STLP_INTERNAL_RAW_STORAGE_ITER_H -# include <stl/_raw_storage_iter.h> -#endif - -#include <stl/_auto_ptr.h> - -#if defined (_STLP_IMPORT_VENDOR_STD) - -# if defined (__MSL__) -# include _STLP_NATIVE_HEADER(limits) -# endif - -# include _STLP_NATIVE_HEADER(memory) - -# if defined (__MSL__) && (__MSL__ >= 0x2405 && __MSL__ < 0x5201) -/* 980401 vss MSL 2.4 Pro 3 Release */ -# include <new_mem.h> -# endif - -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x46) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_MEMORY */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/new b/WebKit/android/stlport/new deleted file mode 100644 index e013dab..0000000 --- a/WebKit/android/stlport/new +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_NEW_HEADER -#define _STLP_NEW_HEADER - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x447 -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x447) -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new) -#else -# ifndef _STLP_NEW_H_HEADER -# include <stl/_new.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x447) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_NEW */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/new.h b/WebKit/android/stlport/new.h deleted file mode 100644 index 6489b5d..0000000 --- a/WebKit/android/stlport/new.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x848 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x848) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#if !defined(_STLP_NO_NEW_HEADER) -# if defined (__BORLANDC__) -# include <new> -# elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 800 && !defined(_MSC_VER)) -# include _STLP_NATIVE_OLD_STREAMS_HEADER(new.h) -# else -# if defined (__GNUC__) && (__GNUC__ >= 3) -# include _STLP_NATIVE_OLD_STREAMS_HEADER(new.h) -# else -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new.h) -# endif -# endif -#endif /* !defined(_STLP_NO_NEW_HEADER) */ - -#if (_STLP_OUTERMOST_HEADER_ID == 0x848) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/numeric b/WebKit/android/stlport/numeric deleted file mode 100644 index 8a32cfe..0000000 --- a/WebKit/android/stlport/numeric +++ /dev/null @@ -1,48 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_NUMERIC -#define _STLP_NUMERIC - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x49 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_NUMERIC_H -# include <stl/_numeric.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x49) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_NUMERIC */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ostream b/WebKit/android/stlport/ostream deleted file mode 100644 index 0cf823f..0000000 --- a/WebKit/android/stlport/ostream +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_OSTREAM -#define _STLP_OSTREAM - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1050 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -# include <stl/_ioserr.h> -# include <stl/_ostream.h> - -# if (_STLP_OUTERMOST_HEADER_ID == 0x1050) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_OSTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/ostream.h b/WebKit/android/stlport/ostream.h deleted file mode 100644 index b6a7664..0000000 --- a/WebKit/android/stlport/ostream.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_OSTREAM_H -#define _STLP_OSTREAM_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2051 -# include <stl/_prolog.h> -#endif - -#include <stl/_ioserr.h> - -#include <ostream> - -#ifdef _STLP_USE_NAMESPACES -# include <using/ostream> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2051) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_OSTREAM_H */ diff --git a/WebKit/android/stlport/pthread.h b/WebKit/android/stlport/pthread.h deleted file mode 100644 index 57c0c24..0000000 --- a/WebKit/android/stlport/pthread.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -# if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x280 -# include <stl/_prolog.h> -# elif (_STLP_OUTERMOST_HEADER_ID == 0x280) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# endif - -# if defined (__SUNPRO_CC) || defined (__HP_aCC) -# include "/usr/include/pthread.h" -# else -# include _STLP_NATIVE_C_HEADER(pthread.h) -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x280) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -# endif - -/* - Local Variables: - mode:C++ - End: -*/ diff --git a/WebKit/android/stlport/pthread_alloc b/WebKit/android/stlport/pthread_alloc deleted file mode 100644 index c5ccbcb..0000000 --- a/WebKit/android/stlport/pthread_alloc +++ /dev/null @@ -1,49 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_PTHREAD_ALLOC -#define _STLP_PTHREAD_ALLOC - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x52 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -# include <stl/_pthread_alloc.h> - -# if (_STLP_OUTERMOST_HEADER_ID == 0x52) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_PTHREAD_ALLOC */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/queue b/WebKit/android/stlport/queue deleted file mode 100644 index 190bc06..0000000 --- a/WebKit/android/stlport/queue +++ /dev/null @@ -1,59 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_QUEUE -#define _STLP_QUEUE - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x53 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_QUEUE_H -# include <stl/_queue.h> -#endif - -#ifndef _STLP_FUNCTIONAL -# include <functional> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(queue) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x53) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_QUEUE */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/rlocks.h b/WebKit/android/stlport/rlocks.h deleted file mode 100644 index 84db1f4..0000000 --- a/WebKit/android/stlport/rlocks.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef _STLP_misc_rlocks_h -# define _STLP_misc_rlocks_h -# if (__SUNPRO_CC >= 0x500 ) -# include <../CCios/rlocks.h> -# elif defined (__SUNPRO_CC) -# include <../CC/rlocks.h> -# else -# error "This file is for SUN CC only. Please remove it if it causes any harm for other compilers." -# endif -#endif - diff --git a/WebKit/android/stlport/rope b/WebKit/android/stlport/rope deleted file mode 100644 index 4faa36b..0000000 --- a/WebKit/android/stlport/rope +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (c) 1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -#ifndef _STLP_ROPE -#define _STLP_ROPE - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x54 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if defined (_STLP_NO_EXTENSIONS) -/* Comment following if you want to use rope class even if you ask for - * no extension. - */ -# error The rope class is a STLport extension. -#endif - -#include <stl/_rope.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x54) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_ROPE */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/set b/WebKit/android/stlport/set deleted file mode 100644 index 4c3dd2d..0000000 --- a/WebKit/android/stlport/set +++ /dev/null @@ -1,53 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_SET -#define _STLP_SET - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x55 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_set.h> - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(set) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x55) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_SET */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/setjmp.h b/WebKit/android/stlport/setjmp.h deleted file mode 100644 index dabef16..0000000 --- a/WebKit/android/stlport/setjmp.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_SETJMP_H - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x256 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x256) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# define _STLP_SETJMP_H -#endif - -#if defined(_STLP_WCE_EVC3) -struct _exception; -#endif - -#if !defined (setjmp) -# define _STLP_NATIVE_SETJMP_H_INCLUDED -# include _STLP_NATIVE_C_HEADER(setjmp.h) -#endif - -#if !defined (_STLP_NATIVE_SETJMP_H_INCLUDED) -/* See errno.h file for a description of this problem. */ -# error setjmp has been defined before inclusion of setjmp.h header. -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x256) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif -#endif /* _STLP_SETJMP_H */ diff --git a/WebKit/android/stlport/signal.h b/WebKit/android/stlport/signal.h deleted file mode 100644 index 7b3c70a..0000000 --- a/WebKit/android/stlport/signal.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x257 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x257) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -/* evc3 and evc4 don't have signal.h */ -#ifndef _STLP_WCE -# include _STLP_NATIVE_C_HEADER(signal.h) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x257) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif -# undef _STLP_DONT_POP_HEADER_ID -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/slist b/WebKit/android/stlport/slist deleted file mode 100644 index c1930e4..0000000 --- a/WebKit/android/stlport/slist +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ - -#ifndef _STLP_SLIST -#define _STLP_SLIST - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x58 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if defined (_STLP_NO_EXTENSIONS) -/* Comment following if you want to use the slist constainer even if you ask for - * no extension. - */ -# error The slist class is an STLport extension. -#endif - -#ifndef _STLP_INTERNAL_SLIST_H -# include <stl/_slist.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -//This is not a Standard header, it might failed for most of -//the compilers so we comment it for the moment. Should be uncommented -//on a compiler basis. -//# include _STLP_NATIVE_HEADER(slist) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x58) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_SLIST */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/sstream b/WebKit/android/stlport/sstream deleted file mode 100644 index e2b325e..0000000 --- a/WebKit/android/stlport/sstream +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// This header defines classes basic_stringbuf, basic_istringstream, -// basic_ostringstream, and basic_stringstream. These classes -// represent streamsbufs and streams whose sources or destinations are -// C++ strings. - -#ifndef _STLP_SSTREAM -#define _STLP_SSTREAM - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1059 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_ioserr.h> - -#include <stl/_sstream.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1059) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_SSTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stack b/WebKit/android/stlport/stack deleted file mode 100644 index d19106b..0000000 --- a/WebKit/android/stlport/stack +++ /dev/null @@ -1,55 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STACK -#define _STLP_STACK - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x60 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef _STLP_INTERNAL_STACK_H -# include <stl/_stack.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(stack) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x60) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_STACK */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stdarg.h b/WebKit/android/stlport/stdarg.h deleted file mode 100644 index e8605cc..0000000 --- a/WebKit/android/stlport/stdarg.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* Workaround for a "misbehaviour" when compiling resource scripts using - * eMbedded Visual C++. The standard .rc file includes windows header files, - * which in turn include stdarg.h, which results in warnings and errors - */ -#if !defined (RC_INVOKED) - -# if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x261 -# include <stl/_prolog.h> -# elif (_STLP_OUTERMOST_HEADER_ID == 0x261) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# endif - -# if defined(_STLP_WCE_EVC3) -struct _exception; -# endif - -# include _STLP_NATIVE_C_HEADER(stdarg.h) - -# if (_STLP_OUTERMOST_HEADER_ID == 0x261) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -# endif -#endif /* RC_INVOKED */ diff --git a/WebKit/android/stlport/stddef.h b/WebKit/android/stlport/stddef.h deleted file mode 100644 index 01c449f..0000000 --- a/WebKit/android/stlport/stddef.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x262 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x262) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -# if defined (_MSC_VER) || defined (__DMC__) -/* Native stddef.h contains errno macro definition making inclusion of native - * errno.h in STLport errno.h impossible. We are then forced to include errno.h - * first. - */ -# include "errno.h" -# endif - -# include _STLP_NATIVE_C_HEADER(stddef.h) - -#if (_STLP_OUTERMOST_HEADER_ID == 0x262) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - diff --git a/WebKit/android/stlport/stdexcept b/WebKit/android/stlport/stdexcept deleted file mode 100644 index b00331f..0000000 --- a/WebKit/android/stlport/stdexcept +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STDEXCEPT - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x63 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x63) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# define _STLP_STDEXCEPT -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x63) || defined (_STLP_DONT_POP_HEADER_ID) -# include _STLP_NATIVE_HEADER(stdexcept) -#else -# ifndef _STLP_INTERNAL_STDEXCEPT -# include <stl/_stdexcept.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x63) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -#endif /* _STLP_STDEXCEPT */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stdio.h b/WebKit/android/stlport/stdio.h deleted file mode 100644 index 271f37b..0000000 --- a/WebKit/android/stlport/stdio.h +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* Workaround for a "misbehaviour" when compiling resource scripts using - * eMbedded Visual C++. The standard .rc file includes windows header files, - * which in turn include stdarg.h, which results in warnings and errors - */ -#if !defined(RC_INVOKED) - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x264 -# include <stl/_prolog.h> -# elif (_STLP_OUTERMOST_HEADER_ID == 0x264) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# endif - -# if defined(_STLP_WCE_EVC3) -struct _exception; -# endif -# include _STLP_NATIVE_C_HEADER(stdio.h) - -# if defined (__SUNPRO_CC) && !defined (_STRUCT_FILE) -# define _STRUCT_FILE -# endif - -# if (defined (__MWERKS__) && !defined (N_PLAT_NLM)) || defined (__BORLANDC__) -# undef stdin -# undef stdout -# undef stderr -# if defined (__MWERKS__) -# define stdin (&_STLP_VENDOR_CSTD::__files[0]) -# define stdout (&_STLP_VENDOR_CSTD::__files[1]) -# define stderr (&_STLP_VENDOR_CSTD::__files[2]) -# elif defined (__BORLANDC__) -# define stdin (&_STLP_VENDOR_CSTD::_streams[0]) -# define stdout (&_STLP_VENDOR_CSTD::_streams[1]) -# define stderr (&_STLP_VENDOR_CSTD::_streams[2]) -# endif -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x264) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -# endif - -#endif /* RC_INVOKED */ diff --git a/WebKit/android/stlport/stdiostream.h b/WebKit/android/stlport/stdiostream.h deleted file mode 100644 index 80a5c67..0000000 --- a/WebKit/android/stlport/stdiostream.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef _STLP_misc_stdiostream_h -# define _STLP_misc_stdiostream_h -# if (__SUNPRO_CC >= 0x500 ) -# include <../CCios/stdiostream.h> -# else if defined (__SUNPRO_CC) -# include <../CC/stdiostream.h> -# else -# error "This file is for SUN CC only. Please remove it if it causes any harm for other compilers." -# endif -#endif diff --git a/WebKit/android/stlport/stdlib.h b/WebKit/android/stlport/stdlib.h deleted file mode 100644 index 3a415ee..0000000 --- a/WebKit/android/stlport/stdlib.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* Workaround for a "misbehaviour" when compiling resource scripts using - * eMbedded Visual C++. The standard .rc file includes windows header files, - * which in turn include stdlib.h, which results in warnings and errors - */ -#if !defined (RC_INVOKED) - -# if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x265 -# include <stl/_prolog.h> -# elif (_STLP_OUTERMOST_HEADER_ID == 0x265) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# endif - -# if defined (_MSC_VER) || (defined (__GNUC__) && defined (__MINGW32__)) || \ - defined (__BORLANDC__) || defined (__DMC__) || \ - (defined (__HP_aCC) && defined (_REENTRANT)) -/* Native stdlib.h contains errno macro definition making inclusion of native - * errno.h in STLport errno.h impossible. We are then forced to include errno.h - * first. - */ -# include "errno.h" -# endif - -/* - forward-declaration for _exception struct; prevents warning message - ../include/stdlib.h(817) : warning C4115: '_exception' : named type definition in parentheses -*/ -# if defined(_STLP_WCE_EVC3) -struct _exception; -# endif - -# include _STLP_NATIVE_C_HEADER(stdlib.h) - -/* on evc3/evc4 including stdlib.h also defines setjmp macro */ -# if defined (_STLP_WCE) -# define _STLP_NATIVE_SETJMP_H_INCLUDED -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x265) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -# endif - -#endif /* RC_INVOKED */ - -/* - Local Variables: - mode:C++ - End: -*/ diff --git a/WebKit/android/stlport/stl/_abbrevs.h b/WebKit/android/stlport/stl/_abbrevs.h deleted file mode 100644 index c4acac8..0000000 --- a/WebKit/android/stlport/stl/_abbrevs.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ABBREVS_H -# define _STLP_INTERNAL_ABBREVS_H - -// ugliness is intentional - to reduce conflicts -# define input_iterator_tag _In__ItT -# define output_iterator_tag _Ou__ItT -# define bidirectional_iterator_tag _Bd__ItT -# define random_access_iterator_tag _Ra__ItT -# define input_iterator _In__It -# define output_iterator _Ou__It -# define bidirectional_iterator _Bd__It -# define random_access_iterator _Ra__It -# define reverse_bidirectional_iterator _rBd__It -# define reverse_iterator _r__It -# define back_insert_iterator _bI__It -# define front_insert_iterator _fI__It -# define raw_storage_iterator _rS__It -# define _Const_traits _C_Tr -# define _Const_Const_traits _CC_Tr -# define _Nonconst_traits _N_Tr -# define _Nonconst_Const_traits _NC_Tr - -// ugliness is intentional - to reduce conflicts probability -# define __malloc_alloc M__A -# define __node_alloc D__A -# define __new_alloc N__A -# define __debug_alloc G__A -# define _STLP_alloc_proxy P__A - -# define _Deque_iterator_base _Dq__ItB -# define _Deque_iterator _Dq__It - -# define _Select1st _S1st -# define _Select2nd _S2nd -# define __move_source __m_s -# define _Vector_nonconst_traits _V_nct - -# define _Ht_iterator _Ht_It - -# define _List_node_base _L__NB -# define _List_iterator_base _L__ItB -# define _List_iterator _L__It - -# define _Slist_iterator_base _SL__ItB -# define _Slist_iterator _SL__It - -# define _Rb_tree_node_base _rbT__NB -# define _Rb_tree_node _rbT__N -# define _Rb_tree_base_iterator _rbT__It -# define _Rb_tree_base _rbT__B - -# if defined (__DMC__) && defined (_STLP_DEBUG) -# define _NonDbg_hashtable _Nd_Ht -# define _DBG_iter _d__It -# endif -#endif - diff --git a/WebKit/android/stlport/stl/_algo.c b/WebKit/android/stlport/stl/_algo.c deleted file mode 100644 index 79745ba..0000000 --- a/WebKit/android/stlport/stl/_algo.c +++ /dev/null @@ -1,2012 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_ALGO_C -#define _STLP_ALGO_C - -#if !defined (_STLP_INTERNAL_ALGO_H) -# include <stl/_algo.h> -#endif - -#ifndef _STLP_INTERNAL_TEMPBUF_H -# include <stl/_tempbuf.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _BidirectionalIter, class _Distance, class _Compare> -void __merge_without_buffer(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2, - _Compare __comp); - - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BidirectionalIter3, class _Compare> -_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1, - _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, - _BidirectionalIter2 __last2, - _BidirectionalIter3 __result, - _Compare __comp); - -template <class _Tp> -#if !(defined (__SUNPRO_CC) && (__SUNPRO_CC < 0x420 )) -inline -#endif -const _Tp& __median(const _Tp& __a, const _Tp& __b, const _Tp& __c) { - if (__a < __b) - if (__b < __c) - return __b; - else if (__a < __c) - return __c; - else - return __a; - else if (__a < __c) - return __a; - else if (__b < __c) - return __c; - else - return __b; -} - -template <class _Tp, class _Compare> -#if !(defined (__SUNPRO_CC) && (__SUNPRO_CC < 0x420 )) -inline -#endif -const _Tp& -__median(const _Tp& __a, const _Tp& __b, const _Tp& __c, _Compare __comp) { - if (__comp(__a, __b)) { - _STLP_VERBOSE_ASSERT(!__comp(__b, __a), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - if (__comp(__b, __c)) { - _STLP_VERBOSE_ASSERT(!__comp(__c, __b), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return __b; - } - else if (__comp(__a, __c)) { - _STLP_VERBOSE_ASSERT(!__comp(__c, __a), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return __c; - } - else - return __a; - } - else if (__comp(__a, __c)) { - _STLP_VERBOSE_ASSERT(!__comp(__c, __a), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return __a; - } - else if (__comp(__b, __c)) { - _STLP_VERBOSE_ASSERT(!__comp(__c, __b), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return __c; - } - else - return __b; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - // Test for empty ranges - if (__first1 == __last1 || __first2 == __last2) - return __first1; - - // Test for a pattern of length 1. - _ForwardIter2 __p1(__first2); - - if ( ++__p1 == __last2 ) - return find(__first1, __last1, *__first2); - - // General case. - - for ( ; ; ) { // __first1 != __last1 will be checked in find below - __first1 = find(__first1, __last1, *__first2); - if (__first1 == __last1) - return __last1; - - _ForwardIter2 __p = __p1; - _ForwardIter1 __current = __first1; - if (++__current == __last1) - return __last1; - - while (*__current == *__p) { - if (++__p == __last2) - return __first1; - if (++__current == __last1) - return __last1; - } - - ++__first1; - } - return __first1; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Integer, class _Tp, - class _BinaryPred, class _Distance> -_RandomAccessIter __search_n(_RandomAccessIter __first, _RandomAccessIter __last, - _Integer __count, const _Tp& __val, _BinaryPred __pred, - _Distance*, const random_access_iterator_tag &) -{ - _Distance __tailSize = __last - __first; - const _Distance __pattSize = __count; - const _Distance __skipOffset = __pattSize - 1; - _RandomAccessIter __backTrack; - _Distance __remainder, __prevRemainder; - - for ( _RandomAccessIter __lookAhead = __first + __skipOffset; __tailSize >= __pattSize; __lookAhead += __pattSize ) { // the main loop... - //__lookAhead here is always pointing to the last element of next possible match. - __tailSize -= __pattSize; - - while ( !__pred(*__lookAhead, __val) ) { // the skip loop... - if (__tailSize < __pattSize) - return __last; - - __lookAhead += __pattSize; - __tailSize -= __pattSize; - } - - if ( __skipOffset == 0 ) { - return (__lookAhead - __skipOffset); //Success - } - - __remainder = __skipOffset; - - for (__backTrack = __lookAhead; __pred(*--__backTrack, __val); ) { - if (--__remainder == 0) - return (__lookAhead - __skipOffset); //Success - } - - if (__remainder > __tailSize) - return __last; //failure - - __lookAhead += __remainder; - __tailSize -= __remainder; - - while ( __pred(*__lookAhead, __val) ) { - __prevRemainder = __remainder; - __backTrack = __lookAhead; - - do { - if (--__remainder == 0) - return (__lookAhead - __skipOffset); //Success - } while (__pred(*--__backTrack, __val)); - - //adjust remainder for next comparison - __remainder += __pattSize - __prevRemainder; - - if (__remainder > __tailSize) - return __last; //failure - - __lookAhead += __remainder; - __tailSize -= __remainder; - } - - //__lookAhead here is always pointing to the element of the last mismatch. - } - - return __last; //failure -} - -template <class _ForwardIter, class _Integer, class _Tp, - class _Distance, class _BinaryPred> -_ForwardIter __search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val, _BinaryPred __pred, - _Distance*, const forward_iterator_tag &) { - for (; (__first != __last) && !__pred(*__first, __val); ++__first) {} - while (__first != __last) { - _Integer __n = __count - 1; - _ForwardIter __i = __first; - ++__i; - while (__i != __last && __n != 0 && __pred(*__i, __val)) { - ++__i; - --__n; - } - if (__n == 0) - return __first; - else if (__i != __last) - for (__first = ++__i; (__first != __last) && !__pred(*__first, __val); ++__first) {} - else - break; - } - return __last; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -// search_n. Search for __count consecutive copies of __val. -template <class _ForwardIter, class _Integer, class _Tp> -_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__count <= 0) - return __first; - if (__count == 1) - //We use find when __count == 1 to use potential find overload. - return find(__first, __last, __val); - return _STLP_PRIV __search_n(__first, __last, __count, __val, equal_to<_Tp>(), - _STLP_DISTANCE_TYPE(__first, _ForwardIter), - _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); -} - -template <class _ForwardIter, class _Integer, class _Tp, class _BinaryPred> -_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val, - _BinaryPred __binary_pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__count <= 0) - return __first; - return _STLP_PRIV __search_n(__first, __last, __count, __val, __binary_pred, - _STLP_DISTANCE_TYPE(__first, _ForwardIter), - _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); -} - -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter1 -find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - return _STLP_PRIV __find_end(__first1, __last1, __first2, __last2, -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - _STLP_ITERATOR_CATEGORY(__first1, _ForwardIter1), - _STLP_ITERATOR_CATEGORY(__first2, _ForwardIter2), -#else - forward_iterator_tag(), - forward_iterator_tag(), -#endif - _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first1, _ForwardIter1)) - ); -} - -// unique and unique_copy -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIterator, class _OutputIterator, class _BinaryPredicate, - class _Tp> -_STLP_INLINE_LOOP _OutputIterator -__unique_copy(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, - _BinaryPredicate __binary_pred, _Tp*) { - _Tp __val = *__first; - *__result = __val; - while (++__first != __last) - if (!__binary_pred(__val, *__first)) { - __val = *__first; - *++__result = __val; - } - return ++__result; -} - -template <class _InputIter, class _OutputIter, class _BinaryPredicate> -inline _OutputIter -__unique_copy(_InputIter __first, _InputIter __last,_OutputIter __result, - _BinaryPredicate __binary_pred, const output_iterator_tag &) { - return __unique_copy(__first, __last, __result, __binary_pred, _STLP_VALUE_TYPE(__first, _InputIter)); -} - -template <class _InputIter, class _ForwardIter, class _BinaryPredicate> -_STLP_INLINE_LOOP _ForwardIter -__unique_copy(_InputIter __first, _InputIter __last, _ForwardIter __result, - _BinaryPredicate __binary_pred, const forward_iterator_tag &) { - *__result = *__first; - while (++__first != __last) - if (!__binary_pred(*__result, *__first)) *++__result = *__first; - return ++__result; -} - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _InputIterator, class _BidirectionalIterator, class _BinaryPredicate> -inline _BidirectionalIterator -__unique_copy(_InputIterator __first, _InputIterator __last, - _BidirectionalIterator __result, _BinaryPredicate __binary_pred, - const bidirectional_iterator_tag &) { - return __unique_copy(__first, __last, __result, __binary_pred, forward_iterator_tag()); -} - -template <class _InputIterator, class _RandomAccessIterator, class _BinaryPredicate> -inline _RandomAccessIterator -__unique_copy(_InputIterator __first, _InputIterator __last, - _RandomAccessIterator __result, _BinaryPredicate __binary_pred, - const random_access_iterator_tag &) { - return __unique_copy(__first, __last, __result, __binary_pred, forward_iterator_tag()); -} -#endif /* _STLP_NONTEMPL_BASE_MATCH_BUG */ - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _OutputIter> -_OutputIter -unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return __result; - return _STLP_PRIV __unique_copy(__first, __last, __result, - _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first, _InputIter)), - _STLP_ITERATOR_CATEGORY(__result, _OutputIter)); -} - -template <class _InputIter, class _OutputIter, class _BinaryPredicate> -_OutputIter -unique_copy(_InputIter __first, _InputIter __last,_OutputIter __result, - _BinaryPredicate __binary_pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return __result; - return _STLP_PRIV __unique_copy(__first, __last, __result, __binary_pred, - _STLP_ITERATOR_CATEGORY(__result, _OutputIter)); -} - -// rotate and rotate_copy, and their auxiliary functions -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Distance> -_ForwardIter __rotate_aux(_ForwardIter __first, - _ForwardIter __middle, - _ForwardIter __last, - _Distance*, - const forward_iterator_tag &) { - if (__first == __middle) - return __last; - if (__last == __middle) - return __first; - - _ForwardIter __first2 = __middle; - do { - swap(*__first++, *__first2++); - if (__first == __middle) - __middle = __first2; - } while (__first2 != __last); - - _ForwardIter __new_middle = __first; - - __first2 = __middle; - - while (__first2 != __last) { - swap (*__first++, *__first2++); - if (__first == __middle) - __middle = __first2; - else if (__first2 == __last) - __first2 = __middle; - } - - return __new_middle; -} - -template <class _BidirectionalIter, class _Distance> -_BidirectionalIter __rotate_aux(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance*, - const bidirectional_iterator_tag &) { - if (__first == __middle) - return __last; - if (__last == __middle) - return __first; - - __reverse(__first, __middle, bidirectional_iterator_tag()); - __reverse(__middle, __last, bidirectional_iterator_tag()); - - while (__first != __middle && __middle != __last) - swap (*__first++, *--__last); - - if (__first == __middle) { - __reverse(__middle, __last, bidirectional_iterator_tag()); - return __last; - } - else { - __reverse(__first, __middle, bidirectional_iterator_tag()); - return __first; - } -} - -template <class _RandomAccessIter, class _Distance, class _Tp> -_RandomAccessIter __rotate_aux(_RandomAccessIter __first, - _RandomAccessIter __middle, - _RandomAccessIter __last, - _Distance *, _Tp *) { - - _Distance __n = __last - __first; - _Distance __k = __middle - __first; - _Distance __l = __n - __k; - _RandomAccessIter __result = __first + (__last - __middle); - - if (__k == 0) /* __first == middle */ - return __last; - - if (__k == __l) { - swap_ranges(__first, __middle, __middle); - return __result; - } - - _Distance __d = __gcd(__n, __k); - - for (_Distance __i = 0; __i < __d; __i++) { - _Tp __tmp = *__first; - _RandomAccessIter __p = __first; - - if (__k < __l) { - for (_Distance __j = 0; __j < __l/__d; __j++) { - if (__p > __first + __l) { - *__p = *(__p - __l); - __p -= __l; - } - - *__p = *(__p + __k); - __p += __k; - } - } - - else { - for (_Distance __j = 0; __j < __k/__d - 1; __j ++) { - if (__p < __last - __k) { - *__p = *(__p + __k); - __p += __k; - } - - *__p = * (__p - __l); - __p -= __l; - } - } - - *__p = __tmp; - ++__first; - } - - return __result; -} - -template <class _RandomAccessIter, class _Distance> -inline _RandomAccessIter -__rotate_aux(_RandomAccessIter __first, _RandomAccessIter __middle, _RandomAccessIter __last, - _Distance * __dis, const random_access_iterator_tag &) { - return __rotate_aux(__first, __middle, __last, - __dis, _STLP_VALUE_TYPE(__first, _RandomAccessIter)); -} - -template <class _ForwardIter> -_ForwardIter -__rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) { - _STLP_DEBUG_CHECK(__check_range(__first, __middle)) - _STLP_DEBUG_CHECK(__check_range(__middle, __last)) - return __rotate_aux(__first, __middle, __last, - _STLP_DISTANCE_TYPE(__first, _ForwardIter), - _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter> -void rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last) { - _STLP_PRIV __rotate(__first, __middle, __last); -} - -// Return a random number in the range [0, __n). This function encapsulates -// whether we're using rand (part of the standard C library) or lrand48 -// (not standard, but a much better choice whenever it's available). -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Distance> -inline _Distance __random_number(_Distance __n) { -#ifdef _STLP_NO_DRAND48 - return rand() % __n; -#else - return lrand48() % __n; -#endif -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -void random_shuffle(_RandomAccessIter __first, - _RandomAccessIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - iter_swap(__i, __first + _STLP_PRIV __random_number((__i - __first) + 1)); -} - -template <class _RandomAccessIter, class _RandomNumberGenerator> -void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, - _RandomNumberGenerator &__rand) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - iter_swap(__i, __first + __rand((__i - __first) + 1)); -} - -#if !defined (_STLP_NO_EXTENSIONS) -// random_sample and random_sample_n (extensions, not part of the standard). -template <class _ForwardIter, class _OutputIter, class _Distance> -_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); - - while (__m > 0) { - if (_STLP_PRIV __random_number(__remaining) < __m) { - *__out_ite = *__first; - ++__out_ite; - --__m; - } - - --__remaining; - ++__first; - } - return __out_ite; -} - - -template <class _ForwardIter, class _OutputIter, class _Distance, - class _RandomNumberGenerator> -_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, - _OutputIter __out_ite, const _Distance __n, - _RandomNumberGenerator& __rand) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _Distance __remaining = distance(__first, __last); - _Distance __m = (min) (__n, __remaining); - - while (__m > 0) { - if (__rand(__remaining) < __m) { - *__out_ite = *__first; - ++__out_ite; - --__m; - } - - --__remaining; - ++__first; - } - return __out_ite; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter, class _RandomAccessIter, class _Distance> -_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_ite, - const _Distance __n) { - _Distance __m = 0; - _Distance __t = __n; - for ( ; __first != __last && __m < __n; ++__m, ++__first) - __out_ite[__m] = *__first; - - while (__first != __last) { - ++__t; - _Distance __M = __random_number(__t); - if (__M < __n) - __out_ite[__M] = *__first; - ++__first; - } - - return __out_ite + __m; -} - -template <class _InputIter, class _RandomAccessIter, - class _RandomNumberGenerator, class _Distance> -_RandomAccessIter __random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_ite, - _RandomNumberGenerator& __rand, - const _Distance __n) { - _Distance __m = 0; - _Distance __t = __n; - for ( ; __first != __last && __m < __n; ++__m, ++__first) - __out_ite[__m] = *__first; - - while (__first != __last) { - ++__t; - _Distance __M = __rand(__t); - if (__M < __n) - __out_ite[__M] = *__first; - ++__first; - } - - return __out_ite + __m; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _RandomAccessIter> -_RandomAccessIter -random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_first, _RandomAccessIter __out_last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__out_first, __out_last)) - return _STLP_PRIV __random_sample(__first, __last, - __out_first, __out_last - __out_first); -} - -template <class _InputIter, class _RandomAccessIter, class _RandomNumberGenerator> -_RandomAccessIter -random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_first, _RandomAccessIter __out_last, - _RandomNumberGenerator& __rand) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__out_first, __out_last)) - return _STLP_PRIV __random_sample(__first, __last, - __out_first, __rand, - __out_last - __out_first); -} - -#endif /* _STLP_NO_EXTENSIONS */ - -// partition, stable_partition, and their auxiliary functions -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Predicate> -_STLP_INLINE_LOOP _ForwardIter __partition(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred, - const forward_iterator_tag &) { - if (__first == __last) return __first; - - while (__pred(*__first)) - if (++__first == __last) return __first; - - _ForwardIter __next = __first; - - while (++__next != __last) { - if (__pred(*__next)) { - swap(*__first, *__next); - ++__first; - } - } - return __first; -} - -template <class _BidirectionalIter, class _Predicate> -_STLP_INLINE_LOOP _BidirectionalIter __partition(_BidirectionalIter __first, - _BidirectionalIter __last, - _Predicate __pred, - const bidirectional_iterator_tag &) { - for (;;) { - for (;;) { - if (__first == __last) - return __first; - else if (__pred(*__first)) - ++__first; - else - break; - } - --__last; - for (;;) { - if (__first == __last) - return __first; - else if (!__pred(*__last)) - --__last; - else - break; - } - iter_swap(__first, __last); - ++__first; - } -} - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _BidirectionalIter, class _Predicate> -inline -_BidirectionalIter __partition(_BidirectionalIter __first, - _BidirectionalIter __last, - _Predicate __pred, - const random_access_iterator_tag &) { - return __partition(__first, __last, __pred, bidirectional_iterator_tag()); -} -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter, class _Predicate> -_ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __partition(__first, __last, __pred, _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); -} - - -/* __pred_of_first: false if we know that __pred(*__first) is false, - * true when we don't know the result of __pred(*__first). - * __not_pred_of_before_last: true if we know that __pred(*--__last) is true, - * false when we don't know the result of __pred(*--__last). - */ -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Predicate, class _Distance> -_ForwardIter __inplace_stable_partition(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred, _Distance __len, - bool __pred_of_first, bool __pred_of_before_last) { - if (__len == 1) - return (__pred_of_first && (__pred_of_before_last || __pred(*__first))) ? __last : __first; - _ForwardIter __middle = __first; - _Distance __half_len = __len / 2; - advance(__middle, __half_len); - return __rotate(__inplace_stable_partition(__first, __middle, __pred, __half_len, __pred_of_first, false), - __middle, - __inplace_stable_partition(__middle, __last, __pred, __len - __half_len, true, __pred_of_before_last)); -} - -template <class _ForwardIter, class _Pointer, class _Predicate, - class _Distance> -_ForwardIter __stable_partition_adaptive(_ForwardIter __first, - _ForwardIter __last, - _Predicate __pred, _Distance __len, - _Pointer __buffer, _Distance __buffer_size, - bool __pred_of_first, bool __pred_of_before_last) { - if (__len <= __buffer_size) { - _ForwardIter __result1 = __first; - _Pointer __result2 = __buffer; - if ((__first != __last) && (!__pred_of_first || __pred(*__first))) { - *__result2 = *__first; - ++__result2; ++__first; --__len; - } - for (; __first != __last ; ++__first, --__len) { - if (((__len == 1) && (__pred_of_before_last || __pred(*__first))) || - ((__len != 1) && __pred(*__first))){ - *__result1 = *__first; - ++__result1; - } - else { - *__result2 = *__first; - ++__result2; - } - } - copy(__buffer, __result2, __result1); - return __result1; - } - else { - _ForwardIter __middle = __first; - _Distance __half_len = __len / 2; - advance(__middle, __half_len); - return __rotate(__stable_partition_adaptive( - __first, __middle, __pred, - __half_len, __buffer, __buffer_size, - __pred_of_first, false), - __middle, - __stable_partition_adaptive( - __middle, __last, __pred, - __len - __half_len, __buffer, __buffer_size, - true, __pred_of_before_last)); - } -} - -template <class _ForwardIter, class _Predicate, class _Tp, class _Distance> -inline _ForwardIter -__stable_partition_aux_aux(_ForwardIter __first, _ForwardIter __last, - _Predicate __pred, _Tp*, _Distance*, bool __pred_of_before_last = false) { - _Temporary_buffer<_ForwardIter, _Tp> __buf(__first, __last); - _STLP_MPWFIX_TRY //*TY 06/01/2000 - they forget to call dtor for _Temporary_buffer if no try/catch block is present - return (__buf.size() > 0) ? - __stable_partition_adaptive(__first, __last, __pred, - _Distance(__buf.requested_size()), - __buf.begin(), __buf.size(), - false, __pred_of_before_last) : - __inplace_stable_partition(__first, __last, __pred, - _Distance(__buf.requested_size()), - false, __pred_of_before_last); - _STLP_MPWFIX_CATCH //*TY 06/01/2000 - they forget to call dtor for _Temporary_buffer if no try/catch block is present -} - -template <class _ForwardIter, class _Predicate> -_ForwardIter -__stable_partition_aux(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, - const forward_iterator_tag &) { - return __stable_partition_aux_aux(__first, __last, __pred, - _STLP_VALUE_TYPE(__first, _ForwardIter), - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -template <class _BidirectIter, class _Predicate> -_BidirectIter -__stable_partition_aux(_BidirectIter __first, _BidirectIter __last, _Predicate __pred, - const bidirectional_iterator_tag &) { - for (--__last;;) { - if (__first == __last) - return __first; - else if (!__pred(*__last)) - --__last; - else - break; - } - ++__last; - //Here we know that __pred(*--__last) is true - return __stable_partition_aux_aux(__first, __last, __pred, - _STLP_VALUE_TYPE(__first, _BidirectIter), - _STLP_DISTANCE_TYPE(__first, _BidirectIter), true); -} - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _BidirectIter, class _Predicate> -_BidirectIter -__stable_partition_aux(_BidirectIter __first, _BidirectIter __last, _Predicate __pred, - const random_access_iterator_tag &) { - return __stable_partition_aux(__first, __last, __pred, bidirectional_iterator_tag()); -} -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter, class _Predicate> -_ForwardIter -stable_partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for (;;) { - if (__first == __last) - return __first; - else if (__pred(*__first)) - ++__first; - else - break; - } - return _STLP_PRIV __stable_partition_aux(__first, __last, __pred, - _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Tp, class _Compare> -_RandomAccessIter __unguarded_partition(_RandomAccessIter __first, - _RandomAccessIter __last, - _Tp __pivot, _Compare __comp) { - for (;;) { - while (__comp(*__first, __pivot)) { - _STLP_VERBOSE_ASSERT(!__comp(__pivot, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - ++__first; - } - --__last; - while (__comp(__pivot, *__last)) { - _STLP_VERBOSE_ASSERT(!__comp(*__last, __pivot), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - --__last; - } - if (!(__first < __last)) - return __first; - iter_swap(__first, __last); - ++__first; - } -} - -// sort() and its auxiliary functions. -#define __stl_threshold 16 - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __unguarded_linear_insert(_RandomAccessIter __last, _Tp __val, - _Compare __comp) { - _RandomAccessIter __next = __last; - --__next; - while (__comp(__val, *__next)) { - _STLP_VERBOSE_ASSERT(!__comp(*__next, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *__last = *__next; - __last = __next; - --__next; - } - *__last = __val; -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -inline void __linear_insert(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp __val, _Compare __comp) { - //*TY 12/26/1998 - added __val as a paramter - // _Tp __val = *__last; //*TY 12/26/1998 - __val supplied by caller - if (__comp(__val, *__first)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - copy_backward(__first, __last, __last + 1); - *__first = __val; - } - else - __unguarded_linear_insert(__last, __val, __comp); -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, - _Tp *, _Compare __comp) { - if (__first == __last) return; - for (_RandomAccessIter __i = __first + 1; __i != __last; ++__i) - __linear_insert<_RandomAccessIter, _Tp, _Compare>(__first, __i, *__i, __comp); //*TY 12/26/1998 - supply *__i as __val -} - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __unguarded_insertion_sort_aux(_RandomAccessIter __first, - _RandomAccessIter __last, - _Tp*, _Compare __comp) { - for (_RandomAccessIter __i = __first; __i != __last; ++__i) - __unguarded_linear_insert<_RandomAccessIter, _Tp, _Compare>(__i, *__i, __comp); -} - -template <class _RandomAccessIter, class _Compare> -inline void __unguarded_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, - _Compare __comp) { - __unguarded_insertion_sort_aux(__first, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp); -} - -template <class _RandomAccessIter, class _Compare> -void __final_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) { - if (__last - __first > __stl_threshold) { - __insertion_sort(__first, __first + __stl_threshold, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp); - __unguarded_insertion_sort(__first + __stl_threshold, __last, __comp); - } - else - __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp); -} - -template <class _RandomAccessIter, class _Tp, class _Size, class _Compare> -void __introsort_loop(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, - _Size __depth_limit, _Compare __comp) { - while (__last - __first > __stl_threshold) { - if (__depth_limit == 0) { - partial_sort(__first, __last, __last, __comp); - return; - } - --__depth_limit; - _RandomAccessIter __cut = - __unguarded_partition(__first, __last, - _Tp(__median(*__first, - *(__first + (__last - __first)/2), - *(__last - 1), __comp)), - __comp); - __introsort_loop(__cut, __last, (_Tp*) 0, __depth_limit, __comp); - __last = __cut; - } -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -void sort(_RandomAccessIter __first, _RandomAccessIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first != __last) { - _STLP_PRIV __introsort_loop(__first, __last, - _STLP_VALUE_TYPE(__first, _RandomAccessIter), - _STLP_PRIV __lg(__last - __first) * 2, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter))); - _STLP_PRIV __final_insertion_sort(__first, __last, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter))); - } -} - -template <class _RandomAccessIter, class _Compare> -void sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first != __last) { - _STLP_PRIV __introsort_loop(__first, __last, - _STLP_VALUE_TYPE(__first, _RandomAccessIter), - _STLP_PRIV __lg(__last - __first) * 2, __comp); - _STLP_PRIV __final_insertion_sort(__first, __last, __comp); - } -} - -// stable_sort() and its auxiliary functions. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Compare> -void __inplace_stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) { - if (__last - __first < 15) { - __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp); - return; - } - _RandomAccessIter __middle = __first + (__last - __first) / 2; - __inplace_stable_sort(__first, __middle, __comp); - __inplace_stable_sort(__middle, __last, __comp); - __merge_without_buffer(__first, __middle, __last, - __middle - __first, - __last - __middle, - __comp); -} - -template <class _RandomAccessIter1, class _RandomAccessIter2, - class _Distance, class _Compare> -void __merge_sort_loop(_RandomAccessIter1 __first, - _RandomAccessIter1 __last, - _RandomAccessIter2 __result, _Distance __step_size, - _Compare __comp) { - _Distance __two_step = 2 * __step_size; - - while (__last - __first >= __two_step) { - __result = merge(__first, __first + __step_size, - __first + __step_size, __first + __two_step, - __result, - __comp); - __first += __two_step; - } - __step_size = (min) (_Distance(__last - __first), __step_size); - - merge(__first, __first + __step_size, - __first + __step_size, __last, - __result, - __comp); -} - -const int __stl_chunk_size = 7; - -template <class _RandomAccessIter, class _Distance, class _Compare> -void __chunk_insertion_sort(_RandomAccessIter __first, - _RandomAccessIter __last, - _Distance __chunk_size, _Compare __comp) { - while (__last - __first >= __chunk_size) { - __insertion_sort(__first, __first + __chunk_size, - _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp); - __first += __chunk_size; - } - __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp); -} - -template <class _RandomAccessIter, class _Pointer, class _Distance, - class _Compare> -void __merge_sort_with_buffer(_RandomAccessIter __first, - _RandomAccessIter __last, _Pointer __buffer, - _Distance*, _Compare __comp) { - _Distance __len = __last - __first; - _Pointer __buffer_last = __buffer + __len; - - _Distance __step_size = __stl_chunk_size; - __chunk_insertion_sort(__first, __last, __step_size, __comp); - - while (__step_size < __len) { - __merge_sort_loop(__first, __last, __buffer, __step_size, __comp); - __step_size *= 2; - __merge_sort_loop(__buffer, __buffer_last, __first, __step_size, __comp); - __step_size *= 2; - } -} - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _Distance> -_BidirectionalIter1 __rotate_adaptive(_BidirectionalIter1 __first, - _BidirectionalIter1 __middle, - _BidirectionalIter1 __last, - _Distance __len1, _Distance __len2, - _BidirectionalIter2 __buffer, - _Distance __buffer_size) { - if (__len1 > __len2 && __len2 <= __buffer_size) { - _BidirectionalIter2 __buffer_end = copy(__middle, __last, __buffer); - copy_backward(__first, __middle, __last); - return copy(__buffer, __buffer_end, __first); - } - else if (__len1 <= __buffer_size) { - _BidirectionalIter2 __buffer_end = copy(__first, __middle, __buffer); - copy(__middle, __last, __first); - return copy_backward(__buffer, __buffer_end, __last); - } - else - return __rotate(__first, __middle, __last); -} - -template <class _BidirectionalIter, class _Distance, class _Pointer, - class _Compare> -void __merge_adaptive(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2, - _Pointer __buffer, _Distance __buffer_size, - _Compare __comp) { - if (__len1 <= __len2 && __len1 <= __buffer_size) { - _Pointer __buffer_end = copy(__first, __middle, __buffer); - merge(__buffer, __buffer_end, __middle, __last, __first, __comp); - } - else if (__len2 <= __buffer_size) { - _Pointer __buffer_end = copy(__middle, __last, __buffer); - __merge_backward(__first, __middle, __buffer, __buffer_end, __last, - __comp); - } - else { - _BidirectionalIter __first_cut = __first; - _BidirectionalIter __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) { - __len11 = __len1 / 2; - advance(__first_cut, __len11); - __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); - __len22 += distance(__middle, __second_cut); - } - else { - __len22 = __len2 / 2; - advance(__second_cut, __len22); - __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); - __len11 += distance(__first, __first_cut); - } - _BidirectionalIter __new_middle = - __rotate_adaptive(__first_cut, __middle, __second_cut, __len1 - __len11, - __len22, __buffer, __buffer_size); - __merge_adaptive(__first, __first_cut, __new_middle, __len11, - __len22, __buffer, __buffer_size, __comp); - __merge_adaptive(__new_middle, __second_cut, __last, __len1 - __len11, - __len2 - __len22, __buffer, __buffer_size, __comp); - } -} - -template <class _RandomAccessIter, class _Pointer, class _Distance, - class _Compare> -void __stable_sort_adaptive(_RandomAccessIter __first, - _RandomAccessIter __last, _Pointer __buffer, - _Distance __buffer_size, _Compare __comp) { - _Distance __len = (__last - __first + 1) / 2; - _RandomAccessIter __middle = __first + __len; - if (__len > __buffer_size) { - __stable_sort_adaptive(__first, __middle, __buffer, __buffer_size, - __comp); - __stable_sort_adaptive(__middle, __last, __buffer, __buffer_size, - __comp); - } - else { - __merge_sort_with_buffer(__first, __middle, __buffer, (_Distance*)0, - __comp); - __merge_sort_with_buffer(__middle, __last, __buffer, (_Distance*)0, - __comp); - } - __merge_adaptive(__first, __middle, __last, _Distance(__middle - __first), - _Distance(__last - __middle), __buffer, __buffer_size, - __comp); -} - -template <class _RandomAccessIter, class _Tp, class _Distance, class _Compare> -void __stable_sort_aux(_RandomAccessIter __first, - _RandomAccessIter __last, _Tp*, _Distance*, - _Compare __comp) { - _Temporary_buffer<_RandomAccessIter, _Tp> buf(__first, __last); - if (buf.begin() == 0) - __inplace_stable_sort(__first, __last, __comp); - else - __stable_sort_adaptive(__first, __last, buf.begin(), - _Distance(buf.size()), - __comp); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -void stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_PRIV __stable_sort_aux(__first, __last, - _STLP_VALUE_TYPE(__first, _RandomAccessIter), - _STLP_DISTANCE_TYPE(__first, _RandomAccessIter), - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter))); -} - -template <class _RandomAccessIter, class _Compare> -void stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_PRIV __stable_sort_aux(__first, __last, - _STLP_VALUE_TYPE(__first, _RandomAccessIter), - _STLP_DISTANCE_TYPE(__first, _RandomAccessIter), - __comp); -} - -// partial_sort, partial_sort_copy, and auxiliary functions. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, - _RandomAccessIter __last, _Tp*, _Compare __comp) { - make_heap(__first, __middle, __comp); - for (_RandomAccessIter __i = __middle; __i < __last; ++__i) { - if (__comp(*__i, *__first)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first, *__i), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __pop_heap(__first, __middle, __i, _Tp(*__i), __comp, - _STLP_DISTANCE_TYPE(__first, _RandomAccessIter)); - } - } - sort_heap(__first, __middle, __comp); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -void partial_sort(_RandomAccessIter __first,_RandomAccessIter __middle, - _RandomAccessIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last)) - _STLP_PRIV __partial_sort(__first, __middle, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter))); -} - -template <class _RandomAccessIter, class _Compare> -void partial_sort(_RandomAccessIter __first,_RandomAccessIter __middle, - _RandomAccessIter __last, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last)) - _STLP_PRIV __partial_sort(__first, __middle, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter, class _RandomAccessIter, class _Compare, - class _Distance, class _Tp> -_RandomAccessIter __partial_sort_copy(_InputIter __first, - _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last, - _Compare __comp, _Distance*, _Tp*) { - if (__result_first == __result_last) return __result_last; - _RandomAccessIter __result_real_last = __result_first; - while(__first != __last && __result_real_last != __result_last) { - *__result_real_last = *__first; - ++__result_real_last; - ++__first; - } - make_heap(__result_first, __result_real_last, __comp); - while (__first != __last) { - if (__comp(*__first, *__result_first)) { - _STLP_VERBOSE_ASSERT(!__comp(*__result_first, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __adjust_heap(__result_first, _Distance(0), - _Distance(__result_real_last - __result_first), - _Tp(*__first), - __comp); - } - ++__first; - } - sort_heap(__result_first, __result_real_last, __comp); - return __result_real_last; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _RandomAccessIter> -_RandomAccessIter -partial_sort_copy(_InputIter __first, _InputIter __last, - _RandomAccessIter __result_first, _RandomAccessIter __result_last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__result_first, __result_last)) - return _STLP_PRIV __partial_sort_copy(__first, __last, __result_first, __result_last, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _InputIter)), - _STLP_DISTANCE_TYPE(__result_first, _RandomAccessIter), - _STLP_VALUE_TYPE(__first, _InputIter)); -} - -template <class _InputIter, class _RandomAccessIter, class _Compare> -_RandomAccessIter -partial_sort_copy(_InputIter __first, _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__result_first, __result_last)) - return _STLP_PRIV __partial_sort_copy(__first, __last, __result_first, __result_last, - __comp, - _STLP_DISTANCE_TYPE(__result_first, _RandomAccessIter), - _STLP_VALUE_TYPE(__first, _InputIter)); -} - -// nth_element() and its auxiliary functions. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Tp, class _Compare> -void __nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last, _Tp*, _Compare __comp) { - while (__last - __first > 3) { - _RandomAccessIter __cut = - __unguarded_partition(__first, __last, - _Tp(__median(*__first, - *(__first + (__last - __first)/2), - *(__last - 1), - __comp)), - __comp); - if (__cut <= __nth) - __first = __cut; - else - __last = __cut; - } - __insertion_sort(__first, __last, _STLP_VALUE_TYPE(__first,_RandomAccessIter), __comp); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __nth)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__nth, __last)) - _STLP_PRIV __nth_element(__first, __nth, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter))); -} - -template <class _RandomAccessIter, class _Compare> -void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __nth)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__nth, __last)) - _STLP_PRIV __nth_element(__first, __nth, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIter), __comp); -} - -// Binary search (lower_bound, upper_bound, equal_range, binary_search). -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Tp, - class _Compare1, class _Compare2, class _Distance> -_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare1 __comp1, _Compare2 __comp2, _Distance*) { - _Distance __len = distance(__first, __last); - _Distance __half; - - while (__len > 0) { - __half = __len >> 1; - _ForwardIter __middle = __first; - advance(__middle, __half); - if (__comp2(__val, *__middle)) { - _STLP_VERBOSE_ASSERT(!__comp1(*__middle, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __len = __half; - } - else { - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - } - return __first; -} - -template <class _ForwardIter, class _Tp, - class _Compare1, class _Compare2, class _Distance> -pair<_ForwardIter, _ForwardIter> -__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare1 __comp1, _Compare2 __comp2, _Distance* __dist) { - _Distance __len = distance(__first, __last); - _Distance __half; - - while (__len > 0) { - __half = __len >> 1; - _ForwardIter __middle = __first; - advance(__middle, __half); - if (__comp1(*__middle, __val)) { - _STLP_VERBOSE_ASSERT(!__comp2(__val, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else if (__comp2(__val, *__middle)) { - _STLP_VERBOSE_ASSERT(!__comp1(*__middle, __val), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __len = __half; - } - else { - _ForwardIter __left = __lower_bound(__first, __middle, __val, __comp1, __comp2, __dist); - //Small optim: If lower_bound haven't found an equivalent value - //there is no need to call upper_bound. - if (__comp1(*__left, __val)) { - _STLP_VERBOSE_ASSERT(!__comp2(__val, *__left), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return pair<_ForwardIter, _ForwardIter>(__left, __left); - } - advance(__first, __len); - _ForwardIter __right = __upper_bound(++__middle, __first, __val, __comp1, __comp2, __dist); - return pair<_ForwardIter, _ForwardIter>(__left, __right); - } - } - return pair<_ForwardIter, _ForwardIter>(__first, __first); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) { - if (*__first2 < *__first1) { - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first2, *__first1)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _BidirectionalIter, class _Distance, class _Compare> -void __merge_without_buffer(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, - _Distance __len1, _Distance __len2, - _Compare __comp) { - if (__len1 == 0 || __len2 == 0) - return; - if (__len1 + __len2 == 2) { - if (__comp(*__middle, *__first)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - iter_swap(__first, __middle); - } - return; - } - _BidirectionalIter __first_cut = __first; - _BidirectionalIter __second_cut = __middle; - _Distance __len11 = 0; - _Distance __len22 = 0; - if (__len1 > __len2) { - __len11 = __len1 / 2; - advance(__first_cut, __len11); - __second_cut = lower_bound(__middle, __last, *__first_cut, __comp); - __len22 += distance(__middle, __second_cut); - } - else { - __len22 = __len2 / 2; - advance(__second_cut, __len22); - __first_cut = upper_bound(__first, __middle, *__second_cut, __comp); - __len11 +=distance(__first, __first_cut); - } - _BidirectionalIter __new_middle - = __rotate(__first_cut, __middle, __second_cut); - __merge_without_buffer(__first, __first_cut, __new_middle, __len11, __len22, - __comp); - __merge_without_buffer(__new_middle, __second_cut, __last, __len1 - __len11, - __len2 - __len22, __comp); -} - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BidirectionalIter3, class _Compare> -_BidirectionalIter3 __merge_backward(_BidirectionalIter1 __first1, - _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, - _BidirectionalIter2 __last2, - _BidirectionalIter3 __result, - _Compare __comp) { - if (__first1 == __last1) - return copy_backward(__first2, __last2, __result); - if (__first2 == __last2) - return copy_backward(__first1, __last1, __result); - --__last1; - --__last2; - for (;;) { - if (__comp(*__last2, *__last1)) { - _STLP_VERBOSE_ASSERT(!__comp(*__last1, *__last2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *--__result = *__last1; - if (__first1 == __last1) - return copy_backward(__first2, ++__last2, __result); - --__last1; - } - else { - *--__result = *__last2; - if (__first2 == __last2) - return copy_backward(__first1, ++__last1, __result); - --__last2; - } - } -} - -template <class _BidirectionalIter, class _Tp, - class _Distance, class _Compare> -inline void __inplace_merge_aux(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, _Tp*, _Distance*, - _Compare __comp) { - _Distance __len1 = distance(__first, __middle); - _Distance __len2 = distance(__middle, __last); - - _Temporary_buffer<_BidirectionalIter, _Tp> __buf(__first, __last); - if (__buf.begin() == 0) - __merge_without_buffer(__first, __middle, __last, __len1, __len2, __comp); - else - __merge_adaptive(__first, __middle, __last, __len1, __len2, - __buf.begin(), _Distance(__buf.size()), - __comp); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _BidirectionalIter> -void inplace_merge(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last)) - if (__first == __middle || __middle == __last) - return; - _STLP_PRIV __inplace_merge_aux(__first, __middle, __last, - _STLP_VALUE_TYPE(__first, _BidirectionalIter), _STLP_DISTANCE_TYPE(__first, _BidirectionalIter), - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter))); -} - -template <class _BidirectionalIter, class _Compare> -void inplace_merge(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __middle)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__middle, __last)) - if (__first == __middle || __middle == __last) - return; - _STLP_PRIV __inplace_merge_aux(__first, __middle, __last, - _STLP_VALUE_TYPE(__first, _BidirectionalIter), _STLP_DISTANCE_TYPE(__first, _BidirectionalIter), - __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _Compare> -bool __includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) { - _STLP_DEBUG_CHECK(__check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(__check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first2, *__first1)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return false; - } - else if (__comp(*__first1, *__first2)) - ++__first1; - else - ++__first1, ++__first2; - - return __first2 == __last2; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _Compare> -bool includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, _Compare __comp) { - return _STLP_PRIV __includes(__first1, __last1, __first2, __last2, __comp); -} - -template <class _InputIter1, class _InputIter2> -bool includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) { - return _STLP_PRIV __includes(__first1, __last1, __first2, __last2, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1))); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter __set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - _STLP_DEBUG_CHECK(__check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(__check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first1, *__first2)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *__result = *__first1; - ++__first1; - } - else if (__comp(*__first2, *__first1)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *__result = *__first2; - ++__first2; - } - else { - *__result = *__first1; - ++__first1; - ++__first2; - } - ++__result; - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) { - return _STLP_PRIV __set_union(__first1, __last1, __first2, __last2, __result, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1))); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - return _STLP_PRIV __set_union(__first1, __last1, __first2, __last2, __result, __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter __set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - _STLP_DEBUG_CHECK(__check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(__check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first1, *__first2)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - ++__first1; - } - else if (__comp(*__first2, *__first1)) - ++__first2; - else { - *__result = *__first1; - ++__first1; - ++__first2; - ++__result; - } - return __result; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) { - return _STLP_PRIV __set_intersection(__first1, __last1, __first2, __last2, __result, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1))); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - return _STLP_PRIV __set_intersection(__first1, __last1, __first2, __last2, __result, __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter __set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - _STLP_DEBUG_CHECK(__check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(__check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) - if (__comp(*__first1, *__first2)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *__result = *__first1; - ++__first1; - ++__result; - } - else if (__comp(*__first2, *__first1)) - ++__first2; - else { - ++__first1; - ++__first2; - } - return copy(__first1, __last1, __result); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) { - return _STLP_PRIV __set_difference(__first1, __last1, __first2, __last2, __result, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1))); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - return _STLP_PRIV __set_difference(__first1, __last1, __first2, __last2, __result, __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter, class _Compare> -_OutputIter -__set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp) { - _STLP_DEBUG_CHECK(__check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(__check_range(__first2, __last2)) - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first1, *__first2)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first2, *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *__result = *__first1; - ++__first1; - ++__result; - } - else if (__comp(*__first2, *__first1)) { - *__result = *__first2; - ++__first2; - ++__result; - } - else { - ++__first1; - ++__first2; - } - } - return copy(__first2, __last2, copy(__first1, __last1, __result)); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter -set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result) { - return _STLP_PRIV __set_symmetric_difference(__first1, __last1, __first2, __last2, __result, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first1, _InputIter1))); -} - -template <class _InputIter1, class _InputIter2, class _OutputIter, class _Compare> -_OutputIter -set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, - _Compare __comp) { - return _STLP_PRIV __set_symmetric_difference(__first1, __last1, __first2, __last2, __result, __comp); -} - -// min_element and max_element, with and without an explicitly supplied -// comparison function. - -template <class _ForwardIter> -_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) - if (*__result < *__first) - __result = __first; - return __result; -} - -template <class _ForwardIter, class _Compare> -_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) { - if (__comp(*__result, *__first)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first, *__result), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __result = __first; - } - } - return __result; -} - -template <class _ForwardIter> -_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) - if (*__first < *__result) - __result = __first; - return __result; -} - -template <class _ForwardIter, class _Compare> -_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) return __first; - _ForwardIter __result = __first; - while (++__first != __last) { - if (__comp(*__first, *__result)) { - _STLP_VERBOSE_ASSERT(!__comp(*__result, *__first), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __result = __first; - } - } - return __result; -} - -// next_permutation and prev_permutation, with and without an explicitly -// supplied comparison function. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _BidirectionalIter, class _Compare> -bool __next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp) { - _STLP_DEBUG_CHECK(__check_range(__first, __last)) - if (__first == __last) - return false; - _BidirectionalIter __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) { - _BidirectionalIter __ii = __i; - --__i; - if (__comp(*__i, *__ii)) { - _STLP_VERBOSE_ASSERT(!__comp(*__ii, *__i), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - _BidirectionalIter __j = __last; - while (!__comp(*__i, *--__j)) {} - iter_swap(__i, __j); - reverse(__ii, __last); - return true; - } - if (__i == __first) { - reverse(__first, __last); - return false; - } - } -#if defined (_STLP_NEED_UNREACHABLE_RETURN) - return false; -#endif -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _BidirectionalIter> -bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __next_permutation(__first, __last, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter))); -} - -template <class _BidirectionalIter, class _Compare> -bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __next_permutation(__first, __last, __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _BidirectionalIter, class _Compare> -bool __prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp) { - if (__first == __last) - return false; - _BidirectionalIter __i = __first; - ++__i; - if (__i == __last) - return false; - __i = __last; - --__i; - - for(;;) { - _BidirectionalIter __ii = __i; - --__i; - if (__comp(*__ii, *__i)) { - _STLP_VERBOSE_ASSERT(!__comp(*__i, *__ii), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - _BidirectionalIter __j = __last; - while (!__comp(*--__j, *__i)) {} - iter_swap(__i, __j); - reverse(__ii, __last); - return true; - } - if (__i == __first) { - reverse(__first, __last); - return false; - } - } -#if defined (_STLP_NEED_UNREACHABLE_RETURN) - return false; -#endif -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _BidirectionalIter> -bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __prev_permutation(__first, __last, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _BidirectionalIter))); -} - -template <class _BidirectionalIter, class _Compare> -bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __prev_permutation(__first, __last, __comp); -} - -#if !defined (_STLP_NO_EXTENSIONS) - -// is_heap, a predicate testing whether or not a range is -// a heap. This function is an extension, not part of the C++ -// standard. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Distance, class _StrictWeakOrdering> -bool __is_heap(_RandomAccessIter __first, _StrictWeakOrdering __comp, - _Distance __n) { - _Distance __parent = 0; - for (_Distance __child = 1; __child < __n; ++__child) { - if (__comp(__first[__parent], __first[__child])) { - _STLP_VERBOSE_ASSERT(!__comp(__first[__child], __first[__parent]), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return false; - } - if ((__child & 1) == 0) - ++__parent; - } - return true; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __is_heap(__first, _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _RandomAccessIter)), __last - __first); -} - -template <class _RandomAccessIter, class _StrictWeakOrdering> -bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last, - _StrictWeakOrdering __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __is_heap(__first, __comp, __last - __first); -} - - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _StrictWeakOrdering> -bool __is_sorted(_ForwardIter __first, _ForwardIter __last, - _StrictWeakOrdering __comp) { - _STLP_DEBUG_CHECK(__check_range(__first, __last)) - if (__first == __last) - return true; - - _ForwardIter __next = __first; - for (++__next; __next != __last; __first = __next, ++__next) { - if (__comp(*__next, *__first)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first, *__next), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return false; - } - } - - return true; -} - -_STLP_MOVE_TO_STD_NAMESPACE -#endif /* _STLP_NO_EXTENSIONS */ - -_STLP_END_NAMESPACE - -#undef __stl_threshold - -#endif /* _STLP_ALGO_C */ -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_algo.h b/WebKit/android/stlport/stl/_algo.h deleted file mode 100644 index d6513fc..0000000 --- a/WebKit/android/stlport/stl/_algo.h +++ /dev/null @@ -1,760 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ALGO_H -#define _STLP_INTERNAL_ALGO_H - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_HEAP_H -# include <stl/_heap.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#if defined (__SUNPRO_CC) && !defined (_STLP_INTERNAL_CSTDIO) -// remove() conflict -# include <stl/_cstdio.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// for_each. Apply a function to every element of a range. -template <class _InputIter, class _Function> -_STLP_INLINE_LOOP _Function -for_each(_InputIter __first, _InputIter __last, _Function __f) { - for ( ; __first != __last; ++__first) - __f(*__first); - return __f; -} - -// count_if -template <class _InputIter, class _Predicate> -_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_InputIter) -count_if(_InputIter __first, _InputIter __last, _Predicate __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DIFFERENCE_TYPE(_InputIter) __n = 0; - for ( ; __first != __last; ++__first) { - if (__pred(*__first)) - ++__n; - } - return __n; -} - -// adjacent_find. - -template <class _ForwardIter, class _BinaryPredicate> -_STLP_INLINE_LOOP _ForwardIter -adjacent_find(_ForwardIter __first, _ForwardIter __last, - _BinaryPredicate __binary_pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - if (__first == __last) - return __last; - _ForwardIter __next = __first; - while(++__next != __last) { - if (__binary_pred(*__first, *__next)) - return __first; - __first = __next; - } - return __last; -} - -template <class _ForwardIter> -_STLP_INLINE_LOOP _ForwardIter -adjacent_find(_ForwardIter __first, _ForwardIter __last) { - return adjacent_find(__first, __last, - _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first, _ForwardIter))); -} - -#if !defined (_STLP_NO_ANACHRONISMS) -template <class _InputIter, class _Tp, class _Size> -_STLP_INLINE_LOOP void -count(_InputIter __first, _InputIter __last, const _Tp& __val, _Size& __n) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - if (*__first == __val) - ++__n; -} - -template <class _InputIter, class _Predicate, class _Size> -_STLP_INLINE_LOOP void -count_if(_InputIter __first, _InputIter __last, _Predicate __pred, _Size& __n) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - if (__pred(*__first)) - ++__n; -} -#endif - -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2); - -// search_n. Search for __count consecutive copies of __val. -template <class _ForwardIter, class _Integer, class _Tp> -_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val); -template <class _ForwardIter, class _Integer, class _Tp, class _BinaryPred> -_ForwardIter search_n(_ForwardIter __first, _ForwardIter __last, - _Integer __count, const _Tp& __val, _BinaryPred __binary_pred); - -template <class _InputIter, class _ForwardIter> -inline _InputIter find_first_of(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2, - _STLP_PRIV __equal_to(_STLP_VALUE_TYPE(__first1, _InputIter))); -} - -template <class _InputIter, class _ForwardIter, class _BinaryPredicate> -inline _InputIter -find_first_of(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2, _BinaryPredicate __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - return _STLP_PRIV __find_first_of(__first1, __last1, __first2, __last2, __comp); -} - -template <class _ForwardIter1, class _ForwardIter2> -_ForwardIter1 -find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2); - -// swap_ranges -template <class _ForwardIter1, class _ForwardIter2> -_STLP_INLINE_LOOP _ForwardIter2 -swap_ranges(_ForwardIter1 __first1, _ForwardIter1 __last1, _ForwardIter2 __first2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - for ( ; __first1 != __last1; ++__first1, ++__first2) - iter_swap(__first1, __first2); - return __first2; -} - -// transform -template <class _InputIter, class _OutputIter, class _UnaryOperation> -_STLP_INLINE_LOOP _OutputIter -transform(_InputIter __first, _InputIter __last, _OutputIter __result, _UnaryOperation __opr) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first, ++__result) - *__result = __opr(*__first); - return __result; -} -template <class _InputIter1, class _InputIter2, class _OutputIter, class _BinaryOperation> -_STLP_INLINE_LOOP _OutputIter -transform(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _OutputIter __result,_BinaryOperation __binary_op) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result) - *__result = __binary_op(*__first1, *__first2); - return __result; -} - -// replace_if, replace_copy, replace_copy_if - -template <class _ForwardIter, class _Predicate, class _Tp> -_STLP_INLINE_LOOP void -replace_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred, const _Tp& __new_value) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - if (__pred(*__first)) - *__first = __new_value; -} - -template <class _InputIter, class _OutputIter, class _Tp> -_STLP_INLINE_LOOP _OutputIter -replace_copy(_InputIter __first, _InputIter __last,_OutputIter __result, - const _Tp& __old_value, const _Tp& __new_value) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first, ++__result) - *__result = *__first == __old_value ? __new_value : *__first; - return __result; -} - -template <class _Iterator, class _OutputIter, class _Predicate, class _Tp> -_STLP_INLINE_LOOP _OutputIter -replace_copy_if(_Iterator __first, _Iterator __last, - _OutputIter __result, - _Predicate __pred, const _Tp& __new_value) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first, ++__result) - *__result = __pred(*__first) ? __new_value : *__first; - return __result; -} - -// generate and generate_n - -template <class _ForwardIter, class _Generator> -_STLP_INLINE_LOOP void -generate(_ForwardIter __first, _ForwardIter __last, _Generator __gen) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - *__first = __gen(); -} - -template <class _OutputIter, class _Size, class _Generator> -_STLP_INLINE_LOOP void -generate_n(_OutputIter __first, _Size __n, _Generator __gen) { - for ( ; __n > 0; --__n, ++__first) - *__first = __gen(); -} - -// remove, remove_if, remove_copy, remove_copy_if - -template <class _InputIter, class _OutputIter, class _Tp> -_STLP_INLINE_LOOP _OutputIter -remove_copy(_InputIter __first, _InputIter __last,_OutputIter __result, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) { - if (!(*__first == __val)) { - *__result = *__first; - ++__result; - } - } - return __result; -} - -template <class _InputIter, class _OutputIter, class _Predicate> -_STLP_INLINE_LOOP _OutputIter -remove_copy_if(_InputIter __first, _InputIter __last, _OutputIter __result, _Predicate __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) { - if (!__pred(*__first)) { - *__result = *__first; - ++__result; - } - } - return __result; -} - -template <class _ForwardIter, class _Tp> -_STLP_INLINE_LOOP _ForwardIter -remove(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - __first = find(__first, __last, __val); - if (__first == __last) - return __first; - else { - _ForwardIter __next = __first; - return remove_copy(++__next, __last, __first, __val); - } -} - -template <class _ForwardIter, class _Predicate> -_STLP_INLINE_LOOP _ForwardIter -remove_if(_ForwardIter __first, _ForwardIter __last, _Predicate __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - __first = find_if(__first, __last, __pred); - if ( __first == __last ) - return __first; - else { - _ForwardIter __next = __first; - return remove_copy_if(++__next, __last, __first, __pred); - } -} - -// unique and unique_copy -template <class _InputIter, class _OutputIter> -_OutputIter unique_copy(_InputIter __first, _InputIter __last, _OutputIter __result); - -template <class _InputIter, class _OutputIter, class _BinaryPredicate> -_OutputIter unique_copy(_InputIter __first, _InputIter __last,_OutputIter __result, - _BinaryPredicate __binary_pred); - -template <class _ForwardIter> -inline _ForwardIter unique(_ForwardIter __first, _ForwardIter __last) { - __first = adjacent_find(__first, __last); - return unique_copy(__first, __last, __first); -} - -template <class _ForwardIter, class _BinaryPredicate> -inline _ForwardIter unique(_ForwardIter __first, _ForwardIter __last, - _BinaryPredicate __binary_pred) { - __first = adjacent_find(__first, __last, __binary_pred); - return unique_copy(__first, __last, __first, __binary_pred); -} - -// reverse and reverse_copy, and their auxiliary functions - -template <class _BidirectionalIter> -_STLP_INLINE_LOOP void -__reverse(_BidirectionalIter __first, _BidirectionalIter __last, const bidirectional_iterator_tag &) { - for (; __first != __last && __first != --__last; ++__first) - iter_swap(__first,__last); -} - - -template <class _RandomAccessIter> -_STLP_INLINE_LOOP void -__reverse(_RandomAccessIter __first, _RandomAccessIter __last, const random_access_iterator_tag &) { - for (; __first < __last; ++__first) - iter_swap(__first, --__last); -} - -template <class _BidirectionalIter> -inline void -reverse(_BidirectionalIter __first, _BidirectionalIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - __reverse(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _BidirectionalIter)); -} - -template <class _BidirectionalIter, class _OutputIter> -_STLP_INLINE_LOOP -_OutputIter reverse_copy(_BidirectionalIter __first, - _BidirectionalIter __last, - _OutputIter __result) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - while (__first != __last) { - --__last; - *__result = *__last; - ++__result; - } - return __result; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// rotate and rotate_copy, and their auxiliary functions -template <class _EuclideanRingElement> -_STLP_INLINE_LOOP -_EuclideanRingElement __gcd(_EuclideanRingElement __m, - _EuclideanRingElement __n) { - while (__n != 0) { - _EuclideanRingElement __t = __m % __n; - __m = __n; - __n = __t; - } - return __m; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter> -void rotate(_ForwardIter __first, _ForwardIter __middle, _ForwardIter __last); - -template <class _ForwardIter, class _OutputIter> -inline _OutputIter rotate_copy(_ForwardIter __first, _ForwardIter __middle, - _ForwardIter __last, _OutputIter __result) { - return copy(__first, __middle, copy(__middle, __last, __result)); -} - -// random_shuffle - -template <class _RandomAccessIter> -void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last); - -template <class _RandomAccessIter, class _RandomNumberGenerator> -void random_shuffle(_RandomAccessIter __first, _RandomAccessIter __last, - _RandomNumberGenerator& __rand); - -#if !defined (_STLP_NO_EXTENSIONS) -// random_sample and random_sample_n (extensions, not part of the standard). - -template <class _ForwardIter, class _OutputIter, class _Distance> -_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, - _OutputIter __out_ite, const _Distance __n); - -template <class _ForwardIter, class _OutputIter, class _Distance, - class _RandomNumberGenerator> -_OutputIter random_sample_n(_ForwardIter __first, _ForwardIter __last, - _OutputIter __out_ite, const _Distance __n, - _RandomNumberGenerator& __rand); - -template <class _InputIter, class _RandomAccessIter> -_RandomAccessIter -random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_first, _RandomAccessIter __out_last); - -template <class _InputIter, class _RandomAccessIter, - class _RandomNumberGenerator> -_RandomAccessIter -random_sample(_InputIter __first, _InputIter __last, - _RandomAccessIter __out_first, _RandomAccessIter __out_last, - _RandomNumberGenerator& __rand); - -#endif /* _STLP_NO_EXTENSIONS */ - -// partition, stable_partition, and their auxiliary functions - -template <class _ForwardIter, class _Predicate> -_ForwardIter partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred); - -template <class _ForwardIter, class _Predicate> -_ForwardIter -stable_partition(_ForwardIter __first, _ForwardIter __last, _Predicate __pred); - -// sort() and its auxiliary functions. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Size> -inline _Size __lg(_Size __n) { - _Size __k; - for (__k = 0; __n != 1; __n >>= 1) ++__k; - return __k; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _RandomAccessIter> -void sort(_RandomAccessIter __first, _RandomAccessIter __last); -template <class _RandomAccessIter, class _Compare> -void sort(_RandomAccessIter __first, _RandomAccessIter __last, _Compare __comp); - -// stable_sort() and its auxiliary functions. -template <class _RandomAccessIter> -void stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last); - -template <class _RandomAccessIter, class _Compare> -void stable_sort(_RandomAccessIter __first, - _RandomAccessIter __last, _Compare __comp); - -// partial_sort, partial_sort_copy, and auxiliary functions. - -template <class _RandomAccessIter> -void partial_sort(_RandomAccessIter __first, _RandomAccessIter __middle, - _RandomAccessIter __last); - -template <class _RandomAccessIter, class _Compare> -void partial_sort(_RandomAccessIter __first,_RandomAccessIter __middle, - _RandomAccessIter __last, _Compare __comp); - -template <class _InputIter, class _RandomAccessIter> -_RandomAccessIter -partial_sort_copy(_InputIter __first, _InputIter __last, - _RandomAccessIter __result_first, _RandomAccessIter __result_last); - -template <class _InputIter, class _RandomAccessIter, class _Compare> -_RandomAccessIter -partial_sort_copy(_InputIter __first, _InputIter __last, - _RandomAccessIter __result_first, - _RandomAccessIter __result_last, _Compare __comp); - -// nth_element() and its auxiliary functions. -template <class _RandomAccessIter> -void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last); - -template <class _RandomAccessIter, class _Compare> -void nth_element(_RandomAccessIter __first, _RandomAccessIter __nth, - _RandomAccessIter __last, _Compare __comp); - -// auxiliary class for lower_bound, etc. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _T1, class _T2> -struct __less_2 { - bool operator() (const _T1& __x, const _T2& __y) const { return __x < __y ; } -}; - -template <class _T1, class _T2> -__less_2<_T1,_T2> __less2(_T1*, _T2* ) { return __less_2<_T1, _T2>(); } - -#if defined (_STLP_FUNCTION_PARTIAL_ORDER) -template <class _Tp> -less<_Tp> __less2(_Tp*, _Tp* ) { return less<_Tp>(); } -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -// Binary search (lower_bound, upper_bound, equal_range, binary_search). -template <class _ForwardIter, class _Tp> -inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __lower_bound(__first, __last, __val, - _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0), - _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)), - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline _ForwardIter lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __lower_bound(__first, __last, __val, __comp, __comp, - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance> -_ForwardIter __upper_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare1 __comp1, _Compare2 __comp2, _Distance*); - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter, class _Tp> -inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __upper_bound(__first, __last, __val, - _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0), - _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)), - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline _ForwardIter upper_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __upper_bound(__first, __last, __val, __comp, __comp, - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance> -pair<_ForwardIter, _ForwardIter> -__equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare1 __comp1, _Compare2 __comp2, _Distance*); - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter, class _Tp> -inline pair<_ForwardIter, _ForwardIter> -equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __equal_range(__first, __last, __val, - _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0), - _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)), - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline pair<_ForwardIter, _ForwardIter> -equal_range(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __equal_range(__first, __last, __val, __comp, __comp, - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -template <class _ForwardIter, class _Tp> -inline bool binary_search(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _ForwardIter __i = _STLP_PRIV __lower_bound(__first, __last, __val, - _STLP_PRIV __less2(_STLP_VALUE_TYPE(__first, _ForwardIter), (_Tp*)0), - _STLP_PRIV __less2((_Tp*)0, _STLP_VALUE_TYPE(__first, _ForwardIter)), - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); - return __i != __last && !(__val < *__i); -} - -template <class _ForwardIter, class _Tp, class _Compare> -inline bool binary_search(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _ForwardIter __i = _STLP_PRIV __lower_bound(__first, __last, __val, __comp, __comp, - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); - return __i != __last && !__comp(__val, *__i); -} - -// merge, with and without an explicitly supplied comparison function. - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result); - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter merge(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp); - - -// inplace_merge and its auxiliary functions. - - -template <class _BidirectionalIter> -void inplace_merge(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last) ; - -template <class _BidirectionalIter, class _Compare> -void inplace_merge(_BidirectionalIter __first, - _BidirectionalIter __middle, - _BidirectionalIter __last, _Compare __comp); - -// Set algorithms: includes, set_union, set_intersection, set_difference, -// set_symmetric_difference. All of these algorithms have the precondition -// that their input ranges are sorted and the postcondition that their output -// ranges are sorted. - -template <class _InputIter1, class _InputIter2> -bool includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2); - -template <class _InputIter1, class _InputIter2, class _Compare> -bool includes(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, _Compare __comp); - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result); - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_union(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp); - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result); - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_intersection(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp); - - - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result); - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter set_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, _Compare __comp); - -template <class _InputIter1, class _InputIter2, class _OutputIter> -_OutputIter -set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result); - - -template <class _InputIter1, class _InputIter2, class _OutputIter, - class _Compare> -_OutputIter -set_symmetric_difference(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _OutputIter __result, - _Compare __comp); - - -// min_element and max_element, with and without an explicitly supplied -// comparison function. - -template <class _ForwardIter> -_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last); -template <class _ForwardIter, class _Compare> -_ForwardIter max_element(_ForwardIter __first, _ForwardIter __last, - _Compare __comp); - -template <class _ForwardIter> -_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last); - -template <class _ForwardIter, class _Compare> -_ForwardIter min_element(_ForwardIter __first, _ForwardIter __last, - _Compare __comp); - -// next_permutation and prev_permutation, with and without an explicitly -// supplied comparison function. - -template <class _BidirectionalIter> -bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last); - -template <class _BidirectionalIter, class _Compare> -bool next_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp); - - -template <class _BidirectionalIter> -bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last); - - -template <class _BidirectionalIter, class _Compare> -bool prev_permutation(_BidirectionalIter __first, _BidirectionalIter __last, - _Compare __comp); - -#if !defined (_STLP_NO_EXTENSIONS) -// is_heap, a predicate testing whether or not a range is -// a heap. This function is an extension, not part of the C++ -// standard. - -template <class _RandomAccessIter> -bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last); - -template <class _RandomAccessIter, class _StrictWeakOrdering> -bool is_heap(_RandomAccessIter __first, _RandomAccessIter __last, - _StrictWeakOrdering __comp); - -// is_sorted, a predicated testing whether a range is sorted in -// nondescending order. This is an extension, not part of the C++ -// standard. -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _StrictWeakOrdering> -bool __is_sorted(_ForwardIter __first, _ForwardIter __last, - _StrictWeakOrdering __comp); - -_STLP_MOVE_TO_STD_NAMESPACE -template <class _ForwardIter> -inline bool is_sorted(_ForwardIter __first, _ForwardIter __last) { - return _STLP_PRIV __is_sorted(__first, __last, - _STLP_PRIV __less(_STLP_VALUE_TYPE(__first, _ForwardIter))); -} - -template <class _ForwardIter, class _StrictWeakOrdering> -inline bool is_sorted(_ForwardIter __first, _ForwardIter __last, - _StrictWeakOrdering __comp) { - return _STLP_PRIV __is_sorted(__first, __last, __comp); -} -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_algo.c> -#endif - -#endif /* _STLP_INTERNAL_ALGO_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_algobase.c b/WebKit/android/stlport/stl/_algobase.c deleted file mode 100644 index 8a1f657..0000000 --- a/WebKit/android/stlport/stl/_algobase.c +++ /dev/null @@ -1,403 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_ALGOBASE_C -#define _STLP_ALGOBASE_C - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _InputIter1, class _InputIter2> -bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - for ( ; __first1 != __last1 && __first2 != __last2 - ; ++__first1, ++__first2) { - if (*__first1 < *__first2) { - return true; - } - if (*__first2 < *__first1) - return false; - } - return __first1 == __last1 && __first2 != __last2; -} - -template <class _InputIter1, class _InputIter2, class _Compare> -bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _Compare __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - for ( ; __first1 != __last1 && __first2 != __last2 - ; ++__first1, ++__first2) { - if (__comp(*__first1, *__first2)) { - return true; - } - if (__comp(*__first2, *__first1)) - return false; - } - return __first1 == __last1 && __first2 != __last2; -} - -#if !defined (_STLP_NO_EXTENSIONS) -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2> -int __lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) { - while (__first1 != __last1 && __first2 != __last2) { - if (*__first1 < *__first2) { - _STLP_VERBOSE_ASSERT(!(*__first2 < *__first1), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return -1; - } - if (*__first2 < *__first1) - return 1; - ++__first1; - ++__first2; - } - if (__first2 == __last2) { - return !(__first1 == __last1); - } - else { - return -1; - } -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter1, class _InputIter2> -int lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - return _STLP_PRIV __lexicographical_compare_3way(__first1, __last1, __first2, __last2); -} -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _RandomAccessIter, class _Tp> -_STLP_INLINE_LOOP _RandomAccessIter __find(_RandomAccessIter __first, _RandomAccessIter __last, - const _Tp& __val, - const random_access_iterator_tag &) { - _STLP_DIFFERENCE_TYPE(_RandomAccessIter) __trip_count = (__last - __first) >> 2; - - for ( ; __trip_count > 0 ; --__trip_count) { - if (*__first == __val) return __first; - ++__first; - - if (*__first == __val) return __first; - ++__first; - - if (*__first == __val) return __first; - ++__first; - - if (*__first == __val) return __first; - ++__first; - } - - switch (__last - __first) { - case 3: - if (*__first == __val) return __first; - ++__first; - case 2: - if (*__first == __val) return __first; - ++__first; - case 1: - if (*__first == __val) return __first; - //++__first; - case 0: - default: - return __last; - } -} - -inline char* -__find(char* __first, char* __last, char __val, const random_access_iterator_tag &) { - void *res = memchr(__first, __val, __last - __first); - return res != 0 ? __STATIC_CAST(char*, res) : __last; -} -inline const char* -__find(const char* __first, const char* __last, char __val, const random_access_iterator_tag &) { - const void *res = memchr(__first, __val, __last - __first); - return res != 0 ? __STATIC_CAST(const char*, res) : __last; -} - -template <class _RandomAccessIter, class _Predicate> -_STLP_INLINE_LOOP _RandomAccessIter __find_if(_RandomAccessIter __first, _RandomAccessIter __last, - _Predicate __pred, - const random_access_iterator_tag &) { - _STLP_DIFFERENCE_TYPE(_RandomAccessIter) __trip_count = (__last - __first) >> 2; - - for ( ; __trip_count > 0 ; --__trip_count) { - if (__pred(*__first)) return __first; - ++__first; - - if (__pred(*__first)) return __first; - ++__first; - - if (__pred(*__first)) return __first; - ++__first; - - if (__pred(*__first)) return __first; - ++__first; - } - - switch(__last - __first) { - case 3: - if (__pred(*__first)) return __first; - ++__first; - case 2: - if (__pred(*__first)) return __first; - ++__first; - case 1: - if (__pred(*__first)) return __first; - //++__first; - case 0: - default: - return __last; - } -} - -template <class _InputIter, class _Tp> -_STLP_INLINE_LOOP _InputIter __find(_InputIter __first, _InputIter __last, - const _Tp& __val, - const input_iterator_tag &) { - while (__first != __last && !(*__first == __val)) ++__first; - return __first; -} - -template <class _InputIter, class _Predicate> -_STLP_INLINE_LOOP _InputIter __find_if(_InputIter __first, _STLP_MPW_EXTRA_CONST _InputIter __last, - _Predicate __pred, - const input_iterator_tag &) { - while (__first != __last && !__pred(*__first)) - ++__first; - return __first; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _Predicate> -_InputIter find_if(_InputIter __first, _InputIter __last, - _Predicate __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __find_if(__first, __last, __pred, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); -} - -template <class _InputIter, class _Tp> -_InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __find(__first, __last, __val, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); -} - -template <class _ForwardIter1, class _ForwardIter2, class _BinaryPred> -_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - _BinaryPred __pred) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - // Test for empty ranges - if (__first1 == __last1 || __first2 == __last2) - return __first1; - - // Test for a pattern of length 1. - _ForwardIter2 __p1(__first2); - - if ( ++__p1 == __last2 ) { - while (__first1 != __last1 && !__pred(*__first1, *__first2)) { - ++__first1; - } - return __first1; - } - - // General case. - - for ( ; ; ) { // __first1 != __last1 will be checked below - while (__first1 != __last1 && !__pred(*__first1, *__first2)) { - ++__first1; - } - if (__first1 == __last1) { - return __last1; - } - _ForwardIter2 __p = __p1; - _ForwardIter1 __current = __first1; - if (++__current == __last1) return __last1; - - while (__pred(*__current, *__p)) { - if (++__p == __last2) - return __first1; - if (++__current == __last1) - return __last1; - } - - ++__first1; - } - return __first1; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// find_first_of, with and without an explicitly supplied comparison function. -template <class _InputIter, class _ForwardIter, class _BinaryPredicate> -_InputIter __find_first_of(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2, - _BinaryPredicate __comp) { - for ( ; __first1 != __last1; ++__first1) { - for (_ForwardIter __iter = __first2; __iter != __last2; ++__iter) { - if (__comp(*__first1, *__iter)) { - return __first1; - } - } - } - return __last1; -} - -// find_end, with and without an explicitly supplied comparison function. -// Search [first2, last2) as a subsequence in [first1, last1), and return -// the *last* possible match. Note that find_end for bidirectional iterators -// is much faster than for forward iterators. - -// find_end for forward iterators. -template <class _ForwardIter1, class _ForwardIter2, - class _BinaryPredicate> -_ForwardIter1 __find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - const forward_iterator_tag &, const forward_iterator_tag &, - _BinaryPredicate __comp) { - if (__first2 == __last2) - return __last1; - else { - _ForwardIter1 __result = __last1; - for (;;) { - _ForwardIter1 __new_result = search(__first1, __last1, __first2, __last2, __comp); - if (__new_result == __last1) - return __result; - else { - __result = __new_result; - __first1 = __new_result; - ++__first1; - } - } - } -} - -_STLP_MOVE_TO_STD_NAMESPACE - -// find_end for bidirectional iterators. Requires partial specialization. -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - -# ifndef _STLP_INTERNAL_ITERATOR_H -_STLP_END_NAMESPACE -# include <stl/_iterator.h> -_STLP_BEGIN_NAMESPACE -# endif /*_STLP_INTERNAL_ITERATOR_H*/ - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _BinaryPredicate> -_BidirectionalIter1 -__find_end(_BidirectionalIter1 __first1, _BidirectionalIter1 __last1, - _BidirectionalIter2 __first2, _BidirectionalIter2 __last2, - const bidirectional_iterator_tag &, const bidirectional_iterator_tag &, - _BinaryPredicate __comp) { - typedef reverse_iterator<_BidirectionalIter1> _RevIter1; - typedef reverse_iterator<_BidirectionalIter2> _RevIter2; - - _RevIter1 __rlast1(__first1); - _RevIter2 __rlast2(__first2); - _RevIter1 __rresult = search(_RevIter1(__last1), __rlast1, - _RevIter2(__last2), __rlast2, - __comp); - - if (__rresult == __rlast1) - return __last1; - else { - _BidirectionalIter1 __result = __rresult.base(); - advance(__result, -distance(__first2, __last2)); - return __result; - } -} - -_STLP_MOVE_TO_STD_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -template <class _ForwardIter1, class _ForwardIter2, - class _BinaryPredicate> -_ForwardIter1 -find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - _BinaryPredicate __comp) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - return _STLP_PRIV __find_end(__first1, __last1, __first2, __last2, -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - _STLP_ITERATOR_CATEGORY(__first1, _ForwardIter1), - _STLP_ITERATOR_CATEGORY(__first2, _ForwardIter2), -#else - forward_iterator_tag(), - forward_iterator_tag(), -#endif - __comp); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance> -_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, const _Tp& __val, - _Compare1 __comp1, _Compare2 __comp2, _Distance*) { - _Distance __len = distance(__first, __last); - _Distance __half; - _ForwardIter __middle; - - while (__len > 0) { - __half = __len >> 1; - __middle = __first; - advance(__middle, __half); - if (__comp1(*__middle, __val)) { - _STLP_VERBOSE_ASSERT(!__comp2(__val, *__middle), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __first = __middle; - ++__first; - __len = __len - __half - 1; - } - else - __len = __half; - } - return __first; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_ALGOBASE_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_algobase.h b/WebKit/android/stlport/stl/_algobase.h deleted file mode 100644 index 6864223..0000000 --- a/WebKit/android/stlport/stl/_algobase.h +++ /dev/null @@ -1,670 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ALGOBASE_H -#define _STLP_INTERNAL_ALGOBASE_H - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -#ifndef _STLP_INTERNAL_CSTRING -# include <stl/_cstring.h> -#endif - -#ifndef _STLP_CLIMITS -# include <climits> -#endif - -#ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -#endif - -#ifndef _STLP_INTERNAL_PAIR_H -# include <stl/_pair.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -#ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined(_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined(_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -_STLP_MOVE_TO_PRIV_NAMESPACE -template <class _Tp> -inline void __swap_aux(_Tp& __a, _Tp& __b, const __true_type& /*SwapImplemented*/) { - __a.swap(__b); -} - -template <class _Tp> -inline void __swap_aux(_Tp& __a, _Tp& __b, const __false_type& /*SwapImplemented*/) { - _Tp __tmp = __a; - __a = __b; - __b = __tmp; -} -_STLP_MOVE_TO_STD_NAMESPACE -#endif /* _STLP_USE_PARTIAL_SPEC_WORKAROUND */ - -// swap and iter_swap -template <class _Tp> -inline void swap(_Tp& __a, _Tp& __b) { -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -# if !defined(__BORLANDC__) - typedef typename _SwapImplemented<_Tp>::_Ret _Implemented; -# else - enum { _Is = _SwapImplemented<_Tp>::_Is }; - typedef typename __bool2type<_Is>::_Ret _Implemented; -# endif - _STLP_PRIV __swap_aux(__a, __b, _Implemented()); -#else - _Tp __tmp = __a; - __a = __b; - __b = __tmp; -#endif /* _STLP_USE_PARTIAL_SPEC_WORKAROUND */ -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter1, class _ForwardIter2, class _Value> -inline void __iter_swap_aux_aux(_ForwardIter1& __i1, _ForwardIter2& __i2, _Value *) { - _Value tmp = *__i1; - *__i1 = *__i2; - *__i2 = tmp; -} - -template <class _ForwardIter1, class _ForwardIter2> -inline void __iter_swap_aux(_ForwardIter1& __i1, _ForwardIter2& __i2, const __true_type& /*OKToSwap*/) { - swap(*__i1, *__i2); -} - -template <class _ForwardIter1, class _ForwardIter2> -inline void __iter_swap_aux(_ForwardIter1& __i1, _ForwardIter2& __i2, const __false_type& /*OKToSwap*/) { - __iter_swap_aux_aux( __i1, __i2, _STLP_VALUE_TYPE(__i1,_ForwardIter1) ); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter1, class _ForwardIter2> -inline void iter_swap(_ForwardIter1 __i1, _ForwardIter2 __i2) { - // swap(*__i1, *__i2); - _STLP_PRIV __iter_swap_aux( __i1, __i2, _IsOKToSwap(_STLP_VALUE_TYPE(__i1, _ForwardIter1), _STLP_VALUE_TYPE(__i2, _ForwardIter2), - _STLP_IS_REF_TYPE_REAL_REF(__i1, _ForwardIter1), - _STLP_IS_REF_TYPE_REAL_REF(__i2, _ForwardIter2))._Answer()); -} - -//-------------------------------------------------- -// min and max - -#if !defined (__BORLANDC__) || defined (_STLP_USE_OWN_NAMESPACE) -# if (defined (__BORLANDC__) && (__BORLANDC__ < 0x580)) && !defined (__STDC__) -//In not ANSI mode Borland import min/max in global namespace which conflict -//with STLport min/max when user does a 'using namespace std' in its code -//(see test/unit/alg_test.cpp). To avoid this clash we simply import Borland min/max -//in STLport namespace. -using _STLP_VENDOR_STD::min; -using _STLP_VENDOR_STD::max; -# else -template <class _Tp> -inline const _Tp& (min)(const _Tp& __a, const _Tp& __b) { return __b < __a ? __b : __a; } -template <class _Tp> -inline const _Tp& (max)(const _Tp& __a, const _Tp& __b) { return __a < __b ? __b : __a; } -# endif -#endif - -# if defined (__BORLANDC__) && defined (_STLP_USE_OWN_NAMESPACE) -inline unsigned long (min) (unsigned long __a, unsigned long __b) { return __b < __a ? __b : __a; } -inline unsigned long (max) (unsigned long __a, unsigned long __b) { return __a < __b ? __b : __a; } -# endif - -template <class _Tp, class _Compare> -inline const _Tp& (min)(const _Tp& __a, const _Tp& __b, _Compare __comp) { - return __comp(__b, __a) ? __b : __a; -} - -template <class _Tp, class _Compare> -inline const _Tp& (max)(const _Tp& __a, const _Tp& __b, _Compare __comp) { - return __comp(__a, __b) ? __b : __a; -} - -//-------------------------------------------------- -// copy - -// All of these auxiliary functions serve two purposes. (1) Replace -// calls to copy with memmove whenever possible. (Memmove, not memcpy, -// because the input and output ranges are permitted to overlap.) -// (2) If we're using random access iterators, then write the loop as -// a for loop with an explicit count. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __copy(_InputIter __first, _InputIter __last, - _OutputIter __result, const input_iterator_tag &, _Distance*) { - for ( ; __first != __last; ++__result, ++__first) - *__result = *__first; - return __result; -} - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __copy(_InputIter __first, _InputIter __last, - _OutputIter __result, const forward_iterator_tag &, _Distance* ) { - for ( ; __first != __last; ++__result, ++__first) - *__result = *__first; - return __result; -} - -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __copy(_InputIter __first, _InputIter __last, - _OutputIter __result, const bidirectional_iterator_tag &, _Distance* ) { - for ( ; __first != __last; ++__result, ++__first) - *__result = *__first; - return __result; -} -#endif - -template <class _RandomAccessIter, class _OutputIter, class _Distance> -inline _OutputIter -__copy(_RandomAccessIter __first, _RandomAccessIter __last, - _OutputIter __result, const random_access_iterator_tag &, _Distance*) { - for (_Distance __n = __last - __first; __n > 0; --__n) { - *__result = *__first; - ++__first; - ++__result; - } - return __result; -} - -inline void* -__copy_trivial(const void* __first, const void* __last, void* __result) { - size_t __n = (const char*)__last - (const char*)__first; - return __n ? (void *)((char*)memmove(__result, __first, __n) + __n) : __result; -} - -//-------------------------------------------------- -// copy_backward auxiliary functions - -template <class _BidirectionalIter1, class _BidirectionalIter2, - class _Distance> -inline _BidirectionalIter2 __copy_backward(_BidirectionalIter1 __first, - _BidirectionalIter1 __last, - _BidirectionalIter2 __result, - const bidirectional_iterator_tag &, - _Distance*) { - while (__first != __last) - *--__result = *--__last; - return __result; -} - -template <class _RandomAccessIter, class _BidirectionalIter, class _Distance> -inline _BidirectionalIter __copy_backward(_RandomAccessIter __first, - _RandomAccessIter __last, - _BidirectionalIter __result, - const random_access_iterator_tag &, - _Distance*) { - for (_Distance __n = __last - __first; __n > 0; --__n) - *--__result = *--__last; - return __result; -} - -inline void* -__copy_trivial_backward(const void* __first, const void* __last, void* __result) { - const ptrdiff_t _Num = (const char*)__last - (const char*)__first; - return (_Num > 0) ? memmove((char*)__result - _Num, __first, _Num) : __result ; -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result, - const __false_type& /*IsOKToMemCpy*/) { - return __copy(__first, __last, __result, random_access_iterator_tag(), (ptrdiff_t*)0); -} -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result, - const __true_type& /*IsOKToMemCpy*/) { - // we know they all pointers, so this cast is OK - // return (_OutputIter)__copy_trivial(&(*__first), &(*__last), &(*__result)); - return (_OutputIter)__copy_trivial(__first, __last, __result); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_aux(_InputIter __first, _InputIter __last, _OutputIter __result, - const __true_type& /*BothPtrType*/) { - return __copy_ptrs(__first, __last, __result, - _UseTrivialCopy(_STLP_VALUE_TYPE(__first, _InputIter), - _STLP_VALUE_TYPE(__result, _OutputIter))._Answer()); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_aux(_InputIter __first, _InputIter __last, _OutputIter __result, - const __false_type& /*BothPtrType*/) { - return __copy(__first, __last, __result, - _STLP_ITERATOR_CATEGORY(__first, _InputIter), - _STLP_DISTANCE_TYPE(__first, _InputIter)); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _OutputIter> -inline _OutputIter copy(_InputIter __first, _InputIter __last, _OutputIter __result) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __copy_aux(__first, __last, __result, _BothPtrType< _InputIter, _OutputIter>::_Answer()); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_backward_ptrs(_InputIter __first, _InputIter __last, - _OutputIter __result, const __false_type& /*TrivialAssignment*/) { - return __copy_backward(__first, __last, __result, _STLP_ITERATOR_CATEGORY(__first, _InputIter), _STLP_DISTANCE_TYPE(__first, _InputIter)); -} -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_backward_ptrs(_InputIter __first, _InputIter __last, - _OutputIter __result, const __true_type& /*TrivialAssignment*/) { - return (_OutputIter)__copy_trivial_backward(__first, __last, __result); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_backward_aux(_InputIter __first, _InputIter __last, _OutputIter __result, const __false_type&) { - return __copy_backward(__first, __last, __result, _STLP_ITERATOR_CATEGORY(__first,_InputIter), _STLP_DISTANCE_TYPE(__first, _InputIter)); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __copy_backward_aux(_InputIter __first, _InputIter __last, _OutputIter __result, const __true_type&) { - return __copy_backward_ptrs(__first, __last, __result, - _UseTrivialCopy(_STLP_VALUE_TYPE(__first, _InputIter), - _STLP_VALUE_TYPE(__result, _OutputIter))._Answer()); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _OutputIter> -inline _OutputIter copy_backward(_InputIter __first, _InputIter __last, _OutputIter __result) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - return _STLP_PRIV __copy_backward_aux(__first, __last, __result, _BothPtrType< _InputIter, _OutputIter>::_Answer() ); -} - -#if !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) -# define _STLP_DECLARE_COPY_TRIVIAL(_Tp) \ -inline _Tp* copy(const _Tp* __first, const _Tp* __last, _Tp* __result) \ -{ return (_Tp*)__copy_trivial(__first, __last, __result); } \ -inline _Tp* copy_backward(const _Tp* __first, const _Tp* __last, _Tp* __result) \ -{ return (_Tp*)__copy_trivial_backward(__first, __last, __result); } - -_STLP_DECLARE_COPY_TRIVIAL(char) -# if !defined (_STLP_NO_SIGNED_BUILTINS) -_STLP_DECLARE_COPY_TRIVIAL(signed char) -# endif -_STLP_DECLARE_COPY_TRIVIAL(unsigned char) -_STLP_DECLARE_COPY_TRIVIAL(short) -_STLP_DECLARE_COPY_TRIVIAL(unsigned short) -_STLP_DECLARE_COPY_TRIVIAL(int) -_STLP_DECLARE_COPY_TRIVIAL(unsigned int) -_STLP_DECLARE_COPY_TRIVIAL(long) -_STLP_DECLARE_COPY_TRIVIAL(unsigned long) -# if !defined(_STLP_NO_WCHAR_T) && !defined (_STLP_WCHAR_T_IS_USHORT) -_STLP_DECLARE_COPY_TRIVIAL(wchar_t) -# endif -# if defined (_STLP_LONG_LONG) -_STLP_DECLARE_COPY_TRIVIAL(_STLP_LONG_LONG) -_STLP_DECLARE_COPY_TRIVIAL(unsigned _STLP_LONG_LONG) -# endif -_STLP_DECLARE_COPY_TRIVIAL(float) -_STLP_DECLARE_COPY_TRIVIAL(double) -# if !defined (_STLP_NO_LONG_DOUBLE) -_STLP_DECLARE_COPY_TRIVIAL(long double) -# endif -# undef _STLP_DECLARE_COPY_TRIVIAL -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -//-------------------------------------------------- -// copy_n (not part of the C++ standard) - -#if !defined (_STLP_NO_EXTENSIONS) -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter, class _Size, class _OutputIter> -_STLP_INLINE_LOOP pair<_InputIter, _OutputIter> -__copy_n(_InputIter __first, _Size __count, - _OutputIter __result, - const input_iterator_tag &) { - for ( ; __count > 0; --__count) { - *__result = *__first; - ++__first; - ++__result; - } - return pair<_InputIter, _OutputIter>(__first, __result); -} - -template <class _RAIter, class _Size, class _OutputIter> -inline pair<_RAIter, _OutputIter> -__copy_n(_RAIter __first, _Size __count, - _OutputIter __result, - const random_access_iterator_tag &) { - _RAIter __last = __first + __count; - return pair<_RAIter, _OutputIter>(__last, copy(__first, __last, __result)); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _Size, class _OutputIter> -inline pair<_InputIter, _OutputIter> -copy_n(_InputIter __first, _Size __count, _OutputIter __result) { - _STLP_FIX_LITERAL_BUG(__first) - return _STLP_PRIV __copy_n(__first, __count, __result, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); -} -#endif - -//-------------------------------------------------- -// fill and fill_n -template <class _ForwardIter, class _Tp> -_STLP_INLINE_LOOP -void fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - *__first = __val; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _OutputIter, class _Size, class _Tp> -_STLP_INLINE_LOOP -_OutputIter __fill_n(_OutputIter __first, _Size __n, const _Tp& __val) { - _STLP_FIX_LITERAL_BUG(__first) - for ( ; __n > 0; --__n, ++__first) - *__first = __val; - return __first; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _OutputIter, class _Size, class _Tp> -_STLP_INLINE_LOOP -void fill_n(_OutputIter __first, _Size __n, const _Tp& __val) { - _STLP_FIX_LITERAL_BUG(__first) - _STLP_PRIV __fill_n(__first, __n, __val); -} - -// Specialization: for one-byte types we can use memset. -inline void fill(unsigned char* __first, unsigned char* __last, - const unsigned char& __val) { - unsigned char __tmp = __val; - memset(__first, __tmp, __last - __first); -} -#if !defined (_STLP_NO_SIGNED_BUILTINS) -inline void fill(signed char* __first, signed char* __last, - const signed char& __val) { - signed char __tmp = __val; - memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first); -} -#endif -inline void fill(char* __first, char* __last, const char& __val) { - char __tmp = __val; - memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first); -} - -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Size> -inline unsigned char* __fill_n(unsigned char* __first, _Size __n, - const unsigned char& __val) { - fill(__first, __first + __n, __val); - return __first + __n; -} - -template <class _Size> -inline signed char* __fill_n(char* __first, _Size __n, - const signed char& __val) { - fill(__first, __first + __n, __val); - return __first + __n; -} - -template <class _Size> -inline char* __fill_n(char* __first, _Size __n, const char& __val) { - fill(__first, __first + __n, __val); - return __first + __n; -} - -_STLP_MOVE_TO_STD_NAMESPACE -#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ - - -//-------------------------------------------------- -// equal and mismatch - -template <class _InputIter1, class _InputIter2> -_STLP_INLINE_LOOP -pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, - _InputIter1 __last1, - _InputIter2 __first2) { - _STLP_FIX_LITERAL_BUG(__first2) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - while (__first1 != __last1 && *__first1 == *__first2) { - ++__first1; - ++__first2; - } - return pair<_InputIter1, _InputIter2>(__first1, __first2); -} - -template <class _InputIter1, class _InputIter2, class _BinaryPredicate> -_STLP_INLINE_LOOP -pair<_InputIter1, _InputIter2> mismatch(_InputIter1 __first1, - _InputIter1 __last1, - _InputIter2 __first2, - _BinaryPredicate __binary_pred) { - _STLP_FIX_LITERAL_BUG(__first2) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - while (__first1 != __last1 && __binary_pred(*__first1, *__first2)) { - ++__first1; - ++__first2; - } - return pair<_InputIter1, _InputIter2>(__first1, __first2); -} - -template <class _InputIter1, class _InputIter2> -_STLP_INLINE_LOOP -bool equal(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2) { - _STLP_FIX_LITERAL_BUG(__first1) _STLP_FIX_LITERAL_BUG(__last1) _STLP_FIX_LITERAL_BUG(__first2) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - for ( ; __first1 != __last1; ++__first1, ++__first2) - if (!(*__first1 == *__first2)) - return false; - return true; -} - -template <class _InputIter1, class _InputIter2, class _BinaryPredicate> -_STLP_INLINE_LOOP -bool equal(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _BinaryPredicate __binary_pred) { - _STLP_FIX_LITERAL_BUG(__first2) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - for ( ; __first1 != __last1; ++__first1, ++__first2) - if (!__binary_pred(*__first1, *__first2)) - return false; - return true; -} - -//-------------------------------------------------- -// lexicographical_compare and lexicographical_compare_3way. -// (the latter is not part of the C++ standard.) - -template <class _InputIter1, class _InputIter2> -bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2); - -template <class _InputIter1, class _InputIter2, class _Compare> -bool lexicographical_compare(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _Compare __comp); - -inline bool -lexicographical_compare(const unsigned char* __first1, - const unsigned char* __last1, - const unsigned char* __first2, - const unsigned char* __last2) { - const size_t __len1 = __last1 - __first1; - const size_t __len2 = __last2 - __first2; - _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)); - return __result != 0 ? (__result < 0) : (__len1 < __len2); -} - - -#if !(CHAR_MAX == SCHAR_MAX) -inline bool lexicographical_compare(const char* __first1, const char* __last1, - const char* __first2, const char* __last2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first2, __last2)) - - return lexicographical_compare((const unsigned char*) __first1, - (const unsigned char*) __last1, - (const unsigned char*) __first2, - (const unsigned char*) __last2); -} -#endif /* CHAR_MAX == SCHAR_MAX */ - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2> -int __lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2); - -inline int -__lexicographical_compare_3way(const unsigned char* __first1, - const unsigned char* __last1, - const unsigned char* __first2, - 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)); - return __result != 0 ? __result - : (__len1 == __len2 ? 0 : (__len1 < __len2 ? -1 : 1)); -} - - -#if !(CHAR_MAX == SCHAR_MAX) -inline int -__lexicographical_compare_3way(const char* __first1, const char* __last1, - const char* __first2, const char* __last2) { - return __lexicographical_compare_3way((const unsigned char*) __first1, - (const unsigned char*) __last1, - (const unsigned char*) __first2, - (const unsigned char*) __last2); -} -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -#if !defined (_STLP_NO_EXTENSIONS) -template <class _InputIter1, class _InputIter2> -int lexicographical_compare_3way(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2); - -#endif /* EXTENSIONS */ - -// count -template <class _InputIter, class _Tp> -_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_InputIter) -count(_InputIter __first, _InputIter __last, const _Tp& __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DIFFERENCE_TYPE(_InputIter) __n = 0; - for ( ; __first != __last; ++__first) - if (*__first == __val) - ++__n; - return __n; -} - -// find and find_if. Note find may be expressed in terms of find_if if appropriate binder was available. -template <class _InputIter, class _Tp> -_InputIter find(_InputIter __first, _InputIter __last, const _Tp& __val); - -template <class _InputIter, class _Predicate> -_InputIter find_if(_InputIter __first, _InputIter __last, _Predicate __pred); - -// search. -template <class _ForwardIter1, class _ForwardIter2, class _BinaryPred> -_ForwardIter1 search(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, _BinaryPred __predicate); - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// find_first_of -template <class _InputIter, class _ForwardIter, class _BinaryPredicate> -_InputIter __find_first_of(_InputIter __first1, _InputIter __last1, - _ForwardIter __first2, _ForwardIter __last2, - _BinaryPredicate __comp); - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter1, class _ForwardIter2, - class _BinaryPredicate> -_ForwardIter1 -find_end(_ForwardIter1 __first1, _ForwardIter1 __last1, - _ForwardIter2 __first2, _ForwardIter2 __last2, - _BinaryPredicate __comp); - -// replace -template <class _ForwardIter, class _Tp> -_STLP_INLINE_LOOP void -replace(_ForwardIter __first, _ForwardIter __last, - const _Tp& __old_value, const _Tp& __new_value) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - if (*__first == __old_value) - *__first = __new_value; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Tp, class _Compare1, class _Compare2, class _Distance> -_ForwardIter __lower_bound(_ForwardIter __first, _ForwardIter __last, - const _Tp& __val, _Compare1 __comp1, _Compare2 __comp2, _Distance*); - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_algobase.c> -#endif - -#endif /* _STLP_INTERNAL_ALGOBASE_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_alloc.c b/WebKit/android/stlport/stl/_alloc.c deleted file mode 100644 index ad6656c..0000000 --- a/WebKit/android/stlport/stl/_alloc.c +++ /dev/null @@ -1,88 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_ALLOC_C -#define _STLP_ALLOC_C - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#if defined (__WATCOMC__) -# pragma warning 13 9 -# pragma warning 367 9 -# pragma warning 368 9 -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Alloc> -void * _STLP_CALL __debug_alloc<_Alloc>::allocate(size_t __n) { - size_t __total_extra = __extra_before_chunk() + __extra_after_chunk(); - size_t __real_n = __n + __total_extra; - if (__real_n < __n) { - //It means that we rolled on size_t, __n must be very large, lets hope - //that allocating it will raised a bad_alloc exception: - __real_n = __n + (__total_extra - __real_n - 1); - } - __alloc_header *__result = (__alloc_header *)__allocator_type::allocate(__real_n); - memset((char*)__result, __shred_byte, __real_n * sizeof(value_type)); - __result->__magic = __magic; - __result->__type_size = sizeof(value_type); - __result->_M_size = (_STLP_UINT32_T)__n; - return ((char*)__result) + (long)__extra_before; -} - -template <class _Alloc> -void _STLP_CALL -__debug_alloc<_Alloc>::deallocate(void *__p, size_t __n) { - __alloc_header * __real_p = (__alloc_header*)((char *)__p -(long)__extra_before); - // check integrity - _STLP_VERBOSE_ASSERT(__real_p->__magic != __deleted_magic, _StlMsg_DBA_DELETED_TWICE) - _STLP_VERBOSE_ASSERT(__real_p->__magic == __magic, _StlMsg_DBA_NEVER_ALLOCATED) - _STLP_VERBOSE_ASSERT(__real_p->__type_size == 1,_StlMsg_DBA_TYPE_MISMATCH) - _STLP_VERBOSE_ASSERT(__real_p->_M_size == __n, _StlMsg_DBA_SIZE_MISMATCH) - // check pads on both sides - unsigned char* __tmp; - for (__tmp = (unsigned char*)(__real_p + 1); __tmp < (unsigned char*)__p; ++__tmp) { - _STLP_VERBOSE_ASSERT(*__tmp == __shred_byte, _StlMsg_DBA_UNDERRUN) - } - - size_t __real_n = __n + __extra_before_chunk() + __extra_after_chunk(); - - for (__tmp= ((unsigned char*)__p) + __n * sizeof(value_type); - __tmp < ((unsigned char*)__real_p) + __real_n ; ++__tmp) { - _STLP_VERBOSE_ASSERT(*__tmp == __shred_byte, _StlMsg_DBA_OVERRUN) - } - - // that may be unfortunate, just in case - __real_p->__magic = __deleted_magic; - memset((char*)__p, __shred_byte, __n * sizeof(value_type)); - __allocator_type::deallocate(__real_p, __real_n); -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_ALLOC_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_alloc.h b/WebKit/android/stlport/stl/_alloc.h deleted file mode 100644 index 48a875d..0000000 --- a/WebKit/android/stlport/stl/_alloc.h +++ /dev/null @@ -1,675 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ALLOC_H -#define _STLP_INTERNAL_ALLOC_H - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -#if !defined (_STLP_DEBUG_H) && (defined(_STLP_DEBUG) || defined(_STLP_ASSERTIONS) || defined(_STLP_DEBUG_ALLOC)) -# include <stl/debug/_debug.h> -#endif - -#ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -#endif - -#ifndef _STLP_INTERNAL_CSTRING -# include <stl/_cstring.h> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef __THROW_BAD_ALLOC -# if !defined(_STLP_USE_EXCEPTIONS) -# ifndef _STLP_INTERNAL_CSTDIO -# include <stl/_cstdio.h> -# endif -# define __THROW_BAD_ALLOC puts("out of memory\n"); exit(1) -# else -# define __THROW_BAD_ALLOC throw _STLP_STD::bad_alloc() -# endif -#endif - -#ifndef _STLP_INTERNAL_NEW_HEADER -# include <stl/_new.h> -#endif - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -#if !defined (__ALLOC) -# define __ALLOC __sgi_alloc -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_USE_RAW_SGI_ALLOCATORS) -template <class _Tp, class _Alloc> struct __allocator; -#endif - -// Malloc-based allocator. Typically slower than default alloc below. -// Typically thread-safe and more storage efficient. - -#if !defined (_STLP_USE_NO_IOSTREAMS) -typedef void (* __oom_handler_type)(); -#endif - -class _STLP_CLASS_DECLSPEC __malloc_alloc { -public: - // this one is needed for proper simple_alloc wrapping - typedef char value_type; -#if defined (_STLP_MEMBER_TEMPLATE_CLASSES) && defined (_STLP_USE_RAW_SGI_ALLOCATORS) - template <class _Tp1> struct rebind { - typedef __allocator<_Tp1, __malloc_alloc> other; - }; -#endif - static void* _STLP_CALL allocate(size_t& __n) -#if !defined (_STLP_USE_NO_IOSTREAMS) - ; -#else - { - void *__result = malloc(__n); -# if defined (_STLP_MALLOC_USABLE_SIZE) - if (__result != 0) { - __n = _STLP_MALLOC_USABLE_SIZE(__result); - } -# endif - if (__result == 0) { - __THROW_BAD_ALLOC; - } - return __result; - } -#endif - - static void _STLP_CALL deallocate(void* __p, size_t /* __n */) { free((char*)__p); } -#if !defined (_STLP_USE_NO_IOSTREAMS) - static __oom_handler_type _STLP_CALL set_malloc_handler(__oom_handler_type __f); -#endif -}; - -// New-based allocator. Typically slower than default alloc below. -// Typically thread-safe and more storage efficient. -class _STLP_CLASS_DECLSPEC __new_alloc { -public: - // this one is needed for proper simple_alloc wrapping - typedef char value_type; -#if defined (_STLP_MEMBER_TEMPLATE_CLASSES) && defined (_STLP_USE_RAW_SGI_ALLOCATORS) - template <class _Tp1> struct rebind { - typedef __allocator<_Tp1, __new_alloc > other; - }; -#endif - static void* _STLP_CALL allocate(size_t __n) { return __stl_new(__n); } - static void _STLP_CALL deallocate(void* __p, size_t) { __stl_delete(__p); } -}; - - -// Allocator adaptor to check size arguments for debugging. -// Reports errors using assert. Checking can be disabled with -// NDEBUG, but it's far better to just use the underlying allocator -// instead when no checking is desired. -// There is some evidence that this can confuse Purify. -// This adaptor can only be applied to raw allocators - -template <class _Alloc> -class __debug_alloc : public _Alloc { -public: - typedef _Alloc __allocator_type; - typedef typename _Alloc::value_type value_type; -private: - struct __alloc_header { - size_t __magic: 16; - size_t __type_size:16; - _STLP_UINT32_T _M_size; - }; // that is 8 bytes for sure - // Sunpro CC has bug on enums, so extra_before/after set explicitly - enum { __pad = 8, __magic = 0xdeba, __deleted_magic = 0xdebd, - __shred_byte = _STLP_SHRED_BYTE }; - - enum { __extra_before = 16, __extra_after = 8 }; - // Size of space used to store size. Note - // that this must be large enough to preserve - // alignment. - static size_t _STLP_CALL __extra_before_chunk() { - return (long)__extra_before / sizeof(value_type) + - (size_t)((long)__extra_before % sizeof(value_type) > 0); - } - static size_t _STLP_CALL __extra_after_chunk() { - return (long)__extra_after / sizeof(value_type) + - (size_t)((long)__extra_after % sizeof(value_type) > 0); - } -public: -#if defined (_STLP_MEMBER_TEMPLATE_CLASSES) && defined (_STLP_USE_RAW_SGI_ALLOCATORS) - template <class _Tp1> struct rebind { - typedef __allocator< _Tp1, __debug_alloc<_Alloc> > other; - }; -#endif - __debug_alloc() {} - ~__debug_alloc() {} - static void* _STLP_CALL allocate(size_t); - static void _STLP_CALL deallocate(void *, size_t); -}; - -# if defined (__OS400__) || defined (_WIN64) -enum {_ALIGN = 16, _ALIGN_SHIFT = 4, _MAX_BYTES = 256}; -# else -enum {_ALIGN = 8, _ALIGN_SHIFT = 3, _MAX_BYTES = 128}; -# endif /* __OS400__ */ - -#if !defined (_STLP_USE_NO_IOSTREAMS) - -# if !defined (_STLP_USE_SIMPLE_NODE_ALLOC) -// Default node allocator. -// With a reasonable compiler, this should be roughly as fast as the -// original STL class-specific allocators, but with less fragmentation. -// Define _STLP_USE_SIMPLE_NODE_ALLOC to use __new_alloc instead, which -// can be implemented without out-of-line functions. -class _STLP_CLASS_DECLSPEC __node_alloc { - static void * _STLP_CALL _M_allocate(size_t& __n); - /* __p may not be 0 */ - static void _STLP_CALL _M_deallocate(void *__p, size_t __n); - -public: - // this one is needed for proper simple_alloc wrapping - typedef char value_type; -# if defined (_STLP_MEMBER_TEMPLATE_CLASSES) && defined (_STLP_USE_RAW_SGI_ALLOCATORS) - template <class _Tp1> struct rebind { - typedef __allocator<_Tp1, __node_alloc> other; - }; -# endif - /* __n must be > 0 */ - static void* _STLP_CALL allocate(size_t& __n) - { return (__n > (size_t)_MAX_BYTES) ? __stl_new(__n) : _M_allocate(__n); } - /* __p may not be 0 */ - static void _STLP_CALL deallocate(void *__p, size_t __n) - { if (__n > (size_t)_MAX_BYTES) __stl_delete(__p); else _M_deallocate(__p, __n); } -}; - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS __debug_alloc<__node_alloc>; -# endif - -# else /* _STLP_USE_SIMPLE_NODE_ALLOC */ -// Use __new_alloc instead of __node_alloc. This prevents the need for -// out-of-line _M_allocate and _M_dealloacte functions. -typedef __new_alloc __node_alloc; - -# endif /* _STLP_USE_SIMPLE_NODE_ALLOC */ - -#endif /* _STLP_USE_NO_IOSTREAMS */ - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS __debug_alloc<__new_alloc>; -_STLP_EXPORT_TEMPLATE_CLASS __debug_alloc<__malloc_alloc>; -#endif - -/* macro to convert the allocator for initialization - * not using MEMBER_TEMPLATE_CLASSES as it should work given template constructor */ -#if defined (_STLP_MEMBER_TEMPLATES) || ! defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -/* if _STLP_NO_TEMPLATE_CONVERSIONS is set, the member template constructor is - * not used implicitly to convert allocator parameter, so let us do it explicitly */ -# if defined (_STLP_MEMBER_TEMPLATE_CLASSES) && defined (_STLP_NO_TEMPLATE_CONVERSIONS) -# define _STLP_CONVERT_ALLOCATOR(__a, _Tp) __stl_alloc_create(__a,(_Tp*)0) -# else -# define _STLP_CONVERT_ALLOCATOR(__a, _Tp) __a -# endif -/* else convert, but only if partial specialization works, since else - * Container::allocator_type won't be different */ -#else -# define _STLP_CONVERT_ALLOCATOR(__a, _Tp) __stl_alloc_create(__a,(_Tp*)0) -#endif /* _STLP_MEMBER_TEMPLATES || !_STLP_CLASS_PARTIAL_SPECIALIZATION */ - -// Another allocator adaptor: _Alloc_traits. This serves two -// purposes. First, make it possible to write containers that can use -// either SGI-style allocators or standard-conforming allocator. - -// The fully general version. -template <class _Tp, class _Allocator> -struct _Alloc_traits { - typedef _Allocator _Orig; -#if !defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) - typedef typename _Allocator::_STLP_TEMPLATE rebind<_Tp> _Rebind_type; - typedef typename _Rebind_type::other allocator_type; - static allocator_type create_allocator(const _Orig& __a) - { return allocator_type(_STLP_CONVERT_ALLOCATOR(__a, _Tp)); } -#else - // this is not actually true, used only to pass this type through - // to dynamic overload selection in _STLP_alloc_proxy methods - typedef _Allocator allocator_type; -#endif /* !_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE */ -}; - -#if defined (_STLP_USE_PERTHREAD_ALLOC) - -_STLP_END_NAMESPACE - -// include additional header here -# include <stl/_pthread_alloc.h> - -_STLP_BEGIN_NAMESPACE - -# if defined (_STLP_DEBUG_ALLOC) -typedef __debug_alloc<__pthread_alloc> __sgi_alloc; -# else -typedef __pthread_alloc __sgi_alloc; -# endif /* _STLP_DEBUG_ALLOC */ - -typedef __pthread_alloc __single_client_alloc; -typedef __pthread_alloc __multithreaded_alloc; - -#else /* _STLP_USE_PERTHREAD_ALLOC */ - -# if defined (_STLP_USE_NEWALLOC) - -# if defined (_STLP_DEBUG_ALLOC) -typedef __debug_alloc<__new_alloc> __sgi_alloc; -# else -typedef __new_alloc __sgi_alloc; -# endif /* _STLP_DEBUG_ALLOC */ - -typedef __new_alloc __single_client_alloc; -typedef __new_alloc __multithreaded_alloc; - -# elif defined (_STLP_USE_MALLOC) - -# if defined (_STLP_DEBUG_ALLOC) -typedef __debug_alloc<__malloc_alloc> __sgi_alloc; -# else -typedef __malloc_alloc __sgi_alloc; -# endif /* _STLP_DEBUG_ALLOC */ - -typedef __malloc_alloc __single_client_alloc; -typedef __malloc_alloc __multithreaded_alloc; - -# else - -# if defined (_STLP_DEBUG_ALLOC) -typedef __debug_alloc<__node_alloc> __sgi_alloc; -# else -typedef __node_alloc __sgi_alloc; -# endif - -typedef __node_alloc __single_client_alloc; -typedef __node_alloc __multithreaded_alloc; - -# endif /* _STLP_USE_NEWALLOC */ -#endif /* _STLP_USE_PERTHREAD_ALLOC */ - -// This implements allocators as specified in the C++ standard. -// -// Note that standard-conforming allocators use many language features -// that are not yet widely implemented. In particular, they rely on -// member templates, partial specialization, partial ordering of function -// templates, the typename keyword, and the use of the template keyword -// to refer to a template member of a dependent type. - -/* -template <class _Tp> -struct _AllocatorAux { - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - - pointer address(reference __x) const {return &__x;} - const_pointer address(const_reference __x) const { return &__x; } -}; - -template <class _Tp> -struct _AllocatorAux<const _Tp> { - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - - const_pointer address(const_reference __x) const { return &__x; } -}; -*/ - -template <class _Tp> -class allocator //: public _AllocatorAux<_Tp> -/* A small helper struct to recognize STLport allocator implementation - * from any user specialization one. - */ - : public __stlport_class<allocator<_Tp> > { -public: - typedef _Tp value_type; - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; -#if defined (_STLP_MEMBER_TEMPLATE_CLASSES) - template <class _Tp1> struct rebind { - typedef allocator<_Tp1> other; - }; -#endif - allocator() _STLP_NOTHROW {} -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Tp1> allocator(const allocator<_Tp1>&) _STLP_NOTHROW {} -#endif - allocator(const allocator<_Tp>&) _STLP_NOTHROW {} - allocator(__move_source<allocator<_Tp> > src) _STLP_NOTHROW {} - ~allocator() _STLP_NOTHROW {} - pointer address(reference __x) const {return &__x;} - const_pointer address(const_reference __x) const { return &__x; } - // __n is permitted to be 0. The C++ standard says nothing about what the return value is when __n == 0. - _Tp* allocate(size_type __n, const void* = 0) { - if (__n > max_size()) { - __THROW_BAD_ALLOC; - } - if (__n != 0) { - size_type __buf_size = __n * sizeof(value_type); - _Tp* __ret = __REINTERPRET_CAST(_Tp*, __sgi_alloc::allocate(__buf_size)); -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - if (__ret != 0) { - memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size); - } -#endif - return __ret; - } - else - return 0; - } - // __p is permitted to be a null pointer, only if n==0. - void deallocate(pointer __p, size_type __n) { - _STLP_ASSERT( (__p == 0) == (__n == 0) ) - if (__p != 0) { -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - memset((char*)__p, _STLP_SHRED_BYTE, __n * sizeof(value_type)); -#endif - __sgi_alloc::deallocate((void*)__p, __n * sizeof(value_type)); - } - } - // backwards compatibility - void deallocate(pointer __p) const { if (__p != 0) __sgi_alloc::deallocate((void*)__p, sizeof(value_type)); } - size_type max_size() const _STLP_NOTHROW { return size_t(-1) / sizeof(value_type); } - void construct(pointer __p, const_reference __val) { _STLP_STD::_Copy_Construct(__p, __val); } - void destroy(pointer __p) { _STLP_STD::_Destroy(__p); } -#if defined(__MRC__)||(defined(__SC__) && !defined(__DMC__)) - template <class _T2> bool operator==(const allocator<_T2>&) const _STLP_NOTHROW { return true; } - template <class _T2> bool operator!=(const allocator<_T2>&) const _STLP_NOTHROW { return false; } -#endif - -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) - //This is just to make swap workaround for compiler without template function partial - //happy. - void swap(allocator<_Tp>&) {} -#endif - -#if defined (_STLP_NO_EXTENSIONS) - /* STLport extension giving rounded size of an allocated memory buffer - * This method do not have to be part of a user defined allocator implementation - * and won't even be called if such a function was granted. - */ -protected: -#endif - _Tp* allocate(size_type __n, size_type& __allocated_n) { - if (__n > max_size()) { - __THROW_BAD_ALLOC; - } - - if (__n != 0) { - size_type __buf_size = __n * sizeof(value_type); - _Tp* __ret = __REINTERPRET_CAST(_Tp*, __sgi_alloc::allocate(__buf_size)); -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - if (__ret != 0) { - memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size); - } -#endif - __allocated_n = __buf_size / sizeof(value_type); - return __ret; - } - else - return 0; - } -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC allocator<void> { -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef void* pointer; - typedef const void* const_pointer; -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - typedef void value_type; -#endif -#if defined (_STLP_MEMBER_TEMPLATE_CLASSES) - template <class _Tp1> struct rebind { - typedef allocator<_Tp1> other; - }; -#endif -#if defined(__MRC__)||(defined(__SC__)&&!defined(__DMC__)) //*ty 03/24/2001 - MPW compilers get confused on these operator definitions - template <class _T2> bool operator==(const allocator<_T2>&) const _STLP_NOTHROW { return true; } - template <class _T2> bool operator!=(const allocator<_T2>&) const _STLP_NOTHROW { return false; } -#endif -}; - -#if !(defined(__MRC__)||(defined(__SC__)&&!defined(__DMC__))) //*ty 03/24/2001 - MPW compilers get confused on these operator definitions -template <class _T1, class _T2> inline bool _STLP_CALL operator==(const allocator<_T1>&, const allocator<_T2>&) _STLP_NOTHROW { return true; } -template <class _T1, class _T2> inline bool _STLP_CALL operator!=(const allocator<_T1>&, const allocator<_T2>&) _STLP_NOTHROW { return false; } -#endif - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS allocator<char>; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS allocator<wchar_t>; -# endif -# if defined (_STLP_USE_PTR_SPECIALIZATIONS) -_STLP_EXPORT_TEMPLATE_CLASS allocator<void*>; -# endif -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -struct __alloc_type_traits { -#if !defined (__BORLANDC__) - typedef typename _IsSTLportClass<allocator<_Tp> >::_Ret _STLportAlloc; -#else - enum { _Is = _IsSTLportClass<allocator<_Tp> >::_Is }; - typedef typename __bool2type<_Is>::_Ret _STLportAlloc; -#endif - //The default allocator implementation which is recognize thanks to the - //__stlport_class inheritance is a stateless object so: - typedef _STLportAlloc has_trivial_default_constructor; - typedef _STLportAlloc has_trivial_copy_constructor; - typedef _STLportAlloc has_trivial_assignment_operator; - typedef _STLportAlloc has_trivial_destructor; - typedef _STLportAlloc is_POD_type; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> -struct __type_traits<allocator<_Tp> > : _STLP_PRIV __alloc_type_traits<_Tp> {}; -#else -_STLP_TEMPLATE_NULL -struct __type_traits<allocator<char> > : _STLP_PRIV __alloc_type_traits<char> {}; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_TEMPLATE_NULL -struct __type_traits<allocator<wchar_t> > : _STLP_PRIV __alloc_type_traits<wchar_t> {}; -# endif -# if defined (_STLP_USE_PTR_SPECIALIZATIONS) -_STLP_TEMPLATE_NULL -struct __type_traits<allocator<void*> > : _STLP_PRIV __alloc_type_traits<void*> {}; -# endif -#endif - - -#if !defined (_STLP_FORCE_ALLOCATORS) -# define _STLP_FORCE_ALLOCATORS(a,y) -#endif - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_MEMBER_TEMPLATE_CLASSES) -// The version for the default allocator, for rare occasion when we have partial spec w/o member template classes -template <class _Tp, class _Tp1> -struct _Alloc_traits<_Tp, allocator<_Tp1> > { - typedef allocator<_Tp1> _Orig; - typedef allocator<_Tp> allocator_type; - static allocator_type create_allocator(const allocator<_Tp1 >& __a) - { return allocator_type(_STLP_CONVERT_ALLOCATOR(__a, _Tp)); } -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if !defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) && defined (_STLP_MEMBER_TEMPLATES) -template <class _Tp, class _Alloc> -inline _STLP_TYPENAME_ON_RETURN_TYPE _Alloc_traits<_Tp, _Alloc>::allocator_type _STLP_CALL -__stl_alloc_create(const _Alloc& __a, const _Tp*) { - typedef typename _Alloc::_STLP_TEMPLATE rebind<_Tp>::other _Rebound_type; - return _Rebound_type(__a); -} -#else -// If custom allocators are being used without member template classes support : -// user (on purpose) is forced to define rebind/get operations !!! -template <class _Tp1, class _Tp2> -inline allocator<_Tp2>& _STLP_CALL -__stl_alloc_rebind(allocator<_Tp1>& __a, const _Tp2*) { return (allocator<_Tp2>&)(__a); } -template <class _Tp1, class _Tp2> -inline allocator<_Tp2> _STLP_CALL -__stl_alloc_create(const allocator<_Tp1>&, const _Tp2*) { return allocator<_Tp2>(); } -#endif /* _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE */ - -#if defined (_STLP_USE_RAW_SGI_ALLOCATORS) -// move obsolete stuff out of the way -# include <stl/_alloc_old.h> -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// inheritance is being used for EBO optimization -template <class _Value, class _Tp, class _MaybeReboundAlloc> -class _STLP_alloc_proxy : public _MaybeReboundAlloc { -private: - typedef _MaybeReboundAlloc _Base; - typedef typename _Base::size_type size_type; - typedef _STLP_alloc_proxy<_Value, _Tp, _MaybeReboundAlloc> _Self; -public: - _Value _M_data; - - _STLP_alloc_proxy (const _MaybeReboundAlloc& __a, _Value __p) : - _MaybeReboundAlloc(__a), _M_data(__p) {} - - _STLP_alloc_proxy (__move_source<_Self> src) : - _MaybeReboundAlloc(_STLP_PRIV _AsMoveSource<_Base>(src.get())), - _M_data(_STLP_PRIV _AsMoveSource<_Value>(src.get()._M_data)) {} - -private: - /* Following are helper methods to detect stateless allocators and avoid - * swap in this case. For some compilers (VC6) it is a workaround for a - * compiler bug in the Empty Base class Optimization feature, for others - * it is a small optimization or nothing if no EBO. */ - void _M_swap_alloc(_Self&, const __true_type& /*_IsStateless*/) - {} - - void _M_swap_alloc(_Self& __x, const __false_type& /*_IsStateless*/) { - _MaybeReboundAlloc &__base_this = *this; - _MaybeReboundAlloc &__base_x = __x; - _STLP_STD::swap(__base_this, __base_x); - } - -public: - void _M_swap_alloc(_Self& __x) { -#if !defined (__BORLANDC__) - typedef typename _IsStateless<_MaybeReboundAlloc>::_Ret _StatelessAlloc; -#else - typedef typename __bool2type<_IsStateless<_MaybeReboundAlloc>::_Is>::_Ret _StatelessAlloc; -#endif - _M_swap_alloc(__x, _StatelessAlloc()); - } - - /* We need to define the following swap implementation for allocator with state - * as those allocators might have implement a special swap function to correctly - * move datas from an instance to the oher, _STLP_alloc_proxy should not break - * this mecanism. */ - void swap(_Self& __x) { - _M_swap_alloc(__x); - _STLP_STD::swap(_M_data, __x._M_data); - } - - _Tp* allocate(size_type __n, size_type& __allocated_n) { -#if !defined (__BORLANDC__) - typedef typename _IsSTLportClass<_MaybeReboundAlloc>::_Ret _STLportAlloc; -#else - typedef typename __bool2type<_IsSTLportClass<_MaybeReboundAlloc>::_Is>::_Ret _STLportAlloc; -#endif - return allocate(__n, __allocated_n, _STLportAlloc()); - } - - // Unified interface to perform allocate()/deallocate() with limited - // language support -#if defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) - // else it is rebound already, and allocate() member is accessible - _Tp* allocate(size_type __n) - { return __stl_alloc_rebind(__STATIC_CAST(_Base&, *this), __STATIC_CAST(_Tp*, 0)).allocate(__n, 0); } - void deallocate(_Tp* __p, size_type __n) - { __stl_alloc_rebind(__STATIC_CAST(_Base&, *this), __STATIC_CAST(_Tp*, 0)).deallocate(__p, __n); } -private: - _Tp* allocate(size_type __n, size_type& __allocated_n, const __true_type& /*STLport allocator*/) - { return __stl_alloc_rebind(__STATIC_CAST(_Base&, *this), __STATIC_CAST(_Tp*, 0)).allocate(__n, __allocated_n); } -#else - //Expose Standard allocate overload (using expression do not work for some compilers (Borland)) - _Tp* allocate(size_type __n) - { return _Base::allocate(__n); } -private: - _Tp* allocate(size_type __n, size_type& __allocated_n, const __true_type& /*STLport allocator*/) - { return _Base::allocate(__n, __allocated_n); } -#endif - - _Tp* allocate(size_type __n, size_type& __allocated_n, const __false_type& /*STLport allocator*/) - { __allocated_n = __n; return allocate(__n); } -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<char*, char, allocator<char> >; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<wchar_t*, wchar_t, allocator<wchar_t> >; -# endif -# if defined (_STLP_USE_PTR_SPECIALIZATIONS) -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<void**, void*, allocator<void*> >; -# endif -#endif - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_alloc.c> -#endif - -#endif /* _STLP_INTERNAL_ALLOC_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_alloc_old.h b/WebKit/android/stlport/stl/_alloc_old.h deleted file mode 100644 index 4627243..0000000 --- a/WebKit/android/stlport/stl/_alloc_old.h +++ /dev/null @@ -1,287 +0,0 @@ -template<class _Tp, class _Alloc> -class __simple_alloc { - typedef _Alloc __alloc_type; -public: - typedef typename _Alloc::value_type __alloc_value_type; - typedef _Tp value_type; - static size_t _STLP_CALL __chunk(size_t __n) { - return (sizeof(__alloc_value_type)==sizeof(value_type)) ? __n : - ((__n*sizeof(value_type)+sizeof(__alloc_value_type)-1)/sizeof(__alloc_value_type)); - } - static _Tp* _STLP_CALL allocate(size_t __n) { return 0 == __n ? 0 : (_Tp*) __alloc_type::allocate(__chunk(__n)); } - static void _STLP_CALL deallocate(_Tp * __p, size_t __n) { - __alloc_type::deallocate((__alloc_value_type*)__p, __chunk(__n)); } -}; - -// Allocator adaptor to turn an SGI-style allocator (e.g. alloc, malloc_alloc) -// into a standard-conforming allocator. Note that this adaptor does -// *not* assume that all objects of the underlying alloc class are -// identical, nor does it assume that all of the underlying alloc's -// member functions are static member functions. Note, also, that -// __allocator<_Tp, alloc> is essentially the same thing as allocator<_Tp>. - -template <class _Tp, class _Alloc> -struct __allocator : public _Alloc { - typedef _Alloc __underlying_alloc; - - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - typedef _Tp value_type; - -# if defined (_STLP_MEMBER_TEMPLATE_CLASSES) - template <class _Tp1> struct rebind { - typedef __allocator<_Tp1, _Alloc> other; - }; -# endif - __allocator() _STLP_NOTHROW {} - __allocator(const _Alloc& ) _STLP_NOTHROW {} - __allocator(const __allocator<_Tp, _Alloc>& __a) _STLP_NOTHROW - : _Alloc(__a) {} -# if defined (_STLP_MEMBER_TEMPLATES) && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) - template <class _Tp1> - __allocator(const __allocator<_Tp1, _Alloc>& __a) _STLP_NOTHROW - : _Alloc(__a) {} -# endif -# ifdef _STLP_TRIVIAL_DESTRUCTOR_BUG - ~__allocator() _STLP_NOTHROW {} -# endif - pointer address(reference __x) const { return &__x; } - -# if !defined (__WATCOM_CPLUSPLUS__) - const_pointer address(const_reference __x) const { return &__x; } -# endif - - // __n is permitted to be 0. - _Tp* allocate(size_type __n, const void* = 0) { - if (__n > max_size()) - __THROW_BAD_ALLOC; - return __n != 0 - ? __STATIC_CAST(_Tp*,__underlying_alloc::allocate(__n * sizeof(_Tp))) - : 0; - } - - // __p is not permitted to be a null pointer. - void deallocate(pointer __p, size_type __n) - { if (__p) __underlying_alloc::deallocate(__p, __n * sizeof(_Tp)); } - - size_type max_size() const _STLP_NOTHROW - { return size_t(-1) / sizeof(_Tp); } - - void construct(pointer __p, const_reference __val) { _STLP_STD::_Copy_Construct(__p, __val); } - void destroy(pointer __p) { _STLP_STD::_Destroy(__p); } - - const __underlying_alloc& __get_underlying_alloc() const { return *this; } -}; - -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION -template <class _Alloc> -class __allocator<void, _Alloc> { - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; -#ifdef _STLP_MEMBER_TEMPLATE_CLASSES - template <class _Tp1> struct rebind { - typedef __allocator<_Tp1, _Alloc> other; - }; -#endif -}; -#endif - -template <class _Tp, class _Alloc> -inline bool _STLP_CALL operator==(const __allocator<_Tp, _Alloc>& __a1, - const __allocator<_Tp, _Alloc>& __a2) -{ - return __a1.__get_underlying_alloc() == __a2.__get_underlying_alloc(); -} - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE -template <class _Tp, class _Alloc> -inline bool _STLP_CALL operator!=(const __allocator<_Tp, _Alloc>& __a1, - const __allocator<_Tp, _Alloc>& __a2) -{ - return __a1.__get_underlying_alloc() != __a2.__get_underlying_alloc(); -} -#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ - - -// Comparison operators for all of the predifined SGI-style allocators. -// This ensures that __allocator<malloc_alloc> (for example) will -// work correctly. - -#ifndef _STLP_NON_TYPE_TMPL_PARAM_BUG -inline bool _STLP_CALL operator==(const __malloc_alloc&, const __malloc_alloc&) -{ return true; } - -# ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER -inline bool _STLP_CALL operator!=(const __malloc_alloc&, const __malloc_alloc&) -{ return false; } -# endif - -inline bool _STLP_CALL operator==(const __new_alloc&, const __new_alloc&) { return true; } - -# ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE -inline bool _STLP_CALL operator!=(const __new_alloc&, const __new_alloc&) { return false; } -# endif - -# if !defined (_STLP_USE_NO_IOSTREAMS) -inline bool _STLP_CALL operator==(const __node_alloc&, - const __node_alloc&) -{ return true; } - -# if defined( _STLP_FUNCTION_TMPL_PARTIAL_ORDER ) - -inline bool _STLP_CALL operator!=(const __node_alloc&, - const __node_alloc&) -{ return false; } -# endif -# endif - -#endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */ - -template <class _Alloc> -inline bool _STLP_CALL operator==(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return true; } -# ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE -template <class _Alloc> -inline bool _STLP_CALL operator!=(const __debug_alloc<_Alloc>&, const __debug_alloc<_Alloc>&) { return false; } -# endif - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - -// Versions for the predefined SGI-style allocators. -template <class _Tp> -struct _Alloc_traits<_Tp, __malloc_alloc> { - typedef __allocator<_Tp, __malloc_alloc> allocator_type; -}; - -# if !defined (_STLP_USE_NO_IOSTREAMS) -template <class _Tp> -struct _Alloc_traits<_Tp, __node_alloc> { - typedef __allocator<_Tp, __node_alloc> allocator_type; -}; -# endif - -template <class _Tp, class _Alloc> -struct _Alloc_traits<_Tp, __debug_alloc<_Alloc> > { - typedef __allocator<_Tp, __debug_alloc<_Alloc> > allocator_type; -}; - -// Versions for the __allocator adaptor used with the predefined -// SGI-style allocators. - -template <class _Tp, class _Tp1, class _Alloc> -struct _Alloc_traits<_Tp, __allocator<_Tp1, _Alloc > > { - typedef __allocator<_Tp, _Alloc > allocator_type; -}; - -#endif - -#if defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) - -// Versions for the predefined SGI-style allocators. - - -# if defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) - -typedef __malloc_alloc __malloc_alloc_dfl; - -template <class _Tp> -inline __allocator<_Tp, __malloc_alloc_dfl >& _STLP_CALL -__stl_alloc_rebind(__malloc_alloc_dfl& __a, const _Tp*) { - return (__allocator<_Tp, __malloc_alloc_dfl >&)__a; -} - -# if !defined (_STLP_USE_NO_IOSTREAMS) -template <class _Tp> -inline __allocator<_Tp, __node_alloc>& _STLP_CALL -__stl_alloc_rebind(__node_alloc& __a, const _Tp*) { - return (__allocator<_Tp, __node_alloc>&)__a; -} -# endif - -template <class _Tp> -inline __allocator<_Tp, __malloc_alloc_dfl > _STLP_CALL -__stl_alloc_create(const __malloc_alloc_dfl&, const _Tp*) { - return __allocator<_Tp, __malloc_alloc_dfl > (); -} - -# if !defined (_STLP_USE_NO_IOSTREAMS) -template <class _Tp> -inline __allocator<_Tp, __node_alloc> _STLP_CALL -__stl_alloc_create(const __node_alloc&, const _Tp*) { - return __allocator<_Tp, __node_alloc>(); -} - -# endif - -# else - -template <class _Tp> -inline __allocator<_Tp, __malloc_alloc>& _STLP_CALL -__stl_alloc_rebind(__malloc_alloc& __a, const _Tp*) { - return (__allocator<_Tp, __malloc_alloc>&)__a; -} - -# if !defined (_STLP_USE_NO_IOSTREAMS) -template <class _Tp> -inline __allocator<_Tp, __node_alloc>& _STLP_CALL -__stl_alloc_rebind(__node_alloc& __a, const _Tp*) { - return (__allocator<_Tp, __node_alloc>&)__a; -} -# endif - -template <class _Tp> -inline __allocator<_Tp, __malloc_alloc> _STLP_CALL -__stl_alloc_create(const __malloc_alloc&, const _Tp*) { - return __allocator<_Tp, __malloc_alloc>(); -} - -# if !defined (_STLP_USE_NO_IOSTREAMS) -template <class _Tp> -inline __allocator<_Tp, __node_alloc> _STLP_CALL -__stl_alloc_create(const __node_alloc&, const _Tp*) { - return __allocator<_Tp, __node_alloc>(); -} -# endif - -# endif - -template <class _Tp, class _Alloc> -inline __allocator<_Tp, __debug_alloc<_Alloc> > _STLP_CALL -__stl_alloc_create(const __debug_alloc<_Alloc>&, const _Tp*) { - return __allocator<_Tp, __debug_alloc<_Alloc> >(); -} -template <class _Tp, class _Alloc> -inline __allocator<_Tp, __debug_alloc<_Alloc> >& _STLP_CALL -__stl_alloc_rebind(__debug_alloc<_Alloc>& __a, const _Tp*) { - return (__allocator<_Tp, __debug_alloc<_Alloc> >&)__a; -} - -template <class _Tp> -inline __allocator<_Tp, __new_alloc > _STLP_CALL -__stl_alloc_create(const __new_alloc&, const _Tp*) { - return __allocator<_Tp, __new_alloc >(); -} -template <class _Tp> -inline __allocator<_Tp, __new_alloc >& _STLP_CALL -__stl_alloc_rebind(__new_alloc& __a, const _Tp*) { - return (__allocator<_Tp, __new_alloc >&)__a; -} - -template <class _Tp1, class _Alloc, class _Tp2> -inline __allocator<_Tp2, _Alloc>& _STLP_CALL -__stl_alloc_rebind(__allocator<_Tp1, _Alloc>& __a, const _Tp2*) { - return (__allocator<_Tp2, _Alloc>&)__a; -} - -template <class _Tp1, class _Alloc, class _Tp2> -inline __allocator<_Tp2, _Alloc> _STLP_CALL -__stl_alloc_create(const __allocator<_Tp1, _Alloc>&, const _Tp2*) { - return __allocator<_Tp2, _Alloc>(); -} -#endif diff --git a/WebKit/android/stlport/stl/_auto_ptr.h b/WebKit/android/stlport/stl/_auto_ptr.h deleted file mode 100644 index 715130a..0000000 --- a/WebKit/android/stlport/stl/_auto_ptr.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_AUTO_PTR_H -# define _STLP_AUTO_PTR_H - -_STLP_BEGIN_NAMESPACE -// implementation primitive -class __ptr_base { -public: - void* _M_p; - void __set(const void* p) { _M_p = __CONST_CAST(void*,p); } - void __set(void* p) { _M_p = p; } -}; - -template <class _Tp> -class auto_ptr_ref { -public: - __ptr_base& _M_r; - _Tp* const _M_p; - - auto_ptr_ref(__ptr_base& __r, _Tp* __p) : _M_r(__r), _M_p(__p) { } - - _Tp* release() const { _M_r.__set((void*)0); return _M_p; } - -private: - //explicitely defined as private to avoid warnings: - typedef auto_ptr_ref<_Tp> _Self; - _Self& operator = (_Self const&); -}; - -template<class _Tp> -class auto_ptr : public __ptr_base { -public: - typedef _Tp element_type; - typedef auto_ptr<_Tp> _Self; - - _Tp* release() _STLP_NOTHROW { - _Tp* __px = this->get(); - this->_M_p = 0; - return __px; - } - - void reset(_Tp* __px = 0) _STLP_NOTHROW { - _Tp* __pt = this->get(); - if (__px != __pt) - delete __pt; - this->__set(__px); - } - - _Tp* get() const _STLP_NOTHROW - { return __REINTERPRET_CAST(_Tp*,__CONST_CAST(void*,_M_p)); } - -#if !defined (_STLP_NO_ARROW_OPERATOR) - _Tp* operator->() const _STLP_NOTHROW { - _STLP_VERBOSE_ASSERT(get()!=0, _StlMsg_AUTO_PTR_NULL) - return get(); - } -#endif - _Tp& operator*() const _STLP_NOTHROW { - _STLP_VERBOSE_ASSERT(get()!= 0, _StlMsg_AUTO_PTR_NULL) - return *get(); - } - - explicit auto_ptr(_Tp* __px = 0) _STLP_NOTHROW { this->__set(__px); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if !defined (_STLP_NO_TEMPLATE_CONVERSIONS) - template<class _Tp1> auto_ptr(auto_ptr<_Tp1>& __r) _STLP_NOTHROW { - _Tp* __conversionCheck = __r.release(); - this->__set(__conversionCheck); - } -# endif - template<class _Tp1> auto_ptr<_Tp>& operator=(auto_ptr<_Tp1>& __r) _STLP_NOTHROW { - _Tp* __conversionCheck = __r.release(); - reset(__conversionCheck); - return *this; - } -#endif - - auto_ptr(_Self& __r) _STLP_NOTHROW { this->__set(__r.release()); } - - _Self& operator=(_Self& __r) _STLP_NOTHROW { - reset(__r.release()); - return *this; - } - - ~auto_ptr() _STLP_NOTHROW { /* boris : reset(0) might be better */ delete this->get(); } - - auto_ptr(auto_ptr_ref<_Tp> __r) _STLP_NOTHROW - { this->__set(__r.release()); } - - _Self& operator=(auto_ptr_ref<_Tp> __r) _STLP_NOTHROW { - reset(__r.release()); - return *this; - } - -#if defined(_STLP_MEMBER_TEMPLATES) && !defined(_STLP_NO_TEMPLATE_CONVERSIONS) - template<class _Tp1> operator auto_ptr_ref<_Tp1>() _STLP_NOTHROW - { return auto_ptr_ref<_Tp1>(*this, this->get()); } - template<class _Tp1> operator auto_ptr<_Tp1>() _STLP_NOTHROW - { return auto_ptr<_Tp1>(release()); } -#else - operator auto_ptr_ref<_Tp>() _STLP_NOTHROW - { return auto_ptr_ref<_Tp>(*this, this->get()); } -#endif -}; -_STLP_END_NAMESPACE - -#endif /* _STLP_AUTO_PTR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_bitset.c b/WebKit/android/stlport/stl/_bitset.c deleted file mode 100644 index 82b9312..0000000 --- a/WebKit/android/stlport/stl/_bitset.c +++ /dev/null @@ -1,235 +0,0 @@ -/* - * Copyright (c) 1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_BITSET_C -#define _STLP_BITSET_C - -#ifndef _STLP_BITSET_H -# include <stl/_bitset.h> -#endif - -#define __BITS_PER_WORD (CHAR_BIT * sizeof(unsigned long)) - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE -// -// Definitions of non-inline functions from _Base_bitset. -// -template<size_t _Nw> -void _Base_bitset<_Nw>::_M_do_left_shift(size_t __shift) { - if (__shift != 0) { - const size_t __wshift = __shift / __BITS_PER_WORD; - const size_t __offset = __shift % __BITS_PER_WORD; - - if (__offset == 0) - for (size_t __n = _Nw - 1; __n >= __wshift; --__n) - _M_w[__n] = _M_w[__n - __wshift]; - - else { - const size_t __sub_offset = __BITS_PER_WORD - __offset; - for (size_t __n = _Nw - 1; __n > __wshift; --__n) - _M_w[__n] = (_M_w[__n - __wshift] << __offset) | - (_M_w[__n - __wshift - 1] >> __sub_offset); - _M_w[__wshift] = _M_w[0] << __offset; - } - - fill(_M_w + 0, _M_w + __wshift, __STATIC_CAST(_WordT,0)); - } -} - -template<size_t _Nw> -void _Base_bitset<_Nw>::_M_do_right_shift(size_t __shift) { - if (__shift != 0) { - const size_t __wshift = __shift / __BITS_PER_WORD; - const size_t __offset = __shift % __BITS_PER_WORD; - const size_t __limit = _Nw - __wshift - 1; - - if (__offset == 0) - for (size_t __n = 0; __n <= __limit; ++__n) - _M_w[__n] = _M_w[__n + __wshift]; - - else { - const size_t __sub_offset = __BITS_PER_WORD - __offset; - for (size_t __n = 0; __n < __limit; ++__n) - _M_w[__n] = (_M_w[__n + __wshift] >> __offset) | - (_M_w[__n + __wshift + 1] << __sub_offset); - _M_w[__limit] = _M_w[_Nw-1] >> __offset; - } - - fill(_M_w + __limit + 1, _M_w + _Nw, __STATIC_CAST(_WordT,0)); - } -} - -template<size_t _Nw> -unsigned long _Base_bitset<_Nw>::_M_do_to_ulong() const { - for (size_t __i = 1; __i < _Nw; ++__i) - if (_M_w[__i]) - __stl_throw_overflow_error("bitset"); - return _M_w[0]; -} // End _M_do_to_ulong - -template<size_t _Nw> -size_t _Base_bitset<_Nw>::_M_do_find_first(size_t __not_found) const { - for ( size_t __i = 0; __i < _Nw; __i++ ) { - _WordT __thisword = _M_w[__i]; - if ( __thisword != __STATIC_CAST(_WordT,0) ) { - // find byte within word - for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) { - unsigned char __this_byte - = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0))); - if ( __this_byte ) - return __i*__BITS_PER_WORD + __j*CHAR_BIT + - _Bs_G::_S_first_one(__this_byte); - - __thisword >>= CHAR_BIT; - } - } - } - // not found, so return an indication of failure. - return __not_found; -} - -template<size_t _Nw> -size_t -_Base_bitset<_Nw>::_M_do_find_next(size_t __prev, - size_t __not_found) const { - // make bound inclusive - ++__prev; - - // check out of bounds - if ( __prev >= _Nw * __BITS_PER_WORD ) - return __not_found; - - // search first word - size_t __i = _S_whichword(__prev); - _WordT __thisword = _M_w[__i]; - - // mask off bits below bound - __thisword &= (~__STATIC_CAST(_WordT,0)) << _S_whichbit(__prev); - - if ( __thisword != __STATIC_CAST(_WordT,0) ) { - // find byte within word - // get first byte into place - __thisword >>= _S_whichbyte(__prev) * CHAR_BIT; - for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); ++__j ) { - unsigned char __this_byte - = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0))); - if ( __this_byte ) - return __i*__BITS_PER_WORD + __j*CHAR_BIT + - _Bs_G::_S_first_one(__this_byte); - - __thisword >>= CHAR_BIT; - } - } - - // check subsequent words - ++__i; - for ( ; __i < _Nw; ++__i ) { - /* _WordT */ __thisword = _M_w[__i]; - if ( __thisword != __STATIC_CAST(_WordT,0) ) { - // find byte within word - for ( size_t __j = 0; __j < sizeof(_WordT); ++__j ) { - unsigned char __this_byte - = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0))); - if ( __this_byte ) - return __i*__BITS_PER_WORD + __j*CHAR_BIT + - _Bs_G::_S_first_one(__this_byte); - - __thisword >>= CHAR_BIT; - } - } - } - - // not found, so return an indication of failure. - return __not_found; -} // end _M_do_find_next - -_STLP_MOVE_TO_STD_NAMESPACE - -#if !defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) - -# if !defined (_STLP_USE_NO_IOSTREAMS) - -_STLP_END_NAMESPACE - -#ifndef _STLP_STRING_IO_H -# include <stl/_string_io.h> //includes _istream.h and _ostream.h -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _CharT, class _Traits, size_t _Nb> -basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Nb>& __x) { - basic_string<_CharT, _Traits> __tmp; - __tmp.reserve(_Nb); - - // Skip whitespace - typename basic_istream<_CharT, _Traits>::sentry __sentry(__is); - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf(); - for (size_t __i = 0; __i < _Nb; ++__i) { - static typename _Traits::int_type __eof = _Traits::eof(); - - typename _Traits::int_type __c1 = __buf->sbumpc(); - if (_Traits::eq_int_type(__c1, __eof)) { - __is.setstate(ios_base::eofbit); - break; - } - else { - typename _Traits::char_type __c2 = _Traits::to_char_type(__c1); - char __c = __is.narrow(__c2, '*'); - - if (__c == '0' || __c == '1') - __tmp.push_back(__c); - else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) { - __is.setstate(ios_base::failbit); - break; - } - } - } - - if (__tmp.empty()) - __is.setstate(ios_base::failbit); - else - __x._M_copy_from_string(__tmp, __STATIC_CAST(size_t,0), _Nb); - } - - return __is; -} - -template <class _CharT, class _Traits, size_t _Nb> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, - const bitset<_Nb>& __x) { - basic_string<_CharT, _Traits> __tmp; - __x._M_copy_to_string(__tmp); - return __os << __tmp; -} - -# endif /* !_STLP_USE_NO_IOSTREAMS */ - -#endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */ - -_STLP_END_NAMESPACE - -#undef __BITS_PER_WORD -#undef bitset - -#endif /* _STLP_BITSET_C */ diff --git a/WebKit/android/stlport/stl/_bitset.h b/WebKit/android/stlport/stl/_bitset.h deleted file mode 100644 index f894346..0000000 --- a/WebKit/android/stlport/stl/_bitset.h +++ /dev/null @@ -1,880 +0,0 @@ -/* - * Copyright (c) 1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_BITSET_H -#define _STLP_BITSET_H - -// A bitset of size N has N % (sizeof(unsigned long) * CHAR_BIT) unused -// bits. (They are the high- order bits in the highest word.) It is -// a class invariant of class bitset<> that those unused bits are -// always zero. - -// Most of the actual code isn't contained in bitset<> itself, but in the -// base class _Base_bitset. The base class works with whole words, not with -// individual bits. This allows us to specialize _Base_bitset for the -// important special case where the bitset is only a single word. - -// The C++ standard does not define the precise semantics of operator[]. -// In this implementation the const version of operator[] is equivalent -// to test(), except that it does no range checking. The non-const version -// returns a reference to a bit, again without doing any range checking. - - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_UNINITIALIZED_H -# include <stl/_uninitialized.h> -#endif - -#ifndef _STLP_RANGE_ERRORS_H -# include <stl/_range_errors.h> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -#define __BITS_PER_WORD (CHAR_BIT*sizeof(unsigned long)) -#define __BITSET_WORDS(__n) ((__n + __BITS_PER_WORD - 1)/__BITS_PER_WORD) - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// structure to aid in counting bits -class _STLP_CLASS_DECLSPEC _Bs_G -{ - public: - //returns the number of bit set within the buffer between __beg and __end. - static size_t _S_count(const unsigned char *__beg, const unsigned char *__end) -#if defined (_STLP_USE_NO_IOSTREAMS) - { - size_t __result = 0; - for (; __beg != __end; ++__beg) { - for (size_t i = 0; i < (sizeof(unsigned char) * 8); ++i) { - if ((*__beg & (1 << i)) != 0) { ++__result; } - } - } - return __result; - } -#else - ; -#endif - // Mapping from 8 bit unsigned integers to the index of the first one bit set: - static unsigned char _S_first_one(unsigned char __x) -#if defined (_STLP_USE_NO_IOSTREAMS) - { - for (unsigned char i = 0; i < (sizeof(unsigned char) * 8); ++i) { - if ((__x & (1 << i)) != 0) { return i; } - } - return 0; - } -#else - ; -#endif -}; - -// -// Base class: general case. -// - -template<size_t _Nw> -struct _Base_bitset { - typedef unsigned long _WordT; - - _WordT _M_w[_Nw]; // 0 is the least significant word. - - _Base_bitset() { _M_do_reset(); } - - _Base_bitset(unsigned long __val) { - _M_do_reset(); - _M_w[0] = __val; - } - - static size_t _STLP_CALL _S_whichword( size_t __pos ) { - return __pos / __BITS_PER_WORD; - } - static size_t _STLP_CALL _S_whichbyte( size_t __pos ) { - return (__pos % __BITS_PER_WORD) / CHAR_BIT; - } - static size_t _STLP_CALL _S_whichbit( size_t __pos ) { - return __pos % __BITS_PER_WORD; - } - static _WordT _STLP_CALL _S_maskbit( size_t __pos ) { - return __STATIC_CAST(_WordT,1) << _S_whichbit(__pos); - } - - _WordT& _M_getword(size_t __pos) { return _M_w[_S_whichword(__pos)]; } - _WordT _M_getword(size_t __pos) const { return _M_w[_S_whichword(__pos)]; } - - _WordT& _M_hiword() { return _M_w[_Nw - 1]; } - _WordT _M_hiword() const { return _M_w[_Nw - 1]; } - - void _M_do_and(const _Base_bitset<_Nw>& __x) { - for ( size_t __i = 0; __i < _Nw; __i++ ) { - _M_w[__i] &= __x._M_w[__i]; - } - } - - void _M_do_or(const _Base_bitset<_Nw>& __x) { - for ( size_t __i = 0; __i < _Nw; __i++ ) { - _M_w[__i] |= __x._M_w[__i]; - } - } - - void _M_do_xor(const _Base_bitset<_Nw>& __x) { - for ( size_t __i = 0; __i < _Nw; __i++ ) { - _M_w[__i] ^= __x._M_w[__i]; - } - } - - void _M_do_left_shift(size_t __shift); - - void _M_do_right_shift(size_t __shift); - - void _M_do_flip() { - for ( size_t __i = 0; __i < _Nw; __i++ ) { - _M_w[__i] = ~_M_w[__i]; - } - } - - void _M_do_set() { - for ( size_t __i = 0; __i < _Nw; __i++ ) { - _M_w[__i] = ~__STATIC_CAST(_WordT,0); - } - } - - void _M_do_reset() { memset(_M_w, 0, _Nw * sizeof(_WordT)); } - - bool _M_is_equal(const _Base_bitset<_Nw>& __x) const { - for (size_t __i = 0; __i < _Nw; ++__i) { - if (_M_w[__i] != __x._M_w[__i]) - return false; - } - return true; - } - - bool _M_is_any() const { - for ( size_t __i = 0; __i < _Nw ; __i++ ) { - if ( _M_w[__i] != __STATIC_CAST(_WordT,0) ) - return true; - } - return false; - } - - size_t _M_do_count() const { - const unsigned char* __byte_ptr = (const unsigned char*)_M_w; - const unsigned char* __end_ptr = (const unsigned char*)(_M_w+_Nw); - - return _Bs_G::_S_count(__byte_ptr, __end_ptr); - } - - unsigned long _M_do_to_ulong() const; - - // find first "on" bit - size_t _M_do_find_first(size_t __not_found) const; - - // find the next "on" bit that follows "prev" - size_t _M_do_find_next(size_t __prev, size_t __not_found) const; -}; - -// -// Base class: specialization for a single word. -// -_STLP_TEMPLATE_NULL -struct _Base_bitset<1UL> { - typedef unsigned long _WordT; - typedef _Base_bitset<1UL> _Self; - - _WordT _M_w; - - _Base_bitset( void ) : _M_w(0) {} - _Base_bitset(unsigned long __val) : _M_w(__val) {} - - static size_t _STLP_CALL _S_whichword( size_t __pos ) { - return __pos / __BITS_PER_WORD ; - } - static size_t _STLP_CALL _S_whichbyte( size_t __pos ) { - return (__pos % __BITS_PER_WORD) / CHAR_BIT; - } - static size_t _STLP_CALL _S_whichbit( size_t __pos ) { - return __pos % __BITS_PER_WORD; - } - static _WordT _STLP_CALL _S_maskbit( size_t __pos ) { - return (__STATIC_CAST(_WordT,1)) << _S_whichbit(__pos); - } - - _WordT& _M_getword(size_t) { return _M_w; } - _WordT _M_getword(size_t) const { return _M_w; } - - _WordT& _M_hiword() { return _M_w; } - _WordT _M_hiword() const { return _M_w; } - - void _M_do_and(const _Self& __x) { _M_w &= __x._M_w; } - void _M_do_or(const _Self& __x) { _M_w |= __x._M_w; } - void _M_do_xor(const _Self& __x) { _M_w ^= __x._M_w; } - void _M_do_left_shift(size_t __shift) { _M_w <<= __shift; } - void _M_do_right_shift(size_t __shift) { _M_w >>= __shift; } - void _M_do_flip() { _M_w = ~_M_w; } - void _M_do_set() { _M_w = ~__STATIC_CAST(_WordT,0); } - void _M_do_reset() { _M_w = 0; } - - bool _M_is_equal(const _Self& __x) const { - return _M_w == __x._M_w; - } - bool _M_is_any() const { - return _M_w != 0; - } - - size_t _M_do_count() const { - const unsigned char* __byte_ptr = (const unsigned char*)&_M_w; - const unsigned char* __end_ptr = ((const unsigned char*)&_M_w)+sizeof(_M_w); - return _Bs_G::_S_count(__byte_ptr, __end_ptr); - } - - unsigned long _M_do_to_ulong() const { return _M_w; } - - inline size_t _M_do_find_first(size_t __not_found) const; - - // find the next "on" bit that follows "prev" - inline size_t _M_do_find_next(size_t __prev, size_t __not_found) const; -}; - - -// ------------------------------------------------------------ -// -// Definitions of should-be-non-inline functions from the single-word version of -// _Base_bitset. -// -inline size_t -_Base_bitset<1UL>::_M_do_find_first(size_t __not_found) const { - // typedef unsigned long _WordT; - _WordT __thisword = _M_w; - - if ( __thisword != __STATIC_CAST(_WordT,0) ) { - // find byte within word - for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) { - unsigned char __this_byte - = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0))); - if ( __this_byte ) - return __j*CHAR_BIT + _Bs_G::_S_first_one(__this_byte); - - __thisword >>= CHAR_BIT; - } - } - // not found, so return a value that indicates failure. - return __not_found; -} - -inline size_t -_Base_bitset<1UL>::_M_do_find_next(size_t __prev, - size_t __not_found ) const { - // make bound inclusive - ++__prev; - - // check out of bounds - if ( __prev >= __BITS_PER_WORD ) - return __not_found; - - // search first (and only) word - _WordT __thisword = _M_w; - - // mask off bits below bound - __thisword &= (~__STATIC_CAST(_WordT,0)) << _S_whichbit(__prev); - - if ( __thisword != __STATIC_CAST(_WordT,0) ) { - // find byte within word - // get first byte into place - __thisword >>= _S_whichbyte(__prev) * CHAR_BIT; - for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) { - unsigned char __this_byte - = __STATIC_CAST(unsigned char,(__thisword & (~(unsigned char)0))); - if ( __this_byte ) - return __j*CHAR_BIT + _Bs_G::_S_first_one(__this_byte); - - __thisword >>= CHAR_BIT; - } - } - - // not found, so return a value that indicates failure. - return __not_found; -} // end _M_do_find_next - - -// ------------------------------------------------------------ -// Helper class to zero out the unused high-order bits in the highest word. - -template <size_t _Extrabits> struct _Sanitize { - static void _STLP_CALL _M_do_sanitize(unsigned long& __val) - { __val &= ~((~__STATIC_CAST(unsigned long,0)) << _Extrabits); } -}; - -_STLP_TEMPLATE_NULL struct _Sanitize<0UL> { - static void _STLP_CALL _M_do_sanitize(unsigned long) {} -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -// ------------------------------------------------------------ -// Class bitset. -// _Nb may be any nonzero number of type size_t. -template<size_t _Nb> -class bitset : public _STLP_PRIV _Base_bitset<__BITSET_WORDS(_Nb) > { -public: - enum { _Words = __BITSET_WORDS(_Nb) } ; - -private: - typedef _STLP_PRIV _Base_bitset< _Words > _Base; - - void _M_do_sanitize() { - _STLP_PRIV _Sanitize<_Nb%__BITS_PER_WORD >::_M_do_sanitize(this->_M_hiword()); - } -public: - typedef unsigned long _WordT; - struct reference; - friend struct reference; - - // bit reference: - struct reference { - typedef _STLP_PRIV _Base_bitset<_Words > _Bitset_base; - typedef bitset<_Nb> _Bitset; - // friend _Bitset; - _WordT *_M_wp; - size_t _M_bpos; - - // should be left undefined - reference() {} - - reference( _Bitset& __b, size_t __pos ) { - _M_wp = &__b._M_getword(__pos); - _M_bpos = _Bitset_base::_S_whichbit(__pos); - } - - public: - ~reference() {} - - // for b[i] = __x; - reference& operator=(bool __x) { - if ( __x ) - *_M_wp |= _Bitset_base::_S_maskbit(_M_bpos); - else - *_M_wp &= ~_Bitset_base::_S_maskbit(_M_bpos); - - return *this; - } - - // for b[i] = b[__j]; - reference& operator=(const reference& __j) { - if ( (*(__j._M_wp) & _Bitset_base::_S_maskbit(__j._M_bpos)) ) - *_M_wp |= _Bitset_base::_S_maskbit(_M_bpos); - else - *_M_wp &= ~_Bitset_base::_S_maskbit(_M_bpos); - - return *this; - } - - // flips the bit - bool operator~() const { return (*(_M_wp) & _Bitset_base::_S_maskbit(_M_bpos)) == 0; } - - // for __x = b[i]; - operator bool() const { return (*(_M_wp) & _Bitset_base::_S_maskbit(_M_bpos)) != 0; } - - // for b[i].flip(); - reference& flip() { - *_M_wp ^= _Bitset_base::_S_maskbit(_M_bpos); - return *this; - } - }; - - // 23.3.5.1 constructors: - bitset() {} - - bitset(unsigned long __val) : _STLP_PRIV _Base_bitset<_Words>(__val) { _M_do_sanitize(); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template<class _CharT, class _Traits, class _Alloc> - explicit bitset(const basic_string<_CharT,_Traits,_Alloc>& __s, - size_t __pos = 0) - : _STLP_PRIV _Base_bitset<_Words >() { - if (__pos > __s.size()) - __stl_throw_out_of_range("bitset"); - _M_copy_from_string(__s, __pos, - basic_string<_CharT, _Traits, _Alloc>::npos); - } - template<class _CharT, class _Traits, class _Alloc> - bitset(const basic_string<_CharT, _Traits, _Alloc>& __s, - size_t __pos, - size_t __n) - : _STLP_PRIV _Base_bitset<_Words >() { - if (__pos > __s.size()) - __stl_throw_out_of_range("bitset"); - _M_copy_from_string(__s, __pos, __n); - } -#else /* _STLP_MEMBER_TEMPLATES */ - explicit bitset(const string& __s, - size_t __pos = 0, - size_t __n = (size_t)-1) - : _STLP_PRIV _Base_bitset<_Words >() { - if (__pos > __s.size()) - __stl_throw_out_of_range("bitset"); - _M_copy_from_string(__s, __pos, __n); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - // 23.3.5.2 bitset operations: - bitset<_Nb>& operator&=(const bitset<_Nb>& __rhs) { - this->_M_do_and(__rhs); - return *this; - } - - bitset<_Nb>& operator|=(const bitset<_Nb>& __rhs) { - this->_M_do_or(__rhs); - return *this; - } - - bitset<_Nb>& operator^=(const bitset<_Nb>& __rhs) { - this->_M_do_xor(__rhs); - return *this; - } - - bitset<_Nb>& operator<<=(size_t __pos) { - this->_M_do_left_shift(__pos); - this->_M_do_sanitize(); - return *this; - } - - bitset<_Nb>& operator>>=(size_t __pos) { - this->_M_do_right_shift(__pos); - this->_M_do_sanitize(); - return *this; - } - - // - // Extension: - // Versions of single-bit set, reset, flip, test with no range checking. - // - - bitset<_Nb>& _Unchecked_set(size_t __pos) { - this->_M_getword(__pos) |= _STLP_PRIV _Base_bitset<_Words > ::_S_maskbit(__pos); - return *this; - } - - bitset<_Nb>& _Unchecked_set(size_t __pos, int __val) { - if (__val) - this->_M_getword(__pos) |= this->_S_maskbit(__pos); - else - this->_M_getword(__pos) &= ~ this->_S_maskbit(__pos); - - return *this; - } - - bitset<_Nb>& _Unchecked_reset(size_t __pos) { - this->_M_getword(__pos) &= ~ this->_S_maskbit(__pos); - return *this; - } - - bitset<_Nb>& _Unchecked_flip(size_t __pos) { - this->_M_getword(__pos) ^= this->_S_maskbit(__pos); - return *this; - } - - bool _Unchecked_test(size_t __pos) const { - return (this->_M_getword(__pos) & this->_S_maskbit(__pos)) != __STATIC_CAST(_WordT,0); - } - - // Set, reset, and flip. - - bitset<_Nb>& set() { - this->_M_do_set(); - this->_M_do_sanitize(); - return *this; - } - - bitset<_Nb>& set(size_t __pos) { - if (__pos >= _Nb) - __stl_throw_out_of_range("bitset"); - return _Unchecked_set(__pos); - } - - bitset<_Nb>& set(size_t __pos, int __val) { - if (__pos >= _Nb) - __stl_throw_out_of_range("bitset"); - return _Unchecked_set(__pos, __val); - } - - bitset<_Nb>& reset() { - this->_M_do_reset(); - return *this; - } - - bitset<_Nb>& reset(size_t __pos) { - if (__pos >= _Nb) - __stl_throw_out_of_range("bitset"); - - return _Unchecked_reset(__pos); - } - - bitset<_Nb>& flip() { - this->_M_do_flip(); - this->_M_do_sanitize(); - return *this; - } - - bitset<_Nb>& flip(size_t __pos) { - if (__pos >= _Nb) - __stl_throw_out_of_range("bitset"); - - return _Unchecked_flip(__pos); - } - - bitset<_Nb> operator~() const { - return bitset<_Nb>(*this).flip(); - } - - // element access: - //for b[i]; - reference operator[](size_t __pos) { return reference(*this,__pos); } - bool operator[](size_t __pos) const { return _Unchecked_test(__pos); } - - unsigned long to_ulong() const { return this->_M_do_to_ulong(); } - -#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) - template <class _CharT, class _Traits, class _Alloc> - basic_string<_CharT, _Traits, _Alloc> to_string() const { - basic_string<_CharT, _Traits, _Alloc> __result; - _M_copy_to_string(__result); - return __result; - } -#else - string to_string() const { - string __result; - _M_copy_to_string(__result); - return __result; - } -#endif /* _STLP_EXPLICIT_FUNCTION_TMPL_ARGS */ - - size_t count() const { return this->_M_do_count(); } - - size_t size() const { return _Nb; } - - bool operator==(const bitset<_Nb>& __rhs) const { - return this->_M_is_equal(__rhs); - } - bool operator!=(const bitset<_Nb>& __rhs) const { - return !this->_M_is_equal(__rhs); - } - - bool test(size_t __pos) const { - if (__pos >= _Nb) - __stl_throw_out_of_range("bitset"); - - return _Unchecked_test(__pos); - } - - bool any() const { return this->_M_is_any(); } - bool none() const { return !this->_M_is_any(); } - - bitset<_Nb> operator<<(size_t __pos) const { - bitset<_Nb> __result(*this); - __result <<= __pos ; return __result; - } - bitset<_Nb> operator>>(size_t __pos) const { - bitset<_Nb> __result(*this); - __result >>= __pos ; return __result; - } - -#if !defined (_STLP_NO_EXTENSIONS) - // - // EXTENSIONS: bit-find operations. These operations are - // experimental, and are subject to change or removal in future - // versions. - // - - // find the index of the first "on" bit - size_t _Find_first() const - { return this->_M_do_find_first(_Nb); } - - // find the index of the next "on" bit after prev - size_t _Find_next( size_t __prev ) const - { return this->_M_do_find_next(__prev, _Nb); } -#endif - -// -// Definitions of should-be non-inline member functions. -// -#if defined (_STLP_MEMBER_TEMPLATES) - template<class _CharT, class _Traits, class _Alloc> - void _M_copy_from_string(const basic_string<_CharT,_Traits,_Alloc>& __s, - size_t __pos, size_t __n) { -#else - void _M_copy_from_string(const string& __s, - size_t __pos, size_t __n) { - typedef typename string::traits_type _Traits; -#endif - reset(); - size_t __tmp = _Nb; - const size_t __Nbits = (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() ? - if (__k == '1') - set(__i); - else if (__k != '0') - __stl_throw_invalid_argument("bitset"); - } - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _CharT, class _Traits, class _Alloc> - void _M_copy_to_string(basic_string<_CharT, _Traits, _Alloc>& __s) const -#else - void _M_copy_to_string(string& __s) const -#endif - { - __s.assign(_Nb, '0'); - - for (size_t __i = 0; __i < _Nb; ++__i) { - if (_Unchecked_test(__i)) - __s[_Nb - 1 - __i] = '1'; - } - } - -#if !defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_WCHAR_T) - void _M_copy_to_string(wstring& __s) const { - __s.assign(_Nb, '0'); - - for (size_t __i = 0; __i < _Nb; ++__i) { - if (_Unchecked_test(__i)) - __s[_Nb - 1 - __i] = '1'; - } - } -#endif - -#if defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) - bitset<_Nb> operator&(const bitset<_Nb>& __y) const { - bitset<_Nb> __result(*this); - __result &= __y; - return __result; - } - bitset<_Nb> operator|(const bitset<_Nb>& __y) const { - bitset<_Nb> __result(*this); - __result |= __y; - return __result; - } - bitset<_Nb> operator^(const bitset<_Nb>& __y) const { - bitset<_Nb> __result(*this); - __result ^= __y; - return __result; - } -#endif -}; - -// ------------------------------------------------------------ -// -// 23.3.5.3 bitset operations: -// -#if ! defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) -template <size_t _Nb> -inline bitset<_Nb> _STLP_CALL -operator&(const bitset<_Nb>& __x, - const bitset<_Nb>& __y) { - bitset<_Nb> __result(__x); - __result &= __y; - return __result; -} - - -template <size_t _Nb> -inline bitset<_Nb> _STLP_CALL -operator|(const bitset<_Nb>& __x, - const bitset<_Nb>& __y) { - bitset<_Nb> __result(__x); - __result |= __y; - return __result; -} - -template <size_t _Nb> -inline bitset<_Nb> _STLP_CALL -operator^(const bitset<_Nb>& __x, - const bitset<_Nb>& __y) { - bitset<_Nb> __result(__x); - __result ^= __y; - return __result; -} - -#if !defined (_STLP_USE_NO_IOSTREAMS) - -_STLP_END_NAMESPACE - -# if !(defined (_STLP_MSVC) && (_STLP_MSVC < 1300)) && \ - !(defined(__SUNPRO_CC) && (__SUNPRO_CC < 0x500)) - -#ifndef _STLP_INTERNAL_IOSFWD -# include <stl/_iosfwd.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _CharT, class _Traits, size_t _Nb> -basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __is, bitset<_Nb>& __x); - -template <class _CharT, class _Traits, size_t _Nb> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, const bitset<_Nb>& __x); - -# else - -#ifndef _STLP_STRING_IO_H -# include <stl/_string_io.h> //includes _istream.h and _ostream.h -#endif - -_STLP_BEGIN_NAMESPACE - -template <size_t _Nb> -istream& _STLP_CALL -operator>>(istream& __is, bitset<_Nb>& __x) { - typedef typename string::traits_type _Traits; - string __tmp; - __tmp.reserve(_Nb); - - // Skip whitespace - typename istream::sentry __sentry(__is); - if (__sentry) { - streambuf* __buf = __is.rdbuf(); - for (size_t __i = 0; __i < _Nb; ++__i) { - static typename _Traits::int_type __eof = _Traits::eof(); - - typename _Traits::int_type __c1 = __buf->sbumpc(); - if (_Traits::eq_int_type(__c1, __eof)) { - __is.setstate(ios_base::eofbit); - break; - } - else { - typename _Traits::char_type __c2 = _Traits::to_char_type(__c1); - char __c = __is.narrow(__c2, '*'); - - if (__c == '0' || __c == '1') - __tmp.push_back(__c); - else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) { - __is.setstate(ios_base::failbit); - break; - } - } - } - - if (__tmp.empty()) - __is.setstate(ios_base::failbit); - else - __x._M_copy_from_string(__tmp, __STATIC_CAST(size_t,0), _Nb); - } - - return __is; -} - -template <size_t _Nb> -ostream& _STLP_CALL -operator<<(ostream& __os, const bitset<_Nb>& __x) { - string __tmp; - __x._M_copy_to_string(__tmp); - return __os << __tmp; -} - -# if !defined (_STLP_NO_WCHAR_T) - -template <size_t _Nb> -wistream& _STLP_CALL -operator>>(wistream& __is, bitset<_Nb>& __x) { - typedef typename wstring::traits_type _Traits; - wstring __tmp; - __tmp.reserve(_Nb); - - // Skip whitespace - typename wistream::sentry __sentry(__is); - if (__sentry) { - wstreambuf* __buf = __is.rdbuf(); - for (size_t __i = 0; __i < _Nb; ++__i) { - static typename _Traits::int_type __eof = _Traits::eof(); - - typename _Traits::int_type __c1 = __buf->sbumpc(); - if (_Traits::eq_int_type(__c1, __eof)) { - __is.setstate(ios_base::eofbit); - break; - } - else { - typename _Traits::char_type __c2 = _Traits::to_char_type(__c1); - char __c = __is.narrow(__c2, '*'); - - if (__c == '0' || __c == '1') - __tmp.push_back(__c); - else if (_Traits::eq_int_type(__buf->sputbackc(__c2), __eof)) { - __is.setstate(ios_base::failbit); - break; - } - } - } - - if (__tmp.empty()) - __is.setstate(ios_base::failbit); - else - __x._M_copy_from_string(__tmp, __STATIC_CAST(size_t,0), _Nb); - } - - return __is; -} - -template <size_t _Nb> -wostream& _STLP_CALL -operator<<(wostream& __os, const bitset<_Nb>& __x) { - wstring __tmp; - __x._M_copy_to_string(__tmp); - return __os << __tmp; -} - -# endif /* _STLP_NO_WCHAR_T */ -# endif -#endif - -#endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */ - -#undef bitset - -_STLP_END_NAMESPACE - -#undef __BITS_PER_WORD -#undef __BITSET_WORDS - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_bitset.c> -#endif - -#endif /* _STLP_BITSET_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_bvector.h b/WebKit/android/stlport/stl/_bvector.h deleted file mode 100644 index 1943eda..0000000 --- a/WebKit/android/stlport/stl/_bvector.h +++ /dev/null @@ -1,837 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_BVECTOR_H -#define _STLP_INTERNAL_BVECTOR_H - -#ifndef _STLP_INTERNAL_VECTOR_H -# include <stl/_vector.h> -#endif - -#define _STLP_WORD_BIT (int(CHAR_BIT*sizeof(unsigned int))) - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -struct _Bit_reference { - unsigned int* _M_p; - unsigned int _M_mask; - _Bit_reference(unsigned int* __x, unsigned int __y) - : _M_p(__x), _M_mask(__y) {} - -public: - _Bit_reference() : _M_p(0), _M_mask(0) {} - - operator bool() const { - return !(!(*_M_p & _M_mask)); - } - _Bit_reference& operator = (bool __x) { - if (__x) *_M_p |= _M_mask; - else *_M_p &= ~_M_mask; - return *this; - } - _Bit_reference& operator = (const _Bit_reference& __x) { - return *this = bool(__x); - } - bool operator == (const _Bit_reference& __x) const { - return bool(*this) == bool(__x); - } - bool operator < (const _Bit_reference& __x) const { - return !bool(*this) && bool(__x); - } - - _Bit_reference& operator |= (bool __x) { - if (__x) - *_M_p |= _M_mask; - return *this; - } - _Bit_reference& operator &= (bool __x) { - if (!__x) - *_M_p &= ~_M_mask; - return *this; - } - void flip() { *_M_p ^= _M_mask; } -}; - - -_STLP_MOVE_TO_STD_NAMESPACE - -inline void swap(_STLP_PRIV _Bit_reference& __x, _STLP_PRIV _Bit_reference& __y) { - bool __tmp = (bool)__x; - __x = __y; - __y = __tmp; -} - -// Might not be very useful but costs nothing! -_STLP_TEMPLATE_NULL -struct __type_traits<_STLP_PRIV _Bit_reference> { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __false_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -struct _Bit_iterator_base { - typedef ptrdiff_t difference_type; - - unsigned int* _M_p; - unsigned int _M_offset; - - void _M_bump_up() { - if (_M_offset++ == _STLP_WORD_BIT - 1) { - _M_offset = 0; - ++_M_p; - } - } - - void _M_bump_down() { - if (_M_offset-- == 0) { - _M_offset = _STLP_WORD_BIT - 1; - --_M_p; - } - } - - _Bit_iterator_base() : _M_p(0), _M_offset(0) {} - _Bit_iterator_base(unsigned int* __x, unsigned int __y) : _M_p(__x), _M_offset(__y) {} -// see comment in doc/README.evc4 and doc/README.evc8 -#if defined(_MSC_VER) && _MSC_VER<=1401 && defined(MIPS) && defined(NDEBUG) - _Bit_iterator_base( const _Bit_iterator_base& __x) : _M_p(__x._M_p), _M_offset(__x._M_offset) {} -#endif - // _Bit_iterator_base& operator = ( const _Bit_iterator_base& __x) { _M_p = __x._M_p ; _M_offset = __x._M_offset ; return *this; } - - void _M_advance (difference_type __i) { - difference_type __n = __i + _M_offset; - _M_p += __n / _STLP_WORD_BIT; - __n = __n % _STLP_WORD_BIT; - if (__n < 0) { - _M_offset = (unsigned int) __n + _STLP_WORD_BIT; - --_M_p; - } else - _M_offset = (unsigned int) __n; - } - - difference_type _M_subtract(const _Bit_iterator_base& __x) const { - return _STLP_WORD_BIT * (_M_p - __x._M_p) + _M_offset - __x._M_offset; - } -}; - -inline bool _STLP_CALL operator==(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { - return __y._M_p == __x._M_p && __y._M_offset == __x._M_offset; -} -inline bool _STLP_CALL operator!=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { - return __y._M_p != __x._M_p || __y._M_offset != __x._M_offset; -} - -inline bool _STLP_CALL operator<(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { - return __x._M_p < __y._M_p || (__x._M_p == __y._M_p && __x._M_offset < __y._M_offset); -} - -inline bool _STLP_CALL operator>(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { - return operator <(__y , __x); -} -inline bool _STLP_CALL operator<=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { - return !(__y < __x); -} -inline bool _STLP_CALL operator>=(const _Bit_iterator_base& __x, const _Bit_iterator_base& __y) { - return !(__x < __y); -} - -template <class _Ref, class _Ptr> -struct _Bit_iter : public _Bit_iterator_base { - typedef _Ref reference; - typedef _Ptr pointer; - typedef _Bit_iter<_Ref, _Ptr> _Self; - typedef random_access_iterator_tag iterator_category; - typedef bool value_type; - typedef ptrdiff_t difference_type; - typedef size_t size_type; - - _Bit_iter(unsigned int* __x, unsigned int __y) : _Bit_iterator_base(__x, __y) {} - _Bit_iter() {} - - _Bit_iter(const _Bit_iter<_Bit_reference, _Bit_reference*>& __x): - _Bit_iterator_base((const _Bit_iterator_base&)__x) {} - - // _Self& operator = (const _Bit_iter<_Bit_reference, _Bit_reference*>& __x) - // { (_Bit_iterator_base&)*this = (const _Bit_iterator_base&)__x; return *this; } - - reference operator*() const { - return _Bit_reference(_M_p, 1UL << _M_offset); - } - _Self& operator++() { - _M_bump_up(); - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - _M_bump_up(); - return __tmp; - } - _Self& operator--() { - _M_bump_down(); - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - _M_bump_down(); - return __tmp; - } - _Self& operator+=(difference_type __i) { - _M_advance(__i); - return *this; - } - _Self& operator-=(difference_type __i) { - *this += -__i; - return *this; - } - _Self operator+(difference_type __i) const { - _Self __tmp = *this; - return __tmp += __i; - } - _Self operator-(difference_type __i) const { - _Self __tmp = *this; - return __tmp -= __i; - } - difference_type operator-(const _Self& __x) const { - return _M_subtract(__x); - } - reference operator[](difference_type __i) { return *(*this + __i); } -}; - -template <class _Ref, class _Ptr> -inline _Bit_iter<_Ref,_Ptr> _STLP_CALL -operator+(ptrdiff_t __n, const _Bit_iter<_Ref, _Ptr>& __x) { - return __x + __n; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Ref, class _Ptr> -struct __type_traits< _STLP_PRIV _Bit_iter<_Ref, _Ptr> > { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -inline random_access_iterator_tag iterator_category(const _STLP_PRIV _Bit_iterator_base&) -{ return random_access_iterator_tag(); } -inline ptrdiff_t* distance_type(const _STLP_PRIV _Bit_iterator_base&) -{ return (ptrdiff_t*)0; } -inline bool* value_type(const _STLP_PRIV _Bit_iter<_STLP_PRIV _Bit_reference, _STLP_PRIV _Bit_reference*>&) -{ return (bool*)0; } -inline bool* value_type(const _STLP_PRIV _Bit_iter<bool, const bool*>&) -{ return (bool*)0; } -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -typedef _Bit_iter<bool, const bool*> _Bit_const_iterator; -typedef _Bit_iter<_Bit_reference, _Bit_reference*> _Bit_iterator; - -// Bit-vector base class, which encapsulates the difference between -// old SGI-style allocators and standard-conforming allocators. -template <class _Alloc> -class _Bvector_base { - typedef _Bvector_base<_Alloc> _Self; -public: - _STLP_FORCE_ALLOCATORS(bool, _Alloc) - typedef typename _Alloc_traits<bool, _Alloc>::allocator_type allocator_type; - typedef unsigned int __chunk_type; - typedef typename _Alloc_traits<__chunk_type, - _Alloc>::allocator_type __chunk_allocator_type; - allocator_type get_allocator() const { - return _STLP_CONVERT_ALLOCATOR((const __chunk_allocator_type&)_M_end_of_storage, bool); - } - static allocator_type __get_dfl_allocator() { return allocator_type(); } - - _Bvector_base(const allocator_type& __a) - : _M_start(), _M_finish(), _M_end_of_storage(_STLP_CONVERT_ALLOCATOR(__a, __chunk_type), - (__chunk_type*)0) - {} - _Bvector_base(__move_source<_Self> src) - : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish), - _M_end_of_storage(src.get()._M_end_of_storage) { - //Make the source destroyable - src.get()._M_start._M_p = 0; - } - - ~_Bvector_base() { - _M_deallocate(); - } - -protected: - - unsigned int* _M_bit_alloc(size_t __n) { - return _M_end_of_storage.allocate((__n + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT); - } - void _M_deallocate() { - if (_M_start._M_p) - _M_end_of_storage.deallocate(_M_start._M_p, - _M_end_of_storage._M_data - _M_start._M_p); - } - - _Bit_iterator _M_start; - _Bit_iterator _M_finish; - _STLP_alloc_proxy<__chunk_type*, __chunk_type, __chunk_allocator_type> _M_end_of_storage; -}; - - -// The next few lines are confusing. What we're doing is declaring a -// partial specialization of vector<T, Alloc> if we have the necessary -// compiler support. Otherwise, we define a class bit_vector which uses -// the default allocator. - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_NO_BOOL) && !defined (__SUNPRO_CC) -# define _STLP_VECBOOL_TEMPLATE -# define __BVEC_TMPL_HEADER template <class _Alloc> -#else -# undef _STLP_VECBOOL_TEMPLATE -# ifdef _STLP_NO_BOOL -# define __BVEC_TMPL_HEADER -# else -# define __BVEC_TMPL_HEADER _STLP_TEMPLATE_NULL -# endif -# if !(defined(__MRC__)||(defined(__SC__)&&!defined(__DMC__))) //*TY 12/17/2000 - -# define _Alloc _STLP_DEFAULT_ALLOCATOR(bool) -# else -# define _Alloc allocator<bool> -# endif -#endif - -#if defined (_STLP_DEBUG) -# define vector _STLP_NON_DBG_NAME(vector) -#endif - -#ifdef _STLP_NO_BOOL -# define __BVECTOR_QUALIFIED bit_vector -# define __BVECTOR bit_vector -#else -# ifdef _STLP_VECBOOL_TEMPLATE -# define __BVECTOR_QUALIFIED vector<bool, _Alloc> -# else -# define __BVECTOR_QUALIFIED vector<bool, allocator<bool> > -# endif -# if defined (_STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS) -# define __BVECTOR __BVECTOR_QUALIFIED -# else -# define __BVECTOR vector -# endif -#endif - -#if !defined (_STLP_DEBUG) || defined (_STLP_NO_BOOL) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -__BVEC_TMPL_HEADER -class __BVECTOR_QUALIFIED : public _STLP_PRIV _Bvector_base<_Alloc > -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_DEBUG) - , public __stlport_class< __BVECTOR_QUALIFIED > -#endif -{ - typedef _STLP_PRIV _Bvector_base<_Alloc > _Base; - typedef __BVECTOR_QUALIFIED _Self; -public: - typedef bool value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _STLP_PRIV _Bit_reference reference; - typedef bool const_reference; - typedef _STLP_PRIV _Bit_reference* pointer; - typedef const bool* const_pointer; - typedef random_access_iterator_tag _Iterator_category; - - typedef _STLP_PRIV _Bit_iterator iterator; - typedef _STLP_PRIV _Bit_const_iterator const_iterator; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -#ifdef _STLP_VECBOOL_TEMPLATE - typedef typename _STLP_PRIV _Bvector_base<_Alloc >::allocator_type allocator_type; - typedef typename _STLP_PRIV _Bvector_base<_Alloc >::__chunk_type __chunk_type; -#else - typedef _STLP_PRIV _Bvector_base<_Alloc >::allocator_type allocator_type; - typedef _STLP_PRIV _Bvector_base<_Alloc >::__chunk_type __chunk_type; -#endif - -protected: - - void _M_initialize(size_type __n) { - unsigned int* __q = this->_M_bit_alloc(__n); - this->_M_end_of_storage._M_data = __q + (__n + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - this->_M_start = iterator(__q, 0); - this->_M_finish = this->_M_start + difference_type(__n); - } - void _M_insert_aux(iterator __position, bool __x) { - if (this->_M_finish._M_p != this->_M_end_of_storage._M_data) { - _STLP_PRIV __copy_backward(__position, this->_M_finish, this->_M_finish + 1, - random_access_iterator_tag(), (difference_type*)0 ); - *__position = __x; - ++this->_M_finish; - } - else { - size_type __len = size() ? 2 * size() : _STLP_WORD_BIT; - unsigned int* __q = this->_M_bit_alloc(__len); - iterator __i = copy(begin(), __position, iterator(__q, 0)); - *__i++ = __x; - this->_M_finish = copy(__position, end(), __i); - this->_M_deallocate(); - this->_M_end_of_storage._M_data = __q + (__len + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - this->_M_start = iterator(__q, 0); - } - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void _M_initialize_range(_InputIterator __first, _InputIterator __last, - const input_iterator_tag &) { - this->_M_start = iterator(); - this->_M_finish = iterator(); - this->_M_end_of_storage._M_data = 0; - for ( ; __first != __last; ++__first) - push_back(*__first); - } - - template <class _ForwardIterator> - void _M_initialize_range(_ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { - size_type __n = distance(__first, __last); - _M_initialize(__n); - copy(__first, __last, this->_M_start); - } - - template <class _InputIterator> - void _M_insert_range(iterator __pos, - _InputIterator __first, _InputIterator __last, - const input_iterator_tag &) { - for ( ; __first != __last; ++__first) { - __pos = insert(__pos, *__first); - ++__pos; - } - } - - template <class _ForwardIterator> - void _M_insert_range(iterator __position, - _ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { - if (__first != __last) { - size_type __n = distance(__first, __last); - if (capacity() - size() >= __n) { - _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + difference_type(__n), - random_access_iterator_tag(), (difference_type*)0 ); - copy(__first, __last, __position); - this->_M_finish += difference_type(__n); - } - else { - size_type __len = size() + (max)(size(), __n); - unsigned int* __q = this->_M_bit_alloc(__len); - iterator __i = copy(begin(), __position, iterator(__q, 0)); - __i = copy(__first, __last, __i); - this->_M_finish = copy(__position, end(), __i); - this->_M_deallocate(); - this->_M_end_of_storage._M_data = __q + (__len + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - this->_M_start = iterator(__q, 0); - } - } - } - -#endif /* _STLP_MEMBER_TEMPLATES */ - -public: - iterator begin() { return this->_M_start; } - const_iterator begin() const { return this->_M_start; } - iterator end() { return this->_M_finish; } - const_iterator end() const { return this->_M_finish; } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - size_type size() const { return size_type(end() - begin()); } - size_type max_size() const { return size_type(-1); } - size_type capacity() const { - return size_type(const_iterator(this->_M_end_of_storage._M_data, 0) - begin()); - } - bool empty() const { return begin() == end(); } - reference operator[](size_type __n) - { return *(begin() + difference_type(__n)); } - const_reference operator[](size_type __n) const - { return *(begin() + difference_type(__n)); } - - void _M_range_check(size_type __n) const { - if (__n >= this->size()) - __stl_throw_range_error("vector<bool>"); - } - - reference at(size_type __n) - { _M_range_check(__n); return (*this)[__n]; } - const_reference at(size_type __n) const - { _M_range_check(__n); return (*this)[__n]; } - - explicit __BVECTOR(const allocator_type& __a = allocator_type()) - : _STLP_PRIV _Bvector_base<_Alloc >(__a) {} - - __BVECTOR(size_type __n, bool __val, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _Bvector_base<_Alloc >(__a) { - _M_initialize(__n); - fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), __val ? ~0 : 0); - } - - explicit __BVECTOR(size_type __n) - : _STLP_PRIV _Bvector_base<_Alloc >(allocator_type()) { - _M_initialize(__n); - fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), 0); - } - - __BVECTOR(const _Self& __x) - : _STLP_PRIV _Bvector_base<_Alloc >(__x.get_allocator()) { - _M_initialize(__x.size()); - copy(__x.begin(), __x.end(), this->_M_start); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Integer> - void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type&) { - _M_initialize(__n); - fill(this->_M_start._M_p, this->_M_end_of_storage._M_data, __x ? ~0 : 0); - } - - template <class _InputIterator> - void _M_initialize_dispatch(_InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_initialize_range(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); - } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - __BVECTOR(_InputIterator __first, _InputIterator __last) - : _STLP_PRIV _Bvector_base<_Alloc >(allocator_type()) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__first, __last, _Integral()); - } -# endif - template <class _InputIterator> - __BVECTOR(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_PRIV _Bvector_base<_Alloc >(__a) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__first, __last, _Integral()); - } -#else /* _STLP_MEMBER_TEMPLATES */ - __BVECTOR(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _Bvector_base<_Alloc >(__a) { - size_type __n = distance(__first, __last); - _M_initialize(__n); - copy(__first, __last, this->_M_start); - } - __BVECTOR(const bool* __first, const bool* __last, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _Bvector_base<_Alloc >(__a) { - size_type __n = distance(__first, __last); - _M_initialize(__n); - copy(__first, __last, this->_M_start); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - __BVECTOR(__move_source<_Self> src) - : _STLP_PRIV _Bvector_base<_Alloc >(__move_source<_Base>(src.get())) {} - - ~__BVECTOR() {} - - __BVECTOR_QUALIFIED& operator=(const __BVECTOR_QUALIFIED& __x) { - if (&__x == this) return *this; - if (__x.size() > capacity()) { - this->_M_deallocate(); - _M_initialize(__x.size()); - } - copy(__x.begin(), __x.end(), begin()); - this->_M_finish = begin() + difference_type(__x.size()); - return *this; - } - - // assign(), a generalized assignment member function. Two - // versions: one that takes a count, and one that takes a range. - // The range version is a member template, so we dispatch on whether - // or not the type is an integer. - - void _M_fill_assign(size_t __n, bool __x) { - if (__n > size()) { - fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), __x ? ~0 : 0); - insert(end(), __n - size(), __x); - } - else { - erase(begin() + __n, end()); - fill(this->_M_start._M_p, (__chunk_type*)(this->_M_end_of_storage._M_data), __x ? ~0 : 0); - } - } - void assign(size_t __n, bool __x) { _M_fill_assign(__n, __x); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } - - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, const __true_type&) - { _M_fill_assign((size_t) __n, (bool) __val); } - - template <class _InputIter> - void _M_assign_dispatch(_InputIter __first, _InputIter __last, const __false_type&) - { _M_assign_aux(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); } - - template <class _InputIterator> - void _M_assign_aux(_InputIterator __first, _InputIterator __last, - const input_iterator_tag &) { - iterator __cur = begin(); - for ( ; __first != __last && __cur != end(); ++__cur, ++__first) - *__cur = *__first; - if (__first == __last) - erase(__cur, end()); - else - insert(end(), __first, __last); - } - - template <class _ForwardIterator> - void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { - size_type __len = distance(__first, __last); - if (__len < size()) - erase(copy(__first, __last, begin()), end()); - else { - _ForwardIterator __mid = __first; - advance(__mid, size()); - copy(__first, __mid, begin()); - insert(end(), __mid, __last); - } - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - void reserve(size_type __n) { - if (capacity() < __n) { - if (max_size() < __n) - __stl_throw_length_error("vector<bool>"); - unsigned int* __q = this->_M_bit_alloc(__n); - _STLP_PRIV _Bit_iterator __z(__q, 0); - this->_M_finish = copy(begin(), end(), __z); - this->_M_deallocate(); - this->_M_start = iterator(__q, 0); - this->_M_end_of_storage._M_data = __q + (__n + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - } - } - - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(end() - 1); } - const_reference back() const { return *(end() - 1); } - void push_back(bool __x) { - if (this->_M_finish._M_p != this->_M_end_of_storage._M_data) { - *(this->_M_finish) = __x; - ++this->_M_finish; - } - else - _M_insert_aux(end(), __x); - } - void swap(__BVECTOR_QUALIFIED& __x) { - _STLP_STD::swap(this->_M_start, __x._M_start); - _STLP_STD::swap(this->_M_finish, __x._M_finish); - this->_M_end_of_storage.swap(__x._M_end_of_storage); - } - iterator insert(iterator __position, bool __x = bool()) { - difference_type __n = __position - begin(); - if (this->_M_finish._M_p != this->_M_end_of_storage._M_data && __position == end()) { - *(this->_M_finish) = __x; - ++this->_M_finish; - } - else - _M_insert_aux(__position, __x); - return begin() + __n; - } - -#if defined (_STLP_MEMBER_TEMPLATES) - - template <class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, - const __true_type&) { - _M_fill_insert(__pos, (size_type) __n, (bool) __x); - } - - template <class _InputIterator> - void _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_insert_range(__pos, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); - } - - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - void insert(iterator __position, - _InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__position, __first, __last, _Integral()); - } -#else /* _STLP_MEMBER_TEMPLATES */ - void insert(iterator __position, - const_iterator __first, const_iterator __last) { - if (__first == __last) return; - size_type __n = distance(__first, __last); - if (capacity() - size() >= __n) { - _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + __n, - random_access_iterator_tag(), (difference_type*)0 ); - copy(__first, __last, __position); - this->_M_finish += __n; - } - else { - size_type __len = size() + (max)(size(), __n); - unsigned int* __q = this->_M_bit_alloc(__len); - iterator __i = copy(begin(), __position, iterator(__q, 0)); - __i = copy(__first, __last, __i); - this->_M_finish = copy(__position, end(), __i); - this->_M_deallocate(); - this->_M_end_of_storage._M_data = __q + (__len + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - this->_M_start = iterator(__q, 0); - } - } - - void insert(iterator __position, const bool* __first, const bool* __last) { - if (__first == __last) return; - size_type __n = distance(__first, __last); - if (capacity() - size() >= __n) { - _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + __n, - random_access_iterator_tag(), (difference_type*)0 ); - copy(__first, __last, __position); - this->_M_finish += __n; - } - else { - size_type __len = size() + (max)(size(), __n); - unsigned int* __q = this->_M_bit_alloc(__len); - iterator __i = copy(begin(), __position, iterator(__q, 0)); - __i = copy(__first, __last, __i); - this->_M_finish = copy(__position, end(), __i); - this->_M_deallocate(); - this->_M_end_of_storage._M_data = __q + (__len + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - this->_M_start = iterator(__q, 0); - } - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - void _M_fill_insert(iterator __position, size_type __n, bool __x) { - if (__n == 0) return; - if (capacity() - size() >= __n) { - _STLP_PRIV __copy_backward(__position, end(), this->_M_finish + difference_type(__n), - random_access_iterator_tag(), (difference_type*)0 ); - fill(__position, __position + difference_type(__n), __x); - this->_M_finish += difference_type(__n); - } - else { - size_type __len = size() + (max)(size(), __n); - unsigned int* __q = this->_M_bit_alloc(__len); - iterator __i = copy(begin(), __position, iterator(__q, 0)); - fill_n(__i, __n, __x); - this->_M_finish = copy(__position, end(), __i + difference_type(__n)); - this->_M_deallocate(); - this->_M_end_of_storage._M_data = __q + (__len + _STLP_WORD_BIT - 1)/_STLP_WORD_BIT; - this->_M_start = iterator(__q, 0); - } - } - - void insert(iterator __position, size_type __n, bool __x) { - _M_fill_insert(__position, __n, __x); - } - - void pop_back() { - --this->_M_finish; - } - iterator erase(iterator __position) { - if (__position + 1 != end()) - copy(__position + 1, end(), __position); - --this->_M_finish; - return __position; - } - iterator erase(iterator __first, iterator __last) { - this->_M_finish = copy(__last, end(), __first); - return __first; - } - void resize(size_type __new_size, bool __x = bool()) { - if (__new_size < size()) - erase(begin() + difference_type(__new_size), end()); - else - insert(end(), __new_size - size(), __x); - } - void flip() { - for (unsigned int* __p = this->_M_start._M_p; __p != this->_M_end_of_storage._M_data; ++__p) - *__p = ~*__p; - } - - void clear() { erase(begin(), end()); } -}; - -#if defined (_STLP_NO_BOOL) || defined (__HP_aCC) // fixed soon (03/17/2000) -# define _STLP_TEMPLATE_HEADER __BVEC_TMPL_HEADER -# define _STLP_TEMPLATE_CONTAINER __BVECTOR_QUALIFIED -# include <stl/_relops_cont.h> -# undef _STLP_TEMPLATE_CONTAINER -# undef _STLP_TEMPLATE_HEADER -#endif /* NO_BOOL */ - -#if defined (_STLP_DEBUG) && !defined (_STLP_NO_BOOL) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#undef vector -#undef _Alloc -#undef _STLP_VECBOOL_TEMPLATE -#undef __BVECTOR -#undef __BVECTOR_QUALIFIED -#undef __BVEC_TMPL_HEADER - -#undef _STLP_WORD_BIT - -#endif /* _STLP_INTERNAL_BVECTOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_carray.h b/WebKit/android/stlport/stl/_carray.h deleted file mode 100644 index 560bab2..0000000 --- a/WebKit/android/stlport/stl/_carray.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (c) 2005 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_CARRAY_H -#define _STLP_CARRAY_H - -/* Purpose: Mimic a pur C array with the additionnal feature of - * being able to be used with type not default constructible. - */ - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, size_t _Nb> -struct _CArray { - _CArray (const _Tp& __val) { - for (size_t __i = 0; __i < _Nb; ++__i) { - _Copy_Construct(__REINTERPRET_CAST(_Tp*, _M_data + __i * sizeof(_Tp)), __val); - } - } - - ~_CArray() { - _Destroy_Range(__REINTERPRET_CAST(_Tp*, _M_data + 0), - __REINTERPRET_CAST(_Tp*, _M_data + _Nb * sizeof(_Tp))); - } - - _Tp& operator [] (size_t __i) { - _STLP_ASSERT(__i < _Nb) - return *__REINTERPRET_CAST(_Tp*, _M_data + __i * sizeof(_Tp)); - } - -private: - char _M_data[sizeof(_Tp) * _Nb]; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif //_STLP_CARRAY_H diff --git a/WebKit/android/stlport/stl/_cctype.h b/WebKit/android/stlport/stl/_cctype.h deleted file mode 100644 index 935c936..0000000 --- a/WebKit/android/stlport/stl/_cctype.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CCTYPE -#define _STLP_INTERNAL_CCTYPE - -#if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cctype) -#else -# include <ctype.h> -#endif /* _STLP_USE_NEW_C_HEADERS */ - -#if ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -# if defined ( _STLP_IMPORT_VENDOR_CSTD ) -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::isalnum; -using _STLP_VENDOR_CSTD::isalpha; -using _STLP_VENDOR_CSTD::iscntrl; -using _STLP_VENDOR_CSTD::isdigit; -using _STLP_VENDOR_CSTD::isgraph; -using _STLP_VENDOR_CSTD::islower; -using _STLP_VENDOR_CSTD::isprint; -using _STLP_VENDOR_CSTD::ispunct; -using _STLP_VENDOR_CSTD::isspace; -using _STLP_VENDOR_CSTD::isupper; -using _STLP_VENDOR_CSTD::isxdigit; -using _STLP_VENDOR_CSTD::tolower; -using _STLP_VENDOR_CSTD::toupper; -_STLP_END_NAMESPACE -# endif /* _STLP_IMPORT_VENDOR_CSTD*/ -#endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ - -#endif diff --git a/WebKit/android/stlport/stl/_check_config.h b/WebKit/android/stlport/stl/_check_config.h deleted file mode 100644 index 9dab3ca..0000000 --- a/WebKit/android/stlport/stl/_check_config.h +++ /dev/null @@ -1,24 +0,0 @@ -// This file is reserved to site configuration purpose -// and should NEVER be overridden by user - -/* - * Consistency check : if we use SGI iostreams, we have to use consistent - * thread model (single-threaded or multi-threaded) with the compiled library - * - * Default is multithreaded build. If you want to build and use single-threaded - * STLport, please change _STLP_NOTHREADS configuration setting above and rebuild the library - * - */ - -# if !defined(_STLP_USE_NO_IOSTREAMS) && !defined(_STLP_NO_THREADS) && !defined(_REENTRANT) - -# if defined(_MSC_VER) && !defined(__MWERKS__) && !defined (__COMO__) && !defined(_MT) -# error "Only multi-threaded runtime library may be linked with STLport!" -# endif - -// boris : you may change that to build non-threadsafe STLport library -# if defined (__BUILDING_STLPORT) /* || defined (_STLP_DEBUG) */ -# define _REENTRANT 1 -# endif - -# endif diff --git a/WebKit/android/stlport/stl/_clocale.h b/WebKit/android/stlport/stl/_clocale.h deleted file mode 100644 index 4ecdee8..0000000 --- a/WebKit/android/stlport/stl/_clocale.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CLOCALE -#define _STLP_INTERNAL_CLOCALE - -#if !defined (_STLP_WCE_EVC3) - -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(clocale) -# else -# include _STLP_NATIVE_C_HEADER(locale.h) -# endif - -# if defined (_STLP_IMPORT_VENDOR_CSTD) -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::lconv; -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -using _STLP_VENDOR_CSTD::localeconv; -using _STLP_VENDOR_CSTD::setlocale; -# endif -_STLP_END_NAMESPACE -# endif - -#endif /* !_STLP_WCE_EVC3 */ - -#endif diff --git a/WebKit/android/stlport/stl/_cmath.h b/WebKit/android/stlport/stl/_cmath.h deleted file mode 100644 index a715f00..0000000 --- a/WebKit/android/stlport/stl/_cmath.h +++ /dev/null @@ -1,560 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CMATH -#define _STLP_INTERNAL_CMATH - -/* gcc do not like when a using directive appear after a function - * declaration. cmath have abs overloads and cstdlib a using directive - * so cstdlib has to be included first. - */ -#if defined (__GNUC__) && defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cstdlib) -#endif - -#if defined (_STLP_USE_NEW_C_HEADERS) -# if defined (_STLP_HAS_NO_NAMESPACES) && !defined (exception) -# define exception __math_exception -# endif -# include _STLP_NATIVE_CPP_C_HEADER(cmath) -# if defined (_STLP_HAS_NO_NAMESPACES) -# undef exception -# endif -#else -# include <math.h> -#endif - -#if (defined (__SUNPRO_CC) && (__SUNPRO_CC > 0x500)) || \ - !(defined (__IBMCPP__) && (__IBMCPP__ >= 500) || !(defined(__HP_aCC) && (__HP_aCC >= 30000) )) -# ifndef _STLP_HAS_NO_NAMESPACES -namespace std { -# endif -extern "C" double hypot(double x, double y); -# ifndef _STLP_HAS_NO_NAMESPACES -} -# endif - -#endif - -#if defined (__sun) && defined (__GNUC__) -extern "C" { - float __cosf(float v); - float __sinf(float v); - float __atan2f(float, float); - float __coshf(float v); - float __sinhf(float v); - float __sqrtf(float v); - float __expf(float v); - float __logf(float v); - float __log10f(float v); - - long double __cosl(long double v); - long double __sinl(long double v); - long double __atan2l(long double, long double); - long double __coshl(long double v); - long double __sinhl(long double v); - long double __sqrtl(long double v); - long double __expl(long double v); - long double __logl(long double v); - long double __log10l(long double v); -} - -extern "C" { - inline float cosf(float v) { return __cosf(v); } - inline float sinf(float v) { return __sinf(v); } - inline float atan2f(float v1, float v2) { return __atan2f(v1,v2); } - inline float coshf(float v) { return __coshf(v); } - inline float sinhf(float v) { return __sinhf(v); } - inline float sqrtf(float v) { return __sqrtf(v); } - inline float expf(float v) { return __expf(v); } - inline float logf(float v) { return __logf(v); } - inline float log10f(float v) { return __log10f(v); } - - inline long double cosl(long double v) { return __cosl(v); } - inline long double sinl(long double v) { return __sinl(v); } - inline long double atan2l(long double v1, long double v2) { return __atan2l(v1,v2); } - inline long double coshl(long double v) { return __coshl(v); } - inline long double sinhl(long double v) { return __sinhl(v); } - inline long double sqrtl(long double v) { return __sqrtl(v); } - inline long double expl(long double v) { return __expl(v); } - inline long double logl(long double v) { return __logl(v); } - inline long double log10l(long double v) { return __log10l(v); } -} -#endif // __sun && __GNUC__ - -#if defined (__sun) -extern "C" { -extern float __acosf(float); -extern float __asinf(float); -extern float __atanf(float); -extern float __atan2f(float, float); -extern float __ceilf(float); -extern float __cosf(float); -extern float __coshf(float); -extern float __expf(float); -extern float __fabsf(float); -extern float __floorf(float); -extern float __fmodf(float, float); -extern float __frexpf(float, int *); -extern float __ldexpf(float, int); -extern float __logf(float); -extern float __log10f(float); -extern float __modff(float, float *); -extern float __powf(float, float); -extern float __sinf(float); -extern float __sinhf(float); -extern float __sqrtf(float); -extern float __tanf(float); -extern float __tanhf(float); - -extern long double __acosl(long double); -extern long double __asinl(long double); -extern long double __atanl(long double); -extern long double __atan2l(long double, long double); -extern long double __ceill(long double); -extern long double __cosl(long double); -extern long double __coshl(long double); -extern long double __expl(long double); -extern long double __fabsl(long double); -extern long double __floorl(long double); -extern long double __fmodl(long double, long double); -extern long double __frexpl(long double, int *); -extern long double __ldexpl(long double, int); -extern long double __logl(long double); -extern long double __log10l(long double); -extern long double __modfl(long double, long double *); -extern long double __powl(long double, long double); -extern long double __sinl(long double); -extern long double __sinhl(long double); -extern long double __sqrtl(long double); -extern long double __tanl(long double); -extern long double __tanhl(long double); -} -#endif - -#if defined (__BORLANDC__) -# define _STLP_CMATH_FUNC_NAMESPACE _STLP_VENDOR_CSTD -#else -# define _STLP_CMATH_FUNC_NAMESPACE -#endif - -#if !defined (__sun) || defined (__GNUC__) -# define _STLP_MATH_INLINE(float_type, func, cfunc) \ - inline float_type func (float_type x) { return _STLP_CMATH_FUNC_NAMESPACE::cfunc(x); } -# define _STLP_MATH_INLINE2(float_type, type, func, cfunc) \ - inline float_type func (float_type x, type y) { return _STLP_CMATH_FUNC_NAMESPACE::cfunc(x, y); } -# define _STLP_MATH_INLINE_D(float_type, func, cfunc) -# define _STLP_MATH_INLINE2_D(float_type, type, func, cfunc) -#else -# ifdef __SUNPRO_CC -# define _STLP_MATH_INLINE(float_type, func, cfunc) \ - inline float_type func (float_type x) { return _STLP_VENDOR_CSTD::__##cfunc(x); } -# define _STLP_MATH_INLINE_D(float_type, func, cfunc) \ - inline float_type func (float_type x) { return _STLP_VENDOR_CSTD::cfunc(x); } -# define _STLP_MATH_INLINE2(float_type, type, func, cfunc) \ - inline float_type func (float_type x, type y) { return _STLP_VENDOR_CSTD::__##cfunc(x,y); } -# define _STLP_MATH_INLINE2_D(float_type, type, func, cfunc) \ - inline float_type func (float_type x, type y) { return _STLP_VENDOR_CSTD::cfunc(x,y); } -# else -# error Unknown compiler for the Sun platform -# endif -#endif - -/** macros to define math functions -These macros (having an X somewhere in the name) forward to the C library's -double functions but cast the arguments and return values to the given type. */ - -#define _STLP_MATH_INLINEX(__type,func,cfunc) \ - inline __type func (__type x) \ - { return __STATIC_CAST(__type, _STLP_CMATH_FUNC_NAMESPACE::cfunc((double)x)); } -#define _STLP_MATH_INLINE2X(__type1,__type2,func,cfunc) \ - inline __type1 func (__type1 x, __type2 y) \ - { return __STATIC_CAST(__type1, _STLP_CMATH_FUNC_NAMESPACE::cfunc((double)x, y)); } -#define _STLP_MATH_INLINE2PX(__type,func,cfunc) \ - inline __type func (__type x, __type *y) { \ - double tmp1, tmp2; \ - tmp1 = _STLP_CMATH_FUNC_NAMESPACE::cfunc(__STATIC_CAST(double, x), &tmp2); \ - *y = __STATIC_CAST(__type, tmp2); \ - return __STATIC_CAST(__type, tmp1); \ - } -#define _STLP_MATH_INLINE2XX(__type,func,cfunc) \ - inline __type func (__type x, __type y) \ - { return __STATIC_CAST(__type, _STLP_CMATH_FUNC_NAMESPACE::cfunc((double)x, (double)y)); } - - -/** rough characterization of compiler and native C library -For the compiler, it can either support long double or not. If it doesn't, the -macro _STLP_NO_LONG_DOUBLE is not defined and we don't define any long double -overloads. -For the native C library the question is whether it has variants with an 'f' -suffix (for float as opposed to double) or an 'l' suffix (for long double). If -the float variants are missing, _STLP_NO_VENDOR_MATH_F is defined, when the -long double variants are missing, _STLP_NO_VENDOR_MATH_L is defined. Of course -the latter doesn't make sense anyway when the compiler already has no long -double support. - -Those two traits determine a) which overloads get defined and b) how they are -defined. - -Meaning of suffixes: -"" : function returning and taking a float_type -"2" : function returning a float_type and taking to float_types -"2P" : function returning a float_type and taking a float_type and a float_type* -"2PI": function returning a float_type and taking a float_type and an int* -"2I" : function returning a float_type and taking a float_Type and an int -*/ - -#if !defined (_STLP_NO_LONG_DOUBLE) && !defined (_STLP_NO_VENDOR_MATH_L) && !defined (_STLP_NO_VENDOR_MATH_F) - // long double support and both e.g. sinl(long double) and sinf(float) - // This is the default for a correct and complete native library. -# define _STLP_DEF_MATH_INLINE(func,cf) \ - _STLP_MATH_INLINE(float,func,cf##f) \ - _STLP_MATH_INLINE_D(double,func,cf) \ - _STLP_MATH_INLINE(long double,func,cf##l) -# define _STLP_DEF_MATH_INLINE2(func,cf) \ - _STLP_MATH_INLINE2(float,float,func,cf##f) \ - _STLP_MATH_INLINE2_D(double,double,func,cf) \ - _STLP_MATH_INLINE2(long double,long double,func,cf##l) -# define _STLP_DEF_MATH_INLINE2P(func,cf) \ - _STLP_MATH_INLINE2(float,float *,func,cf##f) \ - _STLP_MATH_INLINE2_D(double,double *,func,cf) \ - _STLP_MATH_INLINE2(long double,long double *,func,cf##l) -# define _STLP_DEF_MATH_INLINE2PI(func,cf) \ - _STLP_MATH_INLINE2(float,int *,func,cf##f) \ - _STLP_MATH_INLINE2_D(double,int *,func,cf) \ - _STLP_MATH_INLINE2(long double,int *,func,cf##l) -# define _STLP_DEF_MATH_INLINE2I(func,cf) \ - _STLP_MATH_INLINE2(float,int,func,cf##f) \ - _STLP_MATH_INLINE2_D(double,int,func,cf) \ - _STLP_MATH_INLINE2(long double,int,func,cf##l) -#else -# if !defined (_STLP_NO_LONG_DOUBLE) -# if !defined (_STLP_NO_VENDOR_MATH_F) - // long double support and e.g. sinf(float) but not e.g. sinl(long double) -# define _STLP_DEF_MATH_INLINE(func,cf) \ - _STLP_MATH_INLINE(float,func,cf##f) \ - _STLP_MATH_INLINEX(long double,func,cf) -# define _STLP_DEF_MATH_INLINE2(func,cf) \ - _STLP_MATH_INLINE2(float,float,func,cf##f) \ - _STLP_MATH_INLINE2XX(long double,func,cf) -# define _STLP_DEF_MATH_INLINE2P(func,cf) \ - _STLP_MATH_INLINE2(float,float *,func,cf##f) \ - _STLP_MATH_INLINE2PX(long double,func,cf) -# define _STLP_DEF_MATH_INLINE2PI(func,cf) \ - _STLP_MATH_INLINE2(float,int *,func,cf##f) \ - _STLP_MATH_INLINE2X(long double,int *,func,cf) -# define _STLP_DEF_MATH_INLINE2I(func,cf) \ - _STLP_MATH_INLINE2(float,int,func,cf##f) \ - _STLP_MATH_INLINE2X(long double,int,func,cf) -# elif !defined (_STLP_NO_VENDOR_MATH_L) - // long double support and e.g. sinl(long double) but not e.g. sinf(float) -# define _STLP_DEF_MATH_INLINE(func,cf) \ - _STLP_MATH_INLINEX(float,func,cf) \ - _STLP_MATH_INLINE(long double,func,cf##l) -# define _STLP_DEF_MATH_INLINE2(func,cf) \ - _STLP_MATH_INLINE2XX(float,func,cf) \ - _STLP_MATH_INLINE2(long double,long double,func,cf##l) -# define _STLP_DEF_MATH_INLINE2P(func,cf) \ - _STLP_MATH_INLINE2PX(float,func,cf) \ - _STLP_MATH_INLINE2(long double,long double *,func,cf##l) -# define _STLP_DEF_MATH_INLINE2PI(func,cf) \ - _STLP_MATH_INLINE2X(float,int *,func,cf) \ - _STLP_MATH_INLINE2(long double,int *,func,cf##l) -# define _STLP_DEF_MATH_INLINE2I(func,cf) \ - _STLP_MATH_INLINE2X(float,int,func,cf) \ - _STLP_MATH_INLINE2(long double,int,func,cf##l) -# else -# define _STLP_DEF_MATH_INLINE(func,cf) \ - _STLP_MATH_INLINEX(float,func,cf) \ - _STLP_MATH_INLINEX(long double,func,cf) -# define _STLP_DEF_MATH_INLINE2(func,cf) \ - _STLP_MATH_INLINE2XX(float,func,cf) \ - _STLP_MATH_INLINE2XX(long double,func,cf) -# define _STLP_DEF_MATH_INLINE2P(func,cf) \ - _STLP_MATH_INLINE2PX(float,func,cf) \ - _STLP_MATH_INLINE2PX(long double,func,cf) -# define _STLP_DEF_MATH_INLINE2PI(func,cf) \ - _STLP_MATH_INLINE2X(float,int *,func,cf) \ - _STLP_MATH_INLINE2X(long double,int *,func,cf) -# define _STLP_DEF_MATH_INLINE2I(func,cf) \ - _STLP_MATH_INLINE2X(float,int,func,cf) \ - _STLP_MATH_INLINE2X(long double,int,func,cf) -# endif -# else -# if !defined (_STLP_NO_VENDOR_MATH_F) -# define _STLP_DEF_MATH_INLINE(func,cf) \ - _STLP_MATH_INLINE(float,func,cf##f) -# define _STLP_DEF_MATH_INLINE2(func,cf) \ - _STLP_MATH_INLINE2(float,float,func,cf##f) -# define _STLP_DEF_MATH_INLINE2P(func,cf) \ - _STLP_MATH_INLINE2(float,float *,func,cf##f) -# define _STLP_DEF_MATH_INLINE2PI(func,cf) \ - _STLP_MATH_INLINE2(float,int *,func,cf##f) -# define _STLP_DEF_MATH_INLINE2I(func,cf) \ - _STLP_MATH_INLINE2(float,int,func,cf##f) -# else // _STLP_NO_VENDOR_MATH_F - // neither long double support nor e.g. sinf(float) functions -# define _STLP_DEF_MATH_INLINE(func,cf) \ - _STLP_MATH_INLINEX(float,func,cf) -# define _STLP_DEF_MATH_INLINE2(func,cf) \ - _STLP_MATH_INLINE2XX(float,func,cf) -# define _STLP_DEF_MATH_INLINE2P(func,cf) \ - _STLP_MATH_INLINE2PX(float,func,cf) -# define _STLP_DEF_MATH_INLINE2PI(func,cf) \ - _STLP_MATH_INLINE2X(float,int *,func,cf) -# define _STLP_DEF_MATH_INLINE2I(func,cf) \ - _STLP_MATH_INLINE2X(float,int,func,cf) -# endif // _STLP_NO_VENDOR_MATH_F -# endif -#endif - -#if defined (_STLP_WCE) || \ - (defined(_STLP_MSVC) && (_STLP_MSVC <= 1300) && defined (_MSC_EXTENSIONS) /* && !defined(_STLP_WCE_NET) */) -/* - * dums: VC6 has all the required C++ functions but only define them if - * _MSC_EXTENSIONS is not defined (a bug?). STLport just do the same - * thing also when _MSC_EXTENSIONS is defined. - * TODO: above check (_STLP_MSVC <= 1300) also catches VC7.0, is that intended? - */ -//We have to tell the compilers that abs, acos ... math functions are not intrinsic -//otherwise we have Internal Compiler Error in release mode... -# pragma warning(push) -# pragma warning(disable: 4162) // no function with C linkage found -# pragma warning(disable: 4163) // not available as an intrinsic function -# pragma function (abs, acos, asin, atan, atan2, cos, cosh, exp, fabs, fmod, log, log10, sin, sinh, sqrt, tan, tanh) -# if defined (_STLP_WCE) -# pragma function (ceil, floor) -# endif -# define _STLP_RESTORE_FUNCTION_INTRINSIC -#endif // _STLP_MSVC && _STLP_MSVC <= 1300 && !_STLP_WCE && _MSC_EXTENSIONS - -#if defined (__BORLANDC__) && defined (_STLP_USE_NEW_C_HEADERS) -/* In this config Borland native lib only define functions in std namespace. - * In order to have all overloads in STLport namespace we need to add the - * double overload in global namespace. We do not use a using statement to avoid - * import of invalid overload. - */ -# define _STLP_DMATH_INLINE(func) _STLP_MATH_INLINE(double, func, func) -# define _STLP_DMATH_INLINE2(func) _STLP_MATH_INLINE2(double, double, func, func) - -_STLP_DMATH_INLINE(acos) -_STLP_DMATH_INLINE(asin) -_STLP_DMATH_INLINE(atan) -_STLP_DMATH_INLINE2(atan2) -_STLP_DMATH_INLINE(ceil) -_STLP_DMATH_INLINE(cos) -_STLP_DMATH_INLINE(cosh) -_STLP_DMATH_INLINE(exp) -_STLP_DMATH_INLINE(fabs) -_STLP_DMATH_INLINE(floor) -_STLP_DMATH_INLINE2(fmod) -_STLP_MATH_INLINE2X(double, int*, frexp, frexp) -_STLP_MATH_INLINE2X(double, int, ldexp, ldexp) -_STLP_DMATH_INLINE(log) -_STLP_DMATH_INLINE(log10) -_STLP_MATH_INLINE2PX(double, modf, modf) -_STLP_DMATH_INLINE(sin) -_STLP_DMATH_INLINE(sinh) -_STLP_DMATH_INLINE(sqrt) -_STLP_DMATH_INLINE(tan) -_STLP_DMATH_INLINE(tanh) -_STLP_DMATH_INLINE2(pow) -_STLP_DMATH_INLINE2(hypot) - -# undef _STLP_DMATH_INLINE -# undef _STLP_DMATH_INLINE2 -#endif - -#if defined (__DMC__) -# if defined (fabs) -inline double __stlp_fabs(double __x) { return fabs(__x); } -# undef fabs -inline double fabs(double __x) { return __stlp_fabs(__x); } -# endif -# if defined (cos) -inline double __stlp_cos(double __x) { return cos(__x); } -# undef cos -inline double cos(double __x) { return __stlp_cos(__x); } -# endif -# if defined (sin) -inline double __stlp_sin(double __x) { return sin(__x); } -# undef sin -inline double sin(double __x) { return __stlp_sin(__x); } -# endif -# if defined (sqrt) -inline double __stlp_sqrt(double __x) { return sqrt(__x); } -# undef sqrt -inline double sqrt(double __x) { return __stlp_sqrt(__x); } -# endif -# if defined (ldexp) -inline double __stlp_ldexp(double __x, int __y) { return ldexp(__x, __y); } -# undef ldexp -inline double ldexp(double __x, int __y) { return __stlp_ldexp(__x, __y); } -# endif -#endif - -/* MSVC native lib starting with .Net 2003 has already all math functions - * in global namespace. - * HP-UX native lib has math functions in the global namespace. - */ -#if (!defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1310) || defined(UNDER_CE)) && \ - (!defined (__HP_aCC) || (__HP_aCC < 30000)) -inline double abs(double __x) -{ return ::fabs(__x); } -# if !defined (__MVS__) -_STLP_DEF_MATH_INLINE(abs, fabs) -# else // __MVS__ has native long double abs? -inline float abs(float __x) { return ::fabsf(__x); } -# endif - -_STLP_DEF_MATH_INLINE(acos, acos) -_STLP_DEF_MATH_INLINE(asin, asin) -_STLP_DEF_MATH_INLINE(atan, atan) -_STLP_DEF_MATH_INLINE2(atan2, atan2) -_STLP_DEF_MATH_INLINE(ceil, ceil) -_STLP_DEF_MATH_INLINE(cos, cos) -_STLP_DEF_MATH_INLINE(cosh, cosh) -_STLP_DEF_MATH_INLINE(exp, exp) -_STLP_DEF_MATH_INLINE(fabs, fabs) -_STLP_DEF_MATH_INLINE(floor, floor) -_STLP_DEF_MATH_INLINE2(fmod, fmod) -_STLP_DEF_MATH_INLINE2PI(frexp, frexp) -_STLP_DEF_MATH_INLINE2I(ldexp, ldexp) -_STLP_DEF_MATH_INLINE(log, log) -_STLP_DEF_MATH_INLINE(log10, log10) -_STLP_DEF_MATH_INLINE2P(modf, modf) -_STLP_DEF_MATH_INLINE(sin, sin) -_STLP_DEF_MATH_INLINE(sinh, sinh) -_STLP_DEF_MATH_INLINE(sqrt, sqrt) -_STLP_DEF_MATH_INLINE(tan, tan) -_STLP_DEF_MATH_INLINE(tanh, tanh) -_STLP_DEF_MATH_INLINE2(pow, pow) - -# if !defined(_STLP_MSVC) /* || (_STLP_MSVC > 1300) */ || defined(_STLP_WCE) || !defined (_MSC_EXTENSIONS) /* && !defined(_STLP_WCE_NET) */ -# ifndef _STLP_NO_VENDOR_MATH_F -# ifndef __sun -inline float pow(float __x, int __y) { return _STLP_CMATH_FUNC_NAMESPACE::powf(__x, __STATIC_CAST(float,__y)); } -# else -inline float pow(float __x, int __y) { return ::__powf(__x, __STATIC_CAST(float,__y)); } -# endif -# else -inline float pow(float __x, int __y) { return __STATIC_CAST(float, _STLP_CMATH_FUNC_NAMESPACE::pow(__x, __STATIC_CAST(float,__y))); } -# endif -inline double pow(double __x, int __y) { return _STLP_CMATH_FUNC_NAMESPACE::pow(__x, __STATIC_CAST(double,__y)); } -# if !defined (_STLP_NO_LONG_DOUBLE) -# if !defined(_STLP_NO_VENDOR_MATH_L) -# ifndef __sun -inline long double pow(long double __x, int __y) { return _STLP_CMATH_FUNC_NAMESPACE::powl(__x, __STATIC_CAST(long double,__y)); } -# else -# ifndef __SUNPRO_CC -inline long double pow(long double __x, int __y) { return ::__powl(__x, __STATIC_CAST(long double,__y)); } -# else -inline long double pow(long double __x, int __y) { return _STLP_VENDOR_CSTD::__powl(__x, __STATIC_CAST(long double,__y)); } -# endif -# endif -# else -inline long double pow(long double __x, int __y) { return __STATIC_CAST(long double, _STLP_CMATH_FUNC_NAMESPACE::pow(__x, __STATIC_CAST(long double,__y))); } -# endif -# endif -# else -//The MS native pow version has a bugged overload so it is not imported -//in the STLport namespace. -//Here is the bugged version: -//inline double pow(int __x, int __y) { return (_Pow_int(__x, __y)); } -inline double pow(double __x, int __y) { return (_Pow_int(__x, __y)); } -inline float pow(float __x, int __y) { return (_Pow_int(__x, __y)); } -inline long double pow(long double __x, int __y) { return (_Pow_int(__x, __y)); } -# endif -#endif - -#if (defined (_STLP_MSVC) && !defined (_STLP_WCE)) || defined (__ICL) || defined (__sun) -# if defined (_STLP_MSVC) && (_STLP_MSVC >= 1400) -# pragma warning (push) -# pragma warning (disable : 4996) // hypot is deprecated. -# endif -_STLP_MATH_INLINE2XX(float, hypot, hypot) -inline long double hypot(long double x, long double y) { return sqrt(x * x + y * y); } -# if defined (_STLP_MSVC) && (_STLP_MSVC >= 1400) -# pragma warning (pop) -# endif -#else -# if defined (_STLP_USE_UCLIBC) -inline double hypot(double x, double y) { return sqrt(x * x + y * y); } -_STLP_DEF_MATH_INLINE2(hypot, hypot) -# elif defined (_STLP_WCE) - /* CE has a double _hypot(double,double) which we use */ -inline double hypot(double __x, double __y) { return _hypot(__x,__y); } -_STLP_DEF_MATH_INLINE2(hypot, _hypot) -# endif -#endif - -#if defined (_STLP_RESTORE_FUNCTION_INTRINSIC) -//restoration of the default intrinsic status of those functions: -# pragma intrinsic (abs, acos, asin, atan, atan2, cos, cosh, exp, fabs, fmod, log, log10, sin, sinh, sqrt, tan, tanh) -# if defined (_STLP_WCE) -# pragma intrinsic (ceil, floor) -# endif -# pragma warning(pop) -# undef _STLP_RESTORE_FUNCTION_INTRINSIC -#endif // _STLP_MSVC && _STLP_MSVC <= 1300 && !_STLP_WCE && _MSC_EXTENSIONS - -/* C++ Standard is unclear about several call to 'using ::func' if new overloads - * of ::func appears between 2 successive 'using' calls. To avoid this potential - * problem we provide all abs overload before the 'using' call. - * Beware: This header inclusion has to be after all abs overload of this file. - * The first 'using ::abs' call is going to be in the other header. - */ -#ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_CSTD) && !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -_STLP_BEGIN_NAMESPACE -using ::abs; -using ::acos; -using ::asin; -using ::atan; -using ::atan2; -using ::ceil; -using ::cos; -using ::cosh; -using ::exp; -using ::fabs; -using ::floor; -using ::fmod; -using ::frexp; -using ::hypot; -using ::ldexp; -using ::log; -using ::log10; -using ::modf; -using ::pow; -using ::sin; -using ::sinh; -using ::sqrt; -using ::tan; -using ::tanh; -_STLP_END_NAMESPACE -# if defined (__BORLANDC__) && (__BORLANDC__ >= 0x560) -using _STLP_VENDOR_CSTD::_ecvt; -using _STLP_VENDOR_CSTD::_fcvt; -# endif -#endif - -#endif /* _STLP_INTERNAL_CMATH */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_codecvt.h b/WebKit/android/stlport/stl/_codecvt.h deleted file mode 100644 index caee7f3..0000000 --- a/WebKit/android/stlport/stl/_codecvt.h +++ /dev/null @@ -1,425 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_CODECVT_H -#define _STLP_INTERNAL_CODECVT_H - -#ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -#endif - -#ifndef _STLP_INTERNAL_LOCALE_H -# include <stl/_locale.h> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -_STLP_BEGIN_NAMESPACE - -class _STLP_CLASS_DECLSPEC codecvt_base { -public: - enum result {ok, partial, error, noconv}; -}; - -template <class _InternT, class _ExternT, class _StateT> -class codecvt : public locale::facet, public codecvt_base { -public: - typedef _InternT intern_type; - typedef _ExternT extern_type; - typedef _StateT state_type; - -#if defined (_STLP_MSVC) && (_STLP_MSVC < 1300) - /* For the moment VC6 do not support this facet default implementation - * because of the static locale::id instance. When VC6 see this definition - * it goes crasy with locale::id static instances and all the has_facet tests - * unit tests are failing. - */ -}; -#else - explicit codecvt(size_t __refs = 0) : locale::facet(__refs) {} - - result out(state_type& __state, - const intern_type* __from, - const intern_type* __from_end, - const intern_type*& __from_next, - extern_type* __to, - extern_type* __to_limit, - extern_type*& __to_next) const { - return do_out(__state, - __from, __from_end, __from_next, - __to, __to_limit, __to_next); - } - - result unshift(state_type& __state, - extern_type* __to, - extern_type* __to_limit, - extern_type*& __to_next) const { - return do_unshift(__state, __to, __to_limit, __to_next); - } - - result in(state_type& __state, - const extern_type* __from, - const extern_type* __from_end, - const extern_type*& __from_next, - intern_type* __to, - intern_type* __to_limit, - intern_type*& __to_next) const { - return do_in(__state, - __from, __from_end, __from_next, - __to, __to_limit, __to_next); - } - - int encoding() const _STLP_NOTHROW { return do_encoding(); } - - bool always_noconv() const _STLP_NOTHROW { return do_always_noconv(); } - - int length(const state_type& __state, - const extern_type* __from, - const extern_type* __end, - size_t __max) const { - return do_length(__state, __from, __end, __max); - } - - int max_length() const _STLP_NOTHROW { return do_max_length(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~codecvt() {} - - virtual result do_out(state_type&, - const intern_type* __from, - const intern_type*, - const intern_type*& __from_next, - extern_type* __to, - extern_type*, - extern_type*& __to_next) const - { __from_next = __from; __to_next = __to; return noconv; } - - virtual result do_in (state_type&, - const extern_type* __from, - const extern_type*, - const extern_type*& __from_next, - intern_type* __to, - intern_type*, - intern_type*& __to_next) const - { __from_next = __from; __to_next = __to; return noconv; } - - virtual result do_unshift(state_type&, - extern_type* __to, - extern_type*, - extern_type*& __to_next) const - { __to_next = __to; return noconv; } - - virtual int do_encoding() const _STLP_NOTHROW - { return 1; } - - virtual bool do_always_noconv() const _STLP_NOTHROW - { return true; } - - virtual int do_length(const state_type&, - const extern_type* __from, - const extern_type* __end, - size_t __max) const - { return (int)(min) ( __STATIC_CAST(size_t, (__end - __from)), __max); } - - virtual int do_max_length() const _STLP_NOTHROW - { return 1; } - -private: - codecvt(const codecvt<intern_type, extern_type, state_type>&); - codecvt<intern_type, extern_type, state_type>& operator = (const codecvt<intern_type, extern_type, state_type>&); -}; - -# if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# if (_STLP_STATIC_TEMPLATE_DATA > 0) -# if !defined (__BORLANDC__) -template <class _InternT, class _ExternT, class _StateT> -locale::id codecvt<_InternT, _ExternT, _StateT>::id; -# endif -# endif -# endif -#endif - -template <class _InternT, class _ExternT, class _StateT> -class codecvt_byname : public codecvt<_InternT, _ExternT, _StateT> {}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC codecvt<char, char, mbstate_t> - : public locale::facet, public codecvt_base -{ - friend class _Locale_impl; - -public: - typedef char intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - explicit codecvt(size_t __refs = 0) : locale::facet(__refs) {} - - result out(mbstate_t& __state, - const char* __from, - const char* __from_end, - const char*& __from_next, - char* __to, - char* __to_limit, - char*& __to_next) const { - return do_out(__state, - __from, __from_end, __from_next, - __to, __to_limit, __to_next); - } - - result unshift(mbstate_t& __state, - char* __to, char* __to_limit, char*& __to_next) const - { return do_unshift(__state, __to, __to_limit, __to_next); } - - result in(state_type& __state, - const char* __from, - const char* __from_end, - const char*& __from_next, - char* __to, - char* __to_limit, - char*& __to_next) const { - return do_in(__state, - __from, __from_end, __from_next, - __to, __to_limit, __to_next); - } - - int encoding() const _STLP_NOTHROW { return do_encoding(); } - - bool always_noconv() const _STLP_NOTHROW { return do_always_noconv(); } - - int length(const state_type& __state, - const char* __from, const char* __end, - size_t __max) const - { return do_length(__state, __from, __end, __max); } - - int max_length() const _STLP_NOTHROW { return do_max_length(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~codecvt(); - - virtual result do_out(mbstate_t& /* __state */, - const char* __from, - const char* /* __from_end */, - const char*& __from_next, - char* __to, - char* /* __to_limit */, - char*& __to_next) const; - - virtual result do_in (mbstate_t& /* __state */ , - const char* __from, - const char* /* __from_end */, - const char*& __from_next, - char* __to, - char* /* __to_end */, - char*& __to_next) const; - - virtual result do_unshift(mbstate_t& /* __state */, - char* __to, - char* /* __to_limit */, - char*& __to_next) const; - - virtual int do_encoding() const _STLP_NOTHROW; - virtual bool do_always_noconv() const _STLP_NOTHROW; - virtual int do_length(const mbstate_t& __state, - const char* __from, - const char* __end, - size_t __max) const; - virtual int do_max_length() const _STLP_NOTHROW; -private: - codecvt(const codecvt<char, char, mbstate_t>&); - codecvt<char, char, mbstate_t>& operator =(const codecvt<char, char, mbstate_t>&); -}; - -# ifndef _STLP_NO_WCHAR_T - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC codecvt<wchar_t, char, mbstate_t> - : public locale::facet, public codecvt_base -{ - friend class _Locale_impl; -public: - typedef wchar_t intern_type; - typedef char extern_type; - typedef mbstate_t state_type; - - explicit codecvt(size_t __refs = 0) : locale::facet(__refs) {} - - result out(mbstate_t& __state, - const wchar_t* __from, - const wchar_t* __from_end, - const wchar_t*& __from_next, - char* __to, - char* __to_limit, - char*& __to_next) const { - return do_out(__state, - __from, __from_end, __from_next, - __to, __to_limit, __to_next); - } - - result unshift(mbstate_t& __state, - char* __to, char* __to_limit, char*& __to_next) const { - return do_unshift(__state, __to, __to_limit, __to_next); - } - - result in(mbstate_t& __state, - const char* __from, - const char* __from_end, - const char*& __from_next, - wchar_t* __to, - wchar_t* __to_limit, - wchar_t*& __to_next) const { - return do_in(__state, - __from, __from_end, __from_next, - __to, __to_limit, __to_next); - } - - int encoding() const _STLP_NOTHROW { return do_encoding(); } - - bool always_noconv() const _STLP_NOTHROW { return do_always_noconv(); } - - int length(const mbstate_t& __state, - const char* __from, const char* __end, - size_t __max) const - { return do_length(__state, __from, __end, __max); } - - int max_length() const _STLP_NOTHROW { return do_max_length(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~codecvt(); - - virtual result do_out(mbstate_t& __state, - const wchar_t* __from, - const wchar_t* __from_end, - const wchar_t*& __from_next, - char* __to, - char* __to_limit, - char*& __to_next) const; - - virtual result do_in (mbstate_t& __state, - const char* __from, - const char* __from_end, - const char*& __from_next, - wchar_t* __to, - wchar_t* __to_limit, - wchar_t*& __to_next) const; - - virtual result do_unshift(mbstate_t& __state, - char* __to, - char* __to_limit, - char*& __to_next) const; - - virtual int do_encoding() const _STLP_NOTHROW; - - virtual bool do_always_noconv() const _STLP_NOTHROW; - - virtual int do_length(const mbstate_t& __state, - const char* __from, - const char* __end, - size_t __max) const; - - virtual int do_max_length() const _STLP_NOTHROW; - -private: - codecvt(const codecvt<wchar_t, char, mbstate_t>&); - codecvt<wchar_t, char, mbstate_t>& operator = (const codecvt<wchar_t, char, mbstate_t>&); -}; - -# endif - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC codecvt_byname<char, char, mbstate_t> - : public codecvt<char, char, mbstate_t> { -public: - explicit codecvt_byname(const char* __name, size_t __refs = 0); - ~codecvt_byname(); -private: - codecvt_byname(const codecvt_byname<char, char, mbstate_t>&); - codecvt_byname<char, char, mbstate_t>& operator =(const codecvt_byname<char, char, mbstate_t>&); -}; - -# ifndef _STLP_NO_WCHAR_T -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC codecvt_byname<wchar_t, char, mbstate_t> - : public codecvt<wchar_t, char, mbstate_t> -{ -public: - explicit codecvt_byname(const char * __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - ~codecvt_byname(); - - virtual result do_out(mbstate_t& __state, - const wchar_t* __from, - const wchar_t* __from_end, - const wchar_t*& __from_next, - char* __to, - char* __to_limit, - char*& __to_next) const; - - virtual result do_in (mbstate_t& __state, - const char* __from, - const char* __from_end, - const char*& __from_next, - wchar_t* __to, - wchar_t* __to_limit, - wchar_t*& __to_next) const; - - virtual result do_unshift(mbstate_t& __state, - char* __to, - char* __to_limit, - char*& __to_next) const; - - virtual int do_encoding() const _STLP_NOTHROW; - - virtual bool do_always_noconv() const _STLP_NOTHROW; - - virtual int do_length(const mbstate_t& __state, - const char* __from, - const char* __end, - size_t __max) const; - - virtual int do_max_length() const _STLP_NOTHROW; - -private: - _Locale_ctype* _M_ctype; - codecvt_byname(const codecvt_byname<wchar_t, char, mbstate_t>&); - codecvt_byname<wchar_t, char, mbstate_t>& operator =(const codecvt_byname<wchar_t, char, mbstate_t>&); -}; - -# endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_CODECVT_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_collate.h b/WebKit/android/stlport/stl/_collate.h deleted file mode 100644 index 63e8f67..0000000 --- a/WebKit/android/stlport/stl/_collate.h +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - -#ifndef _STLP_INTERNAL_COLLATE_H -#define _STLP_INTERNAL_COLLATE_H - -#ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -#endif - -#ifndef _STLP_INTERNAL_LOCALE_H -# include <stl/_locale.h> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _CharT> class collate {}; -template <class _CharT> class collate_byname {}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC collate<char> : public locale::facet -{ - friend class _Locale_impl; - -public: - typedef char char_type; - typedef string string_type; - - explicit collate(size_t __refs = 0) : locale::facet(__refs) {} - - int compare(const char* __low1, const char* __high1, - const char* __low2, const char* __high2) const { - return do_compare( __low1, __high1, __low2, __high2); - } - - string_type transform(const char* __low, const char* __high) const { - return do_transform(__low, __high); - } - - long hash(const char* __low, const char* __high) const - { return do_hash(__low, __high); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~collate(); - - virtual int do_compare(const char*, const char*, - const char*, const char*) const; - virtual string_type do_transform(const char*, const char*) const; - virtual long do_hash(const char*, const char*) const; -private: - collate(const collate<char>&); - collate<char>& operator =(const collate<char>&); -}; - -# ifndef _STLP_NO_WCHAR_T - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC collate<wchar_t> : public locale::facet -{ - friend class _Locale_impl; - -public: - typedef wchar_t char_type; - typedef wstring string_type; - - explicit collate(size_t __refs = 0) : locale::facet(__refs) {} - - int compare(const wchar_t* __low1, const wchar_t* __high1, - const wchar_t* __low2, const wchar_t* __high2) const { - return do_compare( __low1, __high1, __low2, __high2); - } - - string_type transform(const wchar_t* __low, const wchar_t* __high) const { - return do_transform(__low, __high); - } - - long hash(const wchar_t* __low, const wchar_t* __high) const - { return do_hash(__low, __high); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~collate(); - - virtual int do_compare(const wchar_t*, const wchar_t*, - const wchar_t*, const wchar_t*) const; - virtual string_type do_transform(const wchar_t*, const wchar_t*) const; - virtual long do_hash(const wchar_t* __low, const wchar_t* __high) const; -private: - collate(const collate<wchar_t>&); - collate<wchar_t>& operator = (const collate<wchar_t>&); -}; - -# endif /* NO_WCHAR_T */ - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC collate_byname<char>: public collate<char> -{ -public: - explicit collate_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - ~collate_byname(); - - virtual int do_compare(const char*, const char*, - const char*, const char*) const; - virtual string_type do_transform(const char*, const char*) const; - -private: - _Locale_collate* _M_collate; - collate_byname(const collate_byname<char>&); - collate_byname<char>& operator =(const collate_byname<char>&); - friend _Locale_name_hint* _Locale_extract_hint(collate_byname<char>*); -}; - -# ifndef _STLP_NO_WCHAR_T - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC collate_byname<wchar_t>: public collate<wchar_t> -{ -public: - explicit collate_byname(const char * __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - ~collate_byname(); - - virtual int do_compare(const wchar_t*, const wchar_t*, - const wchar_t*, const wchar_t*) const; - virtual string_type do_transform(const wchar_t*, const wchar_t*) const; - -private: - _Locale_collate* _M_collate; - collate_byname(const collate_byname<wchar_t>&); - collate_byname<wchar_t>& operator =(const collate_byname<wchar_t>&); -}; - -# endif /* NO_WCHAR_T */ - -template <class _CharT, class _Traits, class _Alloc> -bool -__locale_do_operator_call (const locale& __loc, - const basic_string<_CharT, _Traits, _Alloc>& __x, - const basic_string<_CharT, _Traits, _Alloc>& __y) { - collate<_CharT> const& __coll = use_facet<collate<_CharT> >(__loc); - return __coll.compare(__x.data(), __x.data() + __x.size(), - __y.data(), __y.data() + __y.size()) < 0; -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_COLLATE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_complex.c b/WebKit/android/stlport/stl/_complex.c deleted file mode 100644 index ba3260b..0000000 --- a/WebKit/android/stlport/stl/_complex.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_COMPLEX_C -#define _STLP_COMPLEX_C - -#ifndef _STLP_INTERNAL_COMPLEX -# include <stl/_complex.h> -#endif - -#if !defined (_STLP_USE_NO_IOSTREAMS) -# ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> -# endif - -# ifndef _STLP_INTERNAL_SSTREAM -# include <stl/_sstream.h> -# endif - -# ifndef _STLP_STRING_IO_H -# include <stl/_string_io.h> -# endif -#endif - -_STLP_BEGIN_NAMESPACE - -// Non-inline member functions. - -template <class _Tp> -void complex<_Tp>::_div(const _Tp& __z1_r, const _Tp& __z1_i, - const _Tp& __z2_r, const _Tp& __z2_i, - _Tp& __res_r, _Tp& __res_i) { - _Tp __ar = __z2_r >= 0 ? __z2_r : -__z2_r; - _Tp __ai = __z2_i >= 0 ? __z2_i : -__z2_i; - - if (__ar <= __ai) { - _Tp __ratio = __z2_r / __z2_i; - _Tp __denom = __z2_i * (1 + __ratio * __ratio); - __res_r = (__z1_r * __ratio + __z1_i) / __denom; - __res_i = (__z1_i * __ratio - __z1_r) / __denom; - } - else { - _Tp __ratio = __z2_i / __z2_r; - _Tp __denom = __z2_r * (1 + __ratio * __ratio); - __res_r = (__z1_r + __z1_i * __ratio) / __denom; - __res_i = (__z1_i - __z1_r * __ratio) / __denom; - } -} - -template <class _Tp> -void complex<_Tp>::_div(const _Tp& __z1_r, - const _Tp& __z2_r, const _Tp& __z2_i, - _Tp& __res_r, _Tp& __res_i) { - _Tp __ar = __z2_r >= 0 ? __z2_r : -__z2_r; - _Tp __ai = __z2_i >= 0 ? __z2_i : -__z2_i; - - if (__ar <= __ai) { - _Tp __ratio = __z2_r / __z2_i; - _Tp __denom = __z2_i * (1 + __ratio * __ratio); - __res_r = (__z1_r * __ratio) / __denom; - __res_i = - __z1_r / __denom; - } - else { - _Tp __ratio = __z2_i / __z2_r; - _Tp __denom = __z2_r * (1 + __ratio * __ratio); - __res_r = __z1_r / __denom; - __res_i = - (__z1_r * __ratio) / __denom; - } -} - -// I/O. -#if !defined (_STLP_USE_NO_IOSTREAMS) - -// Complex output, in the form (re,im). We use a two-step process -// involving stringstream so that we get the padding right. -template <class _Tp, class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __z) { - basic_ostringstream<_CharT, _Traits, allocator<_CharT> > __tmp; - __tmp.flags(__os.flags()); - __tmp.imbue(__os.getloc()); - __tmp.precision(__os.precision()); - __tmp << '(' << __z.real() << ',' << __z.imag() << ')'; - return __os << __tmp.str(); -} - -// Complex input from arbitrary streams. Note that results in some -// locales may be confusing, since the decimal character varies with -// locale and the separator between real and imaginary parts does not. - -template <class _Tp, class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __is, complex<_Tp>& __z) { - _Tp __re = 0; - _Tp __im = 0; - - // typedef ctype<_CharT> _Ctype; - // locale __loc = __is.getloc(); - //const _Ctype& __c_type = use_facet<_Ctype>(__loc); - const ctype<_CharT>& __c_type = *__STATIC_CAST(const ctype<_CharT>*, __is._M_ctype_facet()); - - const char __punct[4] = "(,)"; - _CharT __wpunct[3]; - __c_type.widen(__punct, __punct + 3, __wpunct); - - _CharT __c; - - __is >> __c; - if (_Traits::eq(__c, __wpunct[0])) { // Left paren - __is >> __re >> __c; - if (_Traits::eq(__c, __wpunct[1])) // Comma - __is >> __im >> __c; - if (!_Traits::eq(__c, __wpunct[2])) // Right paren - __is.setstate(ios_base::failbit); - } - else { - __is.putback(__c); - __is >> __re; - } - - if (__is) - __z = complex<_Tp>(__re, __im); - return __is; -} - -#endif /* _STLP_USE_NO_IOSTREAMS */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_COMPLEX_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_complex.h b/WebKit/android/stlport/stl/_complex.h deleted file mode 100644 index b320805..0000000 --- a/WebKit/android/stlport/stl/_complex.h +++ /dev/null @@ -1,947 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_INTERNAL_COMPLEX -#define _STLP_INTERNAL_COMPLEX - -// This header declares the template class complex, as described in -// in the draft C++ standard. Single-precision complex numbers -// are complex<float>, double-precision are complex<double>, and -// quad precision are complex<long double>. - -// Note that the template class complex is declared within namespace -// std, as called for by the draft C++ standard. - -#ifndef _STLP_INTERNAL_CMATH -# include <stl/_cmath.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if !defined (_STLP_NO_COMPLEX_SPECIALIZATIONS) //*TY 02/25/2000 - added for MPW compiler workaround - -template <class _Tp> struct complex; - -_STLP_TEMPLATE_NULL struct complex<float>; -_STLP_TEMPLATE_NULL struct complex<double>; -# if !defined (_STLP_NO_LONG_DOUBLE) -_STLP_TEMPLATE_NULL struct complex<long double>; -# endif -#endif /* _STLP_NO_COMPLEX_SPECIALIZATIONS */ - -template <class _Tp> -struct complex { - typedef _Tp value_type; - typedef complex<_Tp> _Self; - - // Constructors, destructor, assignment operator. - complex() : _M_re(0), _M_im(0) {} - complex(const value_type& __x) - : _M_re(__x), _M_im(0) {} - complex(const value_type& __x, const value_type& __y) - : _M_re(__x), _M_im(__y) {} - complex(const _Self& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} - - _Self& operator=(const _Self& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - -#if defined (_STLP_MEMBER_TEMPLATES) && (defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) || defined(_STLP_NO_COMPLEX_SPECIALIZATIONS)) - template <class _Tp2> - explicit complex(const complex<_Tp2>& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} - - template <class _Tp2> - _Self& operator=(const complex<_Tp2>& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - // Element access. - value_type real() const { return _M_re; } - value_type imag() const { return _M_im; } - - // Arithmetic op= operations involving one real argument. - - _Self& operator= (const value_type& __x) { - _M_re = __x; - _M_im = 0; - return *this; - } - _Self& operator+= (const value_type& __x) { - _M_re += __x; - return *this; - } - _Self& operator-= (const value_type& __x) { - _M_re -= __x; - return *this; - } - _Self& operator*= (const value_type& __x) { - _M_re *= __x; - _M_im *= __x; - return *this; - } - _Self& operator/= (const value_type& __x) { - _M_re /= __x; - _M_im /= __x; - return *this; - } - - // Arithmetic op= operations involving two complex arguments. - - static void _STLP_CALL _div(const value_type& __z1_r, const value_type& __z1_i, - const value_type& __z2_r, const value_type& __z2_i, - value_type& __res_r, value_type& __res_i); - - static void _STLP_CALL _div(const value_type& __z1_r, - const value_type& __z2_r, const value_type& __z2_i, - value_type& __res_r, value_type& __res_i); - -#if defined (_STLP_MEMBER_TEMPLATES) // && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) - - template <class _Tp2> _Self& operator+= (const complex<_Tp2>& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - template <class _Tp2> _Self& operator-= (const complex<_Tp2>& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - template <class _Tp2> _Self& operator*= (const complex<_Tp2>& __z) { - value_type __r = _M_re * __z._M_re - _M_im * __z._M_im; - value_type __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - template <class _Tp2> _Self& operator/= (const complex<_Tp2>& __z) { - value_type __r; - value_type __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - _Self& operator+= (const _Self& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - _Self& operator-= (const _Self& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - _Self& operator*= (const _Self& __z) { - value_type __r = _M_re * __z._M_re - _M_im * __z._M_im; - value_type __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - _Self& operator/= (const _Self& __z) { - value_type __r; - value_type __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - - // Data members. - value_type _M_re; - value_type _M_im; -}; - -#if !defined (_STLP_NO_COMPLEX_SPECIALIZATIONS) //*TY 02/25/2000 - added for MPW compiler workaround -// Explicit specializations for float, double, long double. The only -// reason for these specializations is to enable automatic conversions -// from complex<float> to complex<double>, and complex<double> to -// complex<long double>. - -_STLP_TEMPLATE_NULL -struct _STLP_CLASS_DECLSPEC complex<float> { - typedef float value_type; - typedef complex<float> _Self; - // Constructors, destructor, assignment operator. - - complex(value_type __x = 0.0f, value_type __y = 0.0f) - : _M_re(__x), _M_im(__y) {} - - complex(const complex<float>& __z) : _M_re(__z._M_re), _M_im(__z._M_im) {} - - inline explicit complex(const complex<double>& __z); -# ifndef _STLP_NO_LONG_DOUBLE - inline explicit complex(const complex<long double>& __z); -# endif - // Element access. - value_type real() const { return _M_re; } - value_type imag() const { return _M_im; } - - // Arithmetic op= operations involving one real argument. - - _Self& operator= (value_type __x) { - _M_re = __x; - _M_im = 0.0f; - return *this; - } - _Self& operator+= (value_type __x) { - _M_re += __x; - return *this; - } - _Self& operator-= (value_type __x) { - _M_re -= __x; - return *this; - } - _Self& operator*= (value_type __x) { - _M_re *= __x; - _M_im *= __x; - return *this; - } - _Self& operator/= (value_type __x) { - _M_re /= __x; - _M_im /= __x; - return *this; - } - - // Arithmetic op= operations involving two complex arguments. - - static void _STLP_CALL _div(const float& __z1_r, const float& __z1_i, - const float& __z2_r, const float& __z2_i, - float& __res_r, float& __res_i); - - static void _STLP_CALL _div(const float& __z1_r, - const float& __z2_r, const float& __z2_i, - float& __res_r, float& __res_i); - -# if defined (_STLP_MEMBER_TEMPLATES) - template <class _Tp2> - complex<float>& operator=(const complex<_Tp2>& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - - template <class _Tp2> - complex<float>& operator+= (const complex<_Tp2>& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - template <class _Tp2> - complex<float>& operator-= (const complex<_Tp2>& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - template <class _Tp2> - complex<float>& operator*= (const complex<_Tp2>& __z) { - float __r = _M_re * __z._M_re - _M_im * __z._M_im; - float __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - template <class _Tp2> - complex<float>& operator/= (const complex<_Tp2>& __z) { - float __r; - float __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - -# endif /* _STLP_MEMBER_TEMPLATES */ - - _Self& operator=(const _Self& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - - _Self& operator+= (const _Self& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - _Self& operator-= (const _Self& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - _Self& operator*= (const _Self& __z) { - value_type __r = _M_re * __z._M_re - _M_im * __z._M_im; - value_type __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - _Self& operator/= (const _Self& __z) { - value_type __r; - value_type __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - - // Data members. - value_type _M_re; - value_type _M_im; -}; - -_STLP_TEMPLATE_NULL -struct _STLP_CLASS_DECLSPEC complex<double> { - typedef double value_type; - typedef complex<double> _Self; - - // Constructors, destructor, assignment operator. - - complex(value_type __x = 0.0, value_type __y = 0.0) - : _M_re(__x), _M_im(__y) {} - - complex(const complex<double>& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} - inline complex(const complex<float>& __z); -# if !defined (_STLP_NO_LONG_DOUBLE) - explicit inline complex(const complex<long double>& __z); -# endif - // Element access. - value_type real() const { return _M_re; } - value_type imag() const { return _M_im; } - - // Arithmetic op= operations involving one real argument. - - _Self& operator= (value_type __x) { - _M_re = __x; - _M_im = 0.0; - return *this; - } - _Self& operator+= (value_type __x) { - _M_re += __x; - return *this; - } - _Self& operator-= (value_type __x) { - _M_re -= __x; - return *this; - } - _Self& operator*= (value_type __x) { - _M_re *= __x; - _M_im *= __x; - return *this; - } - _Self& operator/= (value_type __x) { - _M_re /= __x; - _M_im /= __x; - return *this; - } - - // Arithmetic op= operations involving two complex arguments. - - static void _STLP_CALL _div(const double& __z1_r, const double& __z1_i, - const double& __z2_r, const double& __z2_i, - double& __res_r, double& __res_i); - static void _STLP_CALL _div(const double& __z1_r, - const double& __z2_r, const double& __z2_i, - double& __res_r, double& __res_i); - -# if defined (_STLP_MEMBER_TEMPLATES) && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) - template <class _Tp2> - complex<double>& operator=(const complex<_Tp2>& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - - template <class _Tp2> - complex<double>& operator+= (const complex<_Tp2>& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - template <class _Tp2> - complex<double>& operator-= (const complex<_Tp2>& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - template <class _Tp2> - complex<double>& operator*= (const complex<_Tp2>& __z) { - double __r = _M_re * __z._M_re - _M_im * __z._M_im; - double __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - template <class _Tp2> - complex<double>& operator/= (const complex<_Tp2>& __z) { - double __r; - double __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - -# endif /* _STLP_MEMBER_TEMPLATES */ - - _Self& operator=(const _Self& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - - _Self& operator+= (const _Self& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - _Self& operator-= (const _Self& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - _Self& operator*= (const _Self& __z) { - value_type __r = _M_re * __z._M_re - _M_im * __z._M_im; - value_type __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - _Self& operator/= (const _Self& __z) { - value_type __r; - value_type __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - - // Data members. - value_type _M_re; - value_type _M_im; -}; - -# if !defined (_STLP_NO_LONG_DOUBLE) - -_STLP_TEMPLATE_NULL -struct _STLP_CLASS_DECLSPEC complex<long double> { - typedef long double value_type; - typedef complex<long double> _Self; - - // Constructors, destructor, assignment operator. - complex(value_type __x = 0.0l, value_type __y = 0.0l) - : _M_re(__x), _M_im(__y) {} - - complex(const complex<long double>& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} - inline complex(const complex<float>& __z); - inline complex(const complex<double>& __z); - - // Element access. - value_type real() const { return _M_re; } - value_type imag() const { return _M_im; } - - // Arithmetic op= operations involving one real argument. - - _Self& operator= (value_type __x) { - _M_re = __x; - _M_im = 0.0l; - return *this; - } - _Self& operator+= (value_type __x) { - _M_re += __x; - return *this; - } - _Self& operator-= (value_type __x) { - _M_re -= __x; - return *this; - } - _Self& operator*= (value_type __x) { - _M_re *= __x; - _M_im *= __x; - return *this; - } - _Self& operator/= (value_type __x) { - _M_re /= __x; - _M_im /= __x; - return *this; - } - - // Arithmetic op= operations involving two complex arguments. - - static void _STLP_CALL _div(const long double& __z1_r, const long double& __z1_i, - const long double& __z2_r, const long double& __z2_i, - long double& __res_r, long double& __res_i); - - static void _STLP_CALL _div(const long double& __z1_r, - const long double& __z2_r, const long double& __z2_i, - long double& __res_r, long double& __res_i); - -# if defined (_STLP_MEMBER_TEMPLATES) && defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) - - template <class _Tp2> - complex<long double>& operator=(const complex<_Tp2>& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - - template <class _Tp2> - complex<long double>& operator+= (const complex<_Tp2>& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - template <class _Tp2> - complex<long double>& operator-= (const complex<_Tp2>& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - template <class _Tp2> - complex<long double>& operator*= (const complex<_Tp2>& __z) { - long double __r = _M_re * __z._M_re - _M_im * __z._M_im; - long double __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - template <class _Tp2> - complex<long double>& operator/= (const complex<_Tp2>& __z) { - long double __r; - long double __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - -# endif /* _STLP_MEMBER_TEMPLATES */ - - _Self& operator=(const _Self& __z) { - _M_re = __z._M_re; - _M_im = __z._M_im; - return *this; - } - - _Self& operator+= (const _Self& __z) { - _M_re += __z._M_re; - _M_im += __z._M_im; - return *this; - } - - _Self& operator-= (const _Self& __z) { - _M_re -= __z._M_re; - _M_im -= __z._M_im; - return *this; - } - - _Self& operator*= (const _Self& __z) { - value_type __r = _M_re * __z._M_re - _M_im * __z._M_im; - value_type __i = _M_re * __z._M_im + _M_im * __z._M_re; - _M_re = __r; - _M_im = __i; - return *this; - } - - _Self& operator/= (const _Self& __z) { - value_type __r; - value_type __i; - _div(_M_re, _M_im, __z._M_re, __z._M_im, __r, __i); - _M_re = __r; - _M_im = __i; - return *this; - } - - // Data members. - value_type _M_re; - value_type _M_im; -}; - -# endif /* _STLP_NO_LONG_DOUBLE */ - -// Converting constructors from one of these three specialized types -// to another. - -inline complex<float>::complex(const complex<double>& __z) - : _M_re((float)__z._M_re), _M_im((float)__z._M_im) {} -inline complex<double>::complex(const complex<float>& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} -# ifndef _STLP_NO_LONG_DOUBLE -inline complex<float>::complex(const complex<long double>& __z) - : _M_re((float)__z._M_re), _M_im((float)__z._M_im) {} -inline complex<double>::complex(const complex<long double>& __z) - : _M_re((double)__z._M_re), _M_im((double)__z._M_im) {} -inline complex<long double>::complex(const complex<float>& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} -inline complex<long double>::complex(const complex<double>& __z) - : _M_re(__z._M_re), _M_im(__z._M_im) {} -# endif - -#endif /* SPECIALIZATIONS */ - -// Unary non-member arithmetic operators. - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator+(const complex<_Tp>& __z) -{ return __z; } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator-(const complex<_Tp>& __z) -{ return complex<_Tp>(-__z._M_re, -__z._M_im); } - -// Non-member arithmetic operations involving one real argument. - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator+(const _Tp& __x, const complex<_Tp>& __z) -{ return complex<_Tp>(__x + __z._M_re, __z._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator+(const complex<_Tp>& __z, const _Tp& __x) -{ return complex<_Tp>(__z._M_re + __x, __z._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator-(const _Tp& __x, const complex<_Tp>& __z) -{ return complex<_Tp>(__x - __z._M_re, -__z._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator-(const complex<_Tp>& __z, const _Tp& __x) -{ return complex<_Tp>(__z._M_re - __x, __z._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator*(const _Tp& __x, const complex<_Tp>& __z) -{ return complex<_Tp>(__x * __z._M_re, __x * __z._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator*(const complex<_Tp>& __z, const _Tp& __x) -{ return complex<_Tp>(__z._M_re * __x, __z._M_im * __x); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator/(const _Tp& __x, const complex<_Tp>& __z) { - complex<_Tp> __result; - complex<_Tp>::_div(__x, - __z._M_re, __z._M_im, - __result._M_re, __result._M_im); - return __result; -} - -template <class _Tp> -inline complex<_Tp> _STLP_CALL operator/(const complex<_Tp>& __z, const _Tp& __x) -{ return complex<_Tp>(__z._M_re / __x, __z._M_im / __x); } - -// Non-member arithmetic operations involving two complex arguments - -template <class _Tp> -inline complex<_Tp> _STLP_CALL -operator+(const complex<_Tp>& __z1, const complex<_Tp>& __z2) -{ return complex<_Tp>(__z1._M_re + __z2._M_re, __z1._M_im + __z2._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL -operator-(const complex<_Tp>& __z1, const complex<_Tp>& __z2) -{ return complex<_Tp>(__z1._M_re - __z2._M_re, __z1._M_im - __z2._M_im); } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL -operator*(const complex<_Tp>& __z1, const complex<_Tp>& __z2) { - return complex<_Tp>(__z1._M_re * __z2._M_re - __z1._M_im * __z2._M_im, - __z1._M_re * __z2._M_im + __z1._M_im * __z2._M_re); -} - -template <class _Tp> -inline complex<_Tp> _STLP_CALL -operator/(const complex<_Tp>& __z1, const complex<_Tp>& __z2) { - complex<_Tp> __result; - complex<_Tp>::_div(__z1._M_re, __z1._M_im, - __z2._M_re, __z2._M_im, - __result._M_re, __result._M_im); - return __result; -} - -// Comparison operators. - -template <class _Tp> -inline bool _STLP_CALL operator==(const complex<_Tp>& __z1, const complex<_Tp>& __z2) -{ return __z1._M_re == __z2._M_re && __z1._M_im == __z2._M_im; } - -template <class _Tp> -inline bool _STLP_CALL operator==(const complex<_Tp>& __z, const _Tp& __x) -{ return __z._M_re == __x && __z._M_im == 0; } - -template <class _Tp> -inline bool _STLP_CALL operator==(const _Tp& __x, const complex<_Tp>& __z) -{ return __x == __z._M_re && 0 == __z._M_im; } - -//04/27/04 dums: removal of this check, if it is restablish -//please explain why the other operators are not macro guarded -//#ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER - -template <class _Tp> -inline bool _STLP_CALL operator!=(const complex<_Tp>& __z1, const complex<_Tp>& __z2) -{ return __z1._M_re != __z2._M_re || __z1._M_im != __z2._M_im; } - -//#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ - -template <class _Tp> -inline bool _STLP_CALL operator!=(const complex<_Tp>& __z, const _Tp& __x) -{ return __z._M_re != __x || __z._M_im != 0; } - -template <class _Tp> -inline bool _STLP_CALL operator!=(const _Tp& __x, const complex<_Tp>& __z) -{ return __x != __z._M_re || 0 != __z._M_im; } - -// Other basic arithmetic operations -template <class _Tp> -inline _Tp _STLP_CALL real(const complex<_Tp>& __z) -{ return __z._M_re; } - -template <class _Tp> -inline _Tp _STLP_CALL imag(const complex<_Tp>& __z) -{ return __z._M_im; } - -template <class _Tp> -_Tp _STLP_CALL abs(const complex<_Tp>& __z); - -template <class _Tp> -_Tp _STLP_CALL arg(const complex<_Tp>& __z); - -template <class _Tp> -inline _Tp _STLP_CALL norm(const complex<_Tp>& __z) -{ return __z._M_re * __z._M_re + __z._M_im * __z._M_im; } - -template <class _Tp> -inline complex<_Tp> _STLP_CALL conj(const complex<_Tp>& __z) -{ return complex<_Tp>(__z._M_re, -__z._M_im); } - -template <class _Tp> -complex<_Tp> _STLP_CALL polar(const _Tp& __rho) -{ return complex<_Tp>(__rho, 0); } - -template <class _Tp> -complex<_Tp> _STLP_CALL polar(const _Tp& __rho, const _Tp& __phi); - -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC float _STLP_CALL abs(const complex<float>&); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC double _STLP_CALL abs(const complex<double>&); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC float _STLP_CALL arg(const complex<float>&); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC double _STLP_CALL arg(const complex<double>&); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC complex<float> _STLP_CALL polar(const float& __rho, const float& __phi); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC complex<double> _STLP_CALL polar(const double& __rho, const double& __phi); - -template <class _Tp> -_Tp _STLP_CALL abs(const complex<_Tp>& __z) -{ return _Tp(abs(complex<double>(double(__z.real()), double(__z.imag())))); } - -template <class _Tp> -_Tp _STLP_CALL arg(const complex<_Tp>& __z) -{ return _Tp(arg(complex<double>(double(__z.real()), double(__z.imag())))); } - -template <class _Tp> -complex<_Tp> _STLP_CALL polar(const _Tp& __rho, const _Tp& __phi) { - complex<double> __tmp = polar(double(__rho), double(__phi)); - return complex<_Tp>(_Tp(__tmp.real()), _Tp(__tmp.imag())); -} - -#if !defined (_STLP_NO_LONG_DOUBLE) -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC long double _STLP_CALL arg(const complex<long double>&); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC long double _STLP_CALL abs(const complex<long double>&); -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC complex<long double> _STLP_CALL polar(const long double&, const long double&); -#endif - - -#if !defined (_STLP_USE_NO_IOSTREAMS) - -_STLP_END_NAMESPACE - -# include <iosfwd> - -_STLP_BEGIN_NAMESPACE - -// Complex output, in the form (re,im). We use a two-step process -// involving stringstream so that we get the padding right. -template <class _Tp, class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, const complex<_Tp>& __z); - -template <class _Tp, class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __is, complex<_Tp>& __z); - -// Specializations for narrow characters; lets us avoid widen. - -_STLP_OPERATOR_TEMPLATE -_STLP_DECLSPEC basic_istream<char, char_traits<char> >& _STLP_CALL -operator>>(basic_istream<char, char_traits<char> >& __is, complex<float>& __z); - -_STLP_OPERATOR_TEMPLATE -_STLP_DECLSPEC basic_istream<char, char_traits<char> >& _STLP_CALL -operator>>(basic_istream<char, char_traits<char> >& __is, complex<double>& __z); - -_STLP_OPERATOR_TEMPLATE -_STLP_DECLSPEC basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __is, const complex<float>& __z); - -_STLP_OPERATOR_TEMPLATE -_STLP_DECLSPEC basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __is, const complex<double>& __z); - -# if !defined (_STLP_NO_LONG_DOUBLE) -_STLP_OPERATOR_TEMPLATE -_STLP_DECLSPEC basic_istream<char, char_traits<char> >& _STLP_CALL -operator>>(basic_istream<char, char_traits<char> >& __is, complex<long double>& __z); - -_STLP_OPERATOR_TEMPLATE -_STLP_DECLSPEC basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __is, const complex<long double>& __z); - -# endif - -# if defined (_STLP_USE_TEMPLATE_EXPORT) && ! defined (_STLP_NO_WCHAR_T) - -_STLP_EXPORT_TEMPLATE basic_istream<wchar_t, char_traits<wchar_t> >& _STLP_CALL -operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, complex<double>&); -_STLP_EXPORT_TEMPLATE basic_ostream<wchar_t, char_traits<wchar_t> >& _STLP_CALL -operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, const complex<double>&); -_STLP_EXPORT_TEMPLATE basic_istream<wchar_t, char_traits<wchar_t> >& _STLP_CALL -operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, complex<float>&); -_STLP_EXPORT_TEMPLATE basic_ostream<wchar_t, char_traits<wchar_t> >& _STLP_CALL -operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, const complex<float>&); - -# if !defined (_STLP_NO_LONG_DOUBLE) -_STLP_EXPORT_TEMPLATE basic_istream<wchar_t, char_traits<wchar_t> >& _STLP_CALL -operator>>(basic_istream<wchar_t, char_traits<wchar_t> >&, complex<long double>&); -_STLP_EXPORT_TEMPLATE basic_ostream<wchar_t, char_traits<wchar_t> >& _STLP_CALL -operator<<(basic_ostream<wchar_t, char_traits<wchar_t> >&, const complex<long double>&); -# endif -# endif -#endif - - -// Transcendental functions. These are defined only for float, -// double, and long double. (Sqrt isn't transcendental, of course, -// but it's included in this section anyway.) - -_STLP_DECLSPEC complex<float> _STLP_CALL sqrt(const complex<float>&); - -_STLP_DECLSPEC complex<float> _STLP_CALL exp(const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL log(const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL log10(const complex<float>&); - -_STLP_DECLSPEC complex<float> _STLP_CALL pow(const complex<float>&, int); -_STLP_DECLSPEC complex<float> _STLP_CALL pow(const complex<float>&, const float&); -_STLP_DECLSPEC complex<float> _STLP_CALL pow(const float&, const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL pow(const complex<float>&, const complex<float>&); - -_STLP_DECLSPEC complex<float> _STLP_CALL sin(const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL cos(const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL tan(const complex<float>&); - -_STLP_DECLSPEC complex<float> _STLP_CALL sinh(const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL cosh(const complex<float>&); -_STLP_DECLSPEC complex<float> _STLP_CALL tanh(const complex<float>&); - -_STLP_DECLSPEC complex<double> _STLP_CALL sqrt(const complex<double>&); - -_STLP_DECLSPEC complex<double> _STLP_CALL exp(const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL log(const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL log10(const complex<double>&); - -_STLP_DECLSPEC complex<double> _STLP_CALL pow(const complex<double>&, int); -_STLP_DECLSPEC complex<double> _STLP_CALL pow(const complex<double>&, const double&); -_STLP_DECLSPEC complex<double> _STLP_CALL pow(const double&, const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL pow(const complex<double>&, const complex<double>&); - -_STLP_DECLSPEC complex<double> _STLP_CALL sin(const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL cos(const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL tan(const complex<double>&); - -_STLP_DECLSPEC complex<double> _STLP_CALL sinh(const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL cosh(const complex<double>&); -_STLP_DECLSPEC complex<double> _STLP_CALL tanh(const complex<double>&); - -#if !defined (_STLP_NO_LONG_DOUBLE) -_STLP_DECLSPEC complex<long double> _STLP_CALL sqrt(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL exp(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL log(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL log10(const complex<long double>&); - -_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const complex<long double>&, int); -_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const complex<long double>&, const long double&); -_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const long double&, const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL pow(const complex<long double>&, - const complex<long double>&); - -_STLP_DECLSPEC complex<long double> _STLP_CALL sin(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL cos(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL tan(const complex<long double>&); - -_STLP_DECLSPEC complex<long double> _STLP_CALL sinh(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL cosh(const complex<long double>&); -_STLP_DECLSPEC complex<long double> _STLP_CALL tanh(const complex<long double>&); -#endif - -_STLP_END_NAMESPACE - -#ifndef _STLP_LINK_TIME_INSTANTIATION -# include <stl/_complex.c> -#endif - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_config_compat_post.h b/WebKit/android/stlport/stl/_config_compat_post.h deleted file mode 100644 index c326ac5..0000000 --- a/WebKit/android/stlport/stl/_config_compat_post.h +++ /dev/null @@ -1,55 +0,0 @@ -/*========================================== */ -#if 1 /* def _STLP_3_COMPATIBILITY */ - -# define __SGI_STL_PORT _STLPORT_VERSION - -# if defined (_STLP_DEBUG) && ! defined ( __STL_DEBUG ) -# define __STL_DEBUG _STLP_DEBUG -# endif - -# if defined (_STLP_USE_NAMESPACES) -# undef __STL_USE_NAMESPACES -# define __STL_USE_NAMESPACES _STLP_USE_NAMESPACES -# endif - -# if defined (_STLP_USE_EXCEPTIONS) -# undef __STL_USE_EXCEPTIONS -# define __STL_USE_EXCEPTIONS _STLP_USE_EXCEPTIONS -# endif - -# if defined (_STLP_BEGIN_NAMESPACE) && ! defined ( __STL_BEGIN_NAMESPACE ) -# define __STL_BEGIN_NAMESPACE _STLP_BEGIN_NAMESPACE -# define __STL_END_NAMESPACE _STLP_END_NAMESPACE -# define __STL_VENDOR_STD _STLP_VENDOR_STD -# define __STL_VENDOR_CSTD _STLP_VENDOR_CSTD -# endif -# endif - -/* -# if defined (_STLP_XXX) && ! defined ( __STL_XXX ) -# define __STL_XXX _STLP_XXX -# endif -*/ - -/* 5.0 -> 4.6 compatibility section */ -#if 1 /* def _STLP_46_COMPATIBILITY */ - -#ifndef _STLP_USING_NAMESPACE_BUG -# define _STLP_USING_NAMESPACE_BUG -#endif - -/* provide a uniform way to access full funclionality */ -# define __slist__ slist -# define __map__ map -# define __multimap__ multimap -# define __set__ set -# define __multiset__ multiset -# define __list__ list -# define __hash_map__ hash_map -# define __hash_multimap__ hash_multimap -# define __hash_set__ hash_set -# define __hash_multiset__ hash_multiset -# define __vector__ vector - -#endif - diff --git a/WebKit/android/stlport/stl/_construct.h b/WebKit/android/stlport/stl/_construct.h deleted file mode 100644 index f828d92..0000000 --- a/WebKit/android/stlport/stl/_construct.h +++ /dev/null @@ -1,245 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -#define _STLP_INTERNAL_CONSTRUCT_H - -#if !defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_INTERNAL_CSTRING) -# include <stl/_cstring.h> -#endif - -#ifndef _STLP_INTERNAL_NEW -# include <stl/_new.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -#ifndef _STLP_MOVE_CONSTRUCT_FWK_H -# include <stl/_move_construct_fwk.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp> -inline void __destroy_aux(_Tp* __pointer, const __false_type& /*_Trivial_destructor*/) -{ __pointer->~_Tp(); } - -template <class _Tp> -inline void __destroy_aux(_Tp*, const __true_type& /*_Trivial_destructor*/) {} - -template <class _Tp> -inline void _Destroy(_Tp* __pointer) { -#if defined (_STLP_MSVC) && (_STLP_MSVC <= 1010) - __pointer; -#endif - typedef typename __type_traits<_Tp>::has_trivial_destructor _Trivial_destructor; - __destroy_aux(__pointer, _Trivial_destructor()); -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset(__REINTERPRET_CAST(char*, __pointer), _STLP_SHRED_BYTE, sizeof(_Tp)); -#endif -} - -template <class _Tp> -inline void _Destroy_Moved(_Tp* __pointer) { - typedef typename __move_traits<_Tp>::complete _Trivial_destructor; - __destroy_aux(__pointer, _Trivial_destructor()); -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset((char*)__pointer, _STLP_SHRED_BYTE, sizeof(_Tp)); -#endif -} - -#if defined (new) -# define _STLP_NEW_REDEFINE new -# undef new -#endif - -#if defined (_STLP_DEF_CONST_PLCT_NEW_BUG) -template <class _T1> -inline void _Construct_aux (_T1* __p, const __false_type&) { - _STLP_PLACEMENT_NEW (__p) _T1(); -} - -template <class _T1> -inline void _Construct_aux (_T1* __p, const __true_type&) { - _STLP_PLACEMENT_NEW (__p) _T1(0); -} -#endif /* _STLP_DEF_CONST_PLCT_NEW_BUG */ - -template <class _T1> -inline void _Construct(_T1* __p) { -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_T1)); -#endif -#if defined (_STLP_DEF_CONST_PLCT_NEW_BUG) - _Construct_aux (__p, _HasDefaultZeroValue(__p)._Answer() ); -#else - _STLP_PLACEMENT_NEW (__p) _T1(); -#endif /* _STLP_DEF_CONST_PLCT_NEW_BUG */ -} - -template <class _Tp> -inline void _Copy_Construct(_Tp* __p, const _Tp& __val) { -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_Tp)); -#endif - _STLP_PLACEMENT_NEW (__p) _Tp(__val); -} - -template <class _T1, class _T2> -inline void _Param_Construct(_T1* __p, const _T2& __val) { -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_T1)); -#endif - _STLP_PLACEMENT_NEW (__p) _T1(__val); -} - -template <class _T1, class _T2> -inline void _Move_Construct_Aux(_T1* __p, _T2& __val, const __false_type& /*_IsPOD*/) { - _STLP_PLACEMENT_NEW (__p) _T1(_STLP_PRIV _AsMoveSource(__val)); -} - -template <class _T1, class _T2> -inline void _Move_Construct_Aux(_T1* __p, _T2& __val, const __true_type& /*_IsPOD*/) { - _STLP_PLACEMENT_NEW (__p) _T1(__val); -} - -template <class _T1, class _T2> -inline void _Move_Construct(_T1* __p, _T2& __val) { -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset((char*)__p, _STLP_SHRED_BYTE, sizeof(_T1)); -#endif - _Move_Construct_Aux(__p, __val, _Is_POD(__p)._Answer()); -} - -#if defined(_STLP_NEW_REDEFINE) -# if defined (DEBUG_NEW) -# define new DEBUG_NEW -# endif -# undef _STLP_NEW_REDEFINE -#endif - -template <class _ForwardIterator, class _Tp> -_STLP_INLINE_LOOP void -__destroy_range_aux(_ForwardIterator __first, _ForwardIterator __last, _Tp*, const __false_type& /*_Trivial_destructor*/) { - for ( ; __first != __last; ++__first) { - __destroy_aux(&(*__first), __false_type()); -#if defined (_STLP_DEBUG_UNINITIALIZED) - memset((char*)&(*__first), _STLP_SHRED_BYTE, sizeof(_Tp)); -#endif - } -} - -template <class _ForwardIterator, class _Tp> -#if defined (_STLP_DEBUG_UNINITIALIZED) -_STLP_INLINE_LOOP void -__destroy_range_aux(_ForwardIterator __first, _ForwardIterator __last, _Tp*, const __true_type& /*_Trivial_destructor*/) { - for ( ; __first != __last; ++__first) - memset((char*)&(*__first), _STLP_SHRED_BYTE, sizeof(_Tp)); -} -#else -inline void -__destroy_range_aux(_ForwardIterator, _ForwardIterator, _Tp*, const __true_type& /*_Trivial_destructor*/) {} -#endif - -template <class _ForwardIterator, class _Tp> -inline void -__destroy_range(_ForwardIterator __first, _ForwardIterator __last, _Tp *__ptr) { - typedef typename __type_traits<_Tp>::has_trivial_destructor _Trivial_destructor; - __destroy_range_aux(__first, __last, __ptr, _Trivial_destructor()); -} - -template <class _ForwardIterator> -inline void _Destroy_Range(_ForwardIterator __first, _ForwardIterator __last) { - __destroy_range(__first, __last, _STLP_VALUE_TYPE(__first, _ForwardIterator)); -} - -inline void _Destroy_Range(char*, char*) {} -#if defined (_STLP_HAS_WCHAR_T) // dwa 8/15/97 -inline void _Destroy_Range(wchar_t*, wchar_t*) {} -inline void _Destroy_Range(const wchar_t*, const wchar_t*) {} -#endif - -template <class _ForwardIterator, class _Tp> -inline void -__destroy_mv_srcs(_ForwardIterator __first, _ForwardIterator __last, _Tp *__ptr) { - typedef typename __move_traits<_Tp>::complete _CompleteMove; - __destroy_range_aux(__first, __last, __ptr, _CompleteMove()); -} - -template <class _ForwardIterator> -inline void _Destroy_Moved_Range(_ForwardIterator __first, _ForwardIterator __last) { - __destroy_mv_srcs(__first, __last, _STLP_VALUE_TYPE(__first, _ForwardIterator)); -} - -#if defined (_STLP_DEF_CONST_DEF_PARAM_BUG) -// Those adaptors are here to fix common compiler bug regarding builtins: -// expressions like int k = int() should initialize k to 0 -template <class _Tp> -inline _Tp __default_constructed_aux(_Tp*, const __false_type&) { - return _Tp(); -} -template <class _Tp> -inline _Tp __default_constructed_aux(_Tp*, const __true_type&) { - return _Tp(0); -} - -template <class _Tp> -inline _Tp __default_constructed(_Tp* __p) { - return __default_constructed_aux(__p, _HasDefaultZeroValue(__p)._Answer()); -} - -# define _STLP_DEFAULT_CONSTRUCTED(_TTp) __default_constructed((_TTp*)0) -#else -# define _STLP_DEFAULT_CONSTRUCTED(_TTp) _TTp() -#endif /* _STLP_DEF_CONST_DEF_PARAM_BUG */ - - -#if !defined (_STLP_NO_ANACHRONISMS) -// -------------------------------------------------- -// Old names from the HP STL. - -template <class _T1, class _T2> -inline void construct(_T1* __p, const _T2& __val) {_Param_Construct(__p, __val); } -template <class _T1> -inline void construct(_T1* __p) { _STLP_STD::_Construct(__p); } -template <class _Tp> -inline void destroy(_Tp* __pointer) { _STLP_STD::_Destroy(__pointer); } -template <class _ForwardIterator> -inline void destroy(_ForwardIterator __first, _ForwardIterator __last) { _STLP_STD::_Destroy_Range(__first, __last); } -#endif /* _STLP_NO_ANACHRONISMS */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_CONSTRUCT_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_csetjmp.h b/WebKit/android/stlport/stl/_csetjmp.h deleted file mode 100644 index 7bb0018..0000000 --- a/WebKit/android/stlport/stl/_csetjmp.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CSETJMP -#define _STLP_INTERNAL_CSETJMP - -// if the macro is on, the header is already there -#if !defined (setjmp) -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(csetjmp) -# else -# define _STLP_NATIVE_SETJMP_H_INCLUDED -# include _STLP_NATIVE_C_HEADER(setjmp.h) -# endif -#endif - -#if defined (_STLP_IMPORT_VENDOR_CSTD) - -# if defined (__BORLANDC__) && defined (_STLP_USE_NEW_C_HEADERS) -/* For Borland, even if stdjmp.h is included symbols won't be in global namespace - * so we need to reach them in vendor namespace: - */ -# undef _STLP_NATIVE_SETJMP_H_INCLUDED -# endif - -_STLP_BEGIN_NAMESPACE -# if !defined (_STLP_NATIVE_SETJMP_H_INCLUDED) -using _STLP_VENDOR_CSTD::jmp_buf; -# else -// if setjmp.h was included first, this is in global namespace, not in -// vendor's std. - 2005-08-04, ptr -using ::jmp_buf; -# endif -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -# if !defined (setjmp) -# if !defined (__MSL__) || ((__MSL__ > 0x7001) && (__MSL__ < 0x8000)) -# ifndef _STLP_NATIVE_SETJMP_H_INCLUDED -using _STLP_VENDOR_CSTD::setjmp; -# else -using ::setjmp; -# endif -# endif -# endif -# if !defined (_STLP_NATIVE_SETJMP_H_INCLUDED) -using _STLP_VENDOR_CSTD::longjmp; -# else -using ::longjmp; -# endif -# endif -_STLP_END_NAMESPACE -#endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif diff --git a/WebKit/android/stlport/stl/_csignal.h b/WebKit/android/stlport/stl/_csignal.h deleted file mode 100644 index 919e9c4..0000000 --- a/WebKit/android/stlport/stl/_csignal.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CSIGNAL -#define _STLP_INTERNAL_CSIGNAL - -#if !defined (_STLP_WCE) -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(csignal) -# else -# include _STLP_NATIVE_C_HEADER(signal.h) -# endif - -# if defined (_STLP_IMPORT_VENDOR_CSTD) -_STLP_BEGIN_NAMESPACE -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -using _STLP_VENDOR_CSTD::signal; -using _STLP_VENDOR_CSTD::raise; -# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ -using _STLP_VENDOR_CSTD::sig_atomic_t; -_STLP_END_NAMESPACE -# endif /* _STLP_IMPORT_VENDOR_CSTD */ -#endif - -#endif /* _STLP_INTERNAL_CSIGNAL */ diff --git a/WebKit/android/stlport/stl/_cstdarg.h b/WebKit/android/stlport/stl/_cstdarg.h deleted file mode 100644 index 0e51e62..0000000 --- a/WebKit/android/stlport/stl/_cstdarg.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -#ifndef _STLP_INTERNAL_CSTDARG -#define _STLP_INTERNAL_CSTDARG - -#if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cstdarg) -#else -# include _STLP_NATIVE_C_HEADER(stdarg.h) -#endif - -#ifdef _STLP_IMPORT_VENDOR_CSTD -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::va_list; -_STLP_END_NAMESPACE -#endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif diff --git a/WebKit/android/stlport/stl/_cstddef.h b/WebKit/android/stlport/stl/_cstddef.h deleted file mode 100644 index d1c1e2d..0000000 --- a/WebKit/android/stlport/stl/_cstddef.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CSTDDEF -#define _STLP_INTERNAL_CSTDDEF - -# if (__GNUC__ >= 3) && defined (__CYGWIN__) // this total HACK is the only expedient way I could cygwin to work with GCC 3.0 -# define __need_wint_t // mostly because wint_t didn't seem to get defined otherwise :( -# define __need_wchar_t -# define __need_size_t -# define __need_ptrdiff_t -# define __need_NULL -# endif - -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cstddef) -# else -# include <stddef.h> -# endif - -# ifdef _STLP_IMPORT_VENDOR_CSTD -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::ptrdiff_t; -using _STLP_VENDOR_CSTD::size_t; -_STLP_END_NAMESPACE -# endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif /* _STLP_INTERNAL_CSTDDEF */ diff --git a/WebKit/android/stlport/stl/_cstdio.h b/WebKit/android/stlport/stl/_cstdio.h deleted file mode 100644 index c4afb35..0000000 --- a/WebKit/android/stlport/stl/_cstdio.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CSTDIO -#define _STLP_INTERNAL_CSTDIO - -#if defined (__Lynx__) -# include _STLP_NATIVE_C_HEADER(stdarg.h) -#endif - -#if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cstdio) -#else -# include _STLP_NATIVE_C_HEADER(stdio.h) -#endif - -#if (defined (__MWERKS__) && !defined (N_PLAT_NLM)) || defined (__BORLANDC__) -# undef stdin -# undef stdout -# undef stderr -# if defined (__MWERKS__) -# define stdin (&_STLP_VENDOR_CSTD::__files[0]) -# define stdout (&_STLP_VENDOR_CSTD::__files[1]) -# define stderr (&_STLP_VENDOR_CSTD::__files[2]) -# elif defined (__BORLANDC__) -# define stdin (&_STLP_VENDOR_CSTD::_streams[0]) -# define stdout (&_STLP_VENDOR_CSTD::_streams[1]) -# define stderr (&_STLP_VENDOR_CSTD::_streams[2]) -# endif -#endif - -#if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER) -inline int vsnprintf(char *s1, size_t n, const char *s2, va_list v) -{ return _STLP_VENDOR_CSTD::_vsnprintf(s1, n, s2, v); } -#endif - -#if defined (_STLP_IMPORT_VENDOR_CSTD ) -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::FILE; -using _STLP_VENDOR_CSTD::fpos_t; -using _STLP_VENDOR_CSTD::size_t; - -// undef obsolete macros -# undef putc -# undef getc -# undef getchar -# undef putchar -# undef feof -# undef ferror - -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -using _STLP_VENDOR_CSTD::clearerr; -using _STLP_VENDOR_CSTD::fclose; -using _STLP_VENDOR_CSTD::feof; -using _STLP_VENDOR_CSTD::ferror; -using _STLP_VENDOR_CSTD::fflush; -using _STLP_VENDOR_CSTD::fgetc; -using _STLP_VENDOR_CSTD::fgetpos; -using _STLP_VENDOR_CSTD::fgets; -using _STLP_VENDOR_CSTD::fopen; -using _STLP_VENDOR_CSTD::fprintf; -using _STLP_VENDOR_CSTD::fputc; -using _STLP_VENDOR_CSTD::fputs; -using _STLP_VENDOR_CSTD::fread; -# if !defined (_WIN32_WCE) || (_WIN32_WCE < 0x500) // CE5 stopped supplying this -using _STLP_VENDOR_CSTD::freopen; -# endif -using _STLP_VENDOR_CSTD::fscanf; -using _STLP_VENDOR_CSTD::fseek; -using _STLP_VENDOR_CSTD::fsetpos; -using _STLP_VENDOR_CSTD::ftell; -using _STLP_VENDOR_CSTD::fwrite; - -# if !(defined (__IBMCPP__) && (__IBMCPP__ >= 500)) -# if !defined (_WIN32_WCE) || (_WIN32_WCE < 0x500) // CE5 stopped supplying this except as macros. TODO: use inline function to redirect to the macros? - using _STLP_VENDOR_CSTD::getc; - using _STLP_VENDOR_CSTD::putc; -# endif - using _STLP_VENDOR_CSTD::getchar; - using _STLP_VENDOR_CSTD::putchar; -# endif - -using _STLP_VENDOR_CSTD::gets; -# if !defined (_WIN32_WCE) || (_WIN32_WCE < 0x500) // CE5 stopped supplying this -using _STLP_VENDOR_CSTD::perror; -# endif -using _STLP_VENDOR_CSTD::printf; -using _STLP_VENDOR_CSTD::puts; -# if !defined (_WIN32_WCE) || (_WIN32_WCE < 0x500) // CE5 stopped supplying this -using _STLP_VENDOR_CSTD::remove; -using _STLP_VENDOR_CSTD::rename; -using _STLP_VENDOR_CSTD::rewind; -using _STLP_VENDOR_CSTD::setbuf; -using _STLP_VENDOR_CSTD::tmpfile; -using _STLP_VENDOR_CSTD::tmpnam; -# endif -using _STLP_VENDOR_CSTD::scanf; -using _STLP_VENDOR_CSTD::setvbuf; -using _STLP_VENDOR_CSTD::sprintf; -using _STLP_VENDOR_CSTD::sscanf; -using _STLP_VENDOR_CSTD::ungetc; -using _STLP_VENDOR_CSTD::vfprintf; -using _STLP_VENDOR_CSTD::vprintf; -using _STLP_VENDOR_CSTD::vsprintf; -# if ((defined (__MWERKS__) && !defined (N_PLAT_NLM)) || (defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB < 1400)) || \ - (defined (__BORLANDC__))) -using _STLP_VENDOR_CSTD::vsnprintf; -# endif -# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ -_STLP_END_NAMESPACE -#endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif /* _STLP_INTERNAL_CSTDIO */ diff --git a/WebKit/android/stlport/stl/_cstdlib.h b/WebKit/android/stlport/stl/_cstdlib.h deleted file mode 100644 index 6c5437d..0000000 --- a/WebKit/android/stlport/stl/_cstdlib.h +++ /dev/null @@ -1,201 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CSTDLIB -#define _STLP_INTERNAL_CSTDLIB - -#if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cstdlib) -#else -# include <stdlib.h> -#endif - -#if defined (__BORLANDC__) -/* Borland process.h header do not bring anything here and is just included - * in order to avoid inclusion later. This header cannot be included later - * because Borland compiler consider that for instance the abort function - * defined as extern "C" cannot be overloaded and it finds 2 "overloads", - * once in native std namespace and the other in STLport namespace... - */ -# include <process.h> -#endif - -/* on evc3/evc4 including stdlib.h also defines setjmp macro */ -#if defined (_STLP_WCE) -# define _STLP_NATIVE_SETJMP_H_INCLUDED -#endif - -#if defined (__MSL__) && (__MSL__ <= 0x5003) -namespace std { - typedef ::div_t div_t; - typedef ::ldiv_t ldiv_t; -# ifdef __MSL_LONGLONG_SUPPORT__ - typedef ::lldiv_t lldiv_t; -# endif -} -#endif - -#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 -# ifndef _STLP_WCE -// 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; -using _STLP_VENDOR_CSTD::calloc; -using _STLP_VENDOR_CSTD::free; -using _STLP_VENDOR_CSTD::malloc; -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; - -# if !(defined (_STLP_NO_NATIVE_WIDE_STREAMS) || defined (_STLP_NO_MBSTATE_T)) -using _STLP_VENDOR_CSTD::wcstombs; -# ifndef _STLP_WCE -using _STLP_VENDOR_CSTD::wctomb; -# endif -# endif -using _STLP_VENDOR_CSTD::qsort; -using _STLP_VENDOR_CSTD::labs; -# if !defined (ANDROID) -// this function doesn't exist on Android -using _STLP_VENDOR_CSTD::ldiv; -# endif -# if defined (_STLP_LONG_LONG) && !defined (_STLP_NO_VENDOR_STDLIB_L) -# if !defined(__sun) -using _STLP_VENDOR_CSTD::llabs; -# if !defined (ANDROID) -// these types don't exist on Android -using _STLP_VENDOR_CSTD::lldiv_t; -using _STLP_VENDOR_CSTD::lldiv; -# endif -# else -using ::llabs; -using ::lldiv_t; -using ::lldiv; -# endif -# endif -using _STLP_VENDOR_CSTD::rand; -using _STLP_VENDOR_CSTD::srand; -# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ -_STLP_END_NAMESPACE -#endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#if defined (__BORLANDC__) && defined (_STLP_USE_NEW_C_HEADERS) -//In this config bcc define everything in std namespace and not in -//the global one. -inline int abs(int __x) { return _STLP_VENDOR_CSTD::abs(__x); } -inline _STLP_VENDOR_CSTD::div_t div(int __x, int __y) { return _STLP_VENDOR_CSTD::div(__x, __y); } -#endif - -#if defined(_MSC_EXTENSIONS) && defined(_STLP_MSVC) && (_STLP_MSVC <= 1300) -# define _STLP_RESTORE_FUNCTION_INTRINSIC -# pragma warning (push) -# pragma warning (disable: 4162) -# pragma function (abs) -#endif - -//HP-UX native lib has abs() and div() functions in global namespace -#if !defined (__HP_aCC) || (__HP_aCC < 30000) - -//MSVC starting with .Net 2003 already define all math functions in global namespace: -# if !defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1310) || defined(UNDER_CE) -inline long abs(long __x) { return _STLP_VENDOR_CSTD::labs(__x); } -# endif - -/** VC since version 8 has this, the platform SDK and CE SDKs hanging behind. - * Android doesn't have ldiv_t. */ -# if (!defined (_STLP_MSVC_LIB) || (_STLP_MSVC_LIB < 1400) || defined (_STLP_USING_PLATFORM_SDK_COMPILER) || defined(UNDER_CE)) && !defined (ANDROID) -inline _STLP_VENDOR_CSTD::ldiv_t div(long __x, long __y) { return _STLP_VENDOR_CSTD::ldiv(__x, __y); } -# endif - -#endif - -#if defined (_STLP_RESTORE_FUNCTION_INTRINSIC) -# pragma intrinsic (abs) -# pragma warning (pop) -# undef _STLP_RESTORE_FUNCTION_INTRINSIC -#endif - -#if defined (_STLP_LONG_LONG) -# if !defined (_STLP_NO_VENDOR_STDLIB_L) -# if !defined (__sun) -inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return _STLP_VENDOR_CSTD::llabs(__x); } -# if !defined (ANDROID) -// Android doesn't have lldiv_t. -inline lldiv_t div(_STLP_LONG_LONG __x, _STLP_LONG_LONG __y) { return _STLP_VENDOR_CSTD::lldiv(__x, __y); } -# endif -# else -inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return ::llabs(__x); } -inline lldiv_t div(_STLP_LONG_LONG __x, _STLP_LONG_LONG __y) { return ::lldiv(__x, __y); } -# endif -# else -inline _STLP_LONG_LONG abs(_STLP_LONG_LONG __x) { return __x < 0 ? -__x : __x; } -# endif -#endif - -/* C++ Standard is unclear about several call to 'using ::func' if new overloads - * of ::func appears between 2 successive 'using' calls. To avoid this potential - * problem we provide all abs overload before the 'using' call. - * Beware: This header inclusion has to be after all abs overload of this file. - * The first 'using ::abs' call is going to be in the other header. - */ -#ifndef _STLP_INTERNAL_CMATH -# include <stl/_cmath.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_CSTD) && !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -// ad hoc, don't replace with _STLP_VENDOR_CSTD::abs here! - ptr 2005-03-05 -_STLP_BEGIN_NAMESPACE -using ::abs; -# if !defined (ANDROID) -// Android doesn't have div_t or ldiv_t. -# if !defined (N_PLAT_NLM) -using ::div; -# else -// Don't use div from clib or libc on NetWare---buggy! - ptr 2005-06-06 -inline div_t div(int __x, int __y) { div_t d; d.quot = __x / __y; d.rem = __x % __y; return d; } -inline ldiv_t div(long __x, long __y) { ldiv_t d; d.quot = __x / __y; d.rem = __x % __y; return d; } -# endif -# endif -_STLP_END_NAMESPACE -#endif - -#endif /* _STLP_INTERNAL_CSTDLIB */ diff --git a/WebKit/android/stlport/stl/_cstring.h b/WebKit/android/stlport/stl/_cstring.h deleted file mode 100644 index 8f39a7a..0000000 --- a/WebKit/android/stlport/stl/_cstring.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CSTRING -#define _STLP_INTERNAL_CSTRING - -#if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cstring) -#else -# include _STLP_NATIVE_C_HEADER(string.h) -#endif - -#ifdef _STLP_IMPORT_VENDOR_CSTD -_STLP_BEGIN_NAMESPACE -# include <using/cstring> -_STLP_END_NAMESPACE -#endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif /* _STLP_INTERNAL_CSTRING */ diff --git a/WebKit/android/stlport/stl/_ctime.h b/WebKit/android/stlport/stl/_ctime.h deleted file mode 100644 index d995d42..0000000 --- a/WebKit/android/stlport/stl/_ctime.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CTIME -#define _STLP_INTERNAL_CTIME - -#if !defined (_STLP_WCE_EVC3) - -# if defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(ctime) -# else -# include _STLP_NATIVE_C_HEADER(time.h) -# endif - -# if defined (_STLP_IMPORT_VENDOR_CSTD) -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD::size_t; -using _STLP_VENDOR_CSTD::clock_t; -using _STLP_VENDOR_CSTD::time_t; -using _STLP_VENDOR_CSTD::tm; -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -using _STLP_VENDOR_CSTD::clock; -using _STLP_VENDOR_CSTD::asctime; -using _STLP_VENDOR_CSTD::ctime; -using _STLP_VENDOR_CSTD::gmtime; - -# if !defined (_WIN32_WCE) || (_WIN32_WCE < 0x500) // CE5 stopped supplying this -using _STLP_VENDOR_CSTD::difftime; -# endif -using _STLP_VENDOR_CSTD::mktime; -using _STLP_VENDOR_CSTD::localtime; -using _STLP_VENDOR_CSTD::strftime; -using _STLP_VENDOR_CSTD::time; -# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ -_STLP_END_NAMESPACE -# endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#endif - -#endif /* _STLP_INTERNAL_CTIME */ diff --git a/WebKit/android/stlport/stl/_ctraits_fns.h b/WebKit/android/stlport/stl/_ctraits_fns.h deleted file mode 100644 index e4a4af1..0000000 --- a/WebKit/android/stlport/stl/_ctraits_fns.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - -#ifndef _STLP_INTERNAL_CTRAITS_FUNCTIONS_H -#define _STLP_INTERNAL_CTRAITS_FUNCTIONS_H - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -// This file contains a few small adapters that allow a character -// traits class to be used as a function object. - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Traits> -struct _Eq_traits - : public binary_function<typename _Traits::char_type, - typename _Traits::char_type, - bool> { - bool operator()(const typename _Traits::char_type& __x, - const typename _Traits::char_type& __y) const - { return _Traits::eq(__x, __y); } -}; - -template <class _Traits> -struct _Eq_char_bound - : public unary_function<typename _Traits::char_type, bool> { - typename _Traits::char_type __val; - _Eq_char_bound(typename _Traits::char_type __c) : __val(__c) {} - bool operator()(const typename _Traits::char_type& __x) const - { return _Traits::eq(__x, __val); } -}; - -template <class _Traits> -struct _Neq_char_bound - : public unary_function<typename _Traits::char_type, bool> -{ - typename _Traits::char_type __val; - _Neq_char_bound(typename _Traits::char_type __c) : __val(__c) {} - bool operator()(const typename _Traits::char_type& __x) const - { return !_Traits::eq(__x, __val); } -}; - -template <class _Traits> -struct _Eq_int_bound - : public unary_function<typename _Traits::char_type, bool> { - typename _Traits::int_type __val; - - _Eq_int_bound(typename _Traits::int_type __c) : __val(__c) {} - bool operator()(const typename _Traits::char_type& __x) const - { return _Traits::eq_int_type(_Traits::to_int_type(__x), __val); } -}; - -#if 0 -template <class _Traits> -struct _Lt_traits - : public binary_function<typename _Traits::char_type, - typename _Traits::char_type, - bool> { - bool operator()(const typename _Traits::char_type& __x, - const typename _Traits::char_type& __y) const - { return _Traits::lt(__x, __y); } -}; -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_CTRAITS_FUNCTIONS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_ctype.h b/WebKit/android/stlport/stl/_ctype.h deleted file mode 100644 index b110f45..0000000 --- a/WebKit/android/stlport/stl/_ctype.h +++ /dev/null @@ -1,277 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - -#ifndef _STLP_INTERNAL_CTYPE_H -#define _STLP_INTERNAL_CTYPE_H - -#ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -#endif - -#ifndef _STLP_INTERNAL_LOCALE_H -# include <stl/_locale.h> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -_STLP_BEGIN_NAMESPACE - -class _STLP_CLASS_DECLSPEC ctype_base { -public: - enum mask { - space = _Locale_SPACE, - print = _Locale_PRINT, - cntrl = _Locale_CNTRL, - upper = _Locale_UPPER, - lower = _Locale_LOWER, - alpha = _Locale_ALPHA, - digit = _Locale_DIGIT, - punct = _Locale_PUNCT, - xdigit = _Locale_XDIGIT, - alnum = alpha | digit, - graph = alnum | punct - }; -}; - -// ctype<> template - -template <class charT> class ctype {}; -template <class charT> class ctype_byname {}; - -//ctype specializations - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC ctype<char> : public locale::facet, public ctype_base { -#ifndef _STLP_NO_WCHAR_T -# ifdef _STLP_MSVC - typedef ctype<wchar_t> _Wctype; - friend _Wctype; -# else - friend class ctype<wchar_t>; -# endif -#endif - friend class _Locale_impl; -public: - - typedef char char_type; - - explicit ctype(const mask* __tab = 0, bool __del = false, size_t __refs = 0); - bool is(mask __m, char __c) const - { return ((*(_M_ctype_table+(unsigned char)__c)) & __m) != 0; } - - const char* is(const char* __low, const char* __high, mask* __vec) const { - for (const char* __p = __low;__p != __high; ++__p, ++__vec) { - *__vec = _M_ctype_table[(unsigned char)*__p]; - } - return __high; - } - - const char* scan_is(mask __m, const char* __low, const char* __high) const; - const char* scan_not(mask __m, const char* __low, const char* __high) const; - - char (toupper)(char __c) const { return do_toupper(__c); } - const char* (toupper)(char* __low, const char* __high) const { - return do_toupper(__low, __high); - } - - char (tolower)(char __c) const { return do_tolower(__c); } - const char* (tolower)(char* __low, const char* __high) const { - return do_tolower(__low, __high); - } - - char widen(char __c) const { return do_widen(__c); } - const char* widen(const char* __low, const char* __high, char* __to) const { - return do_widen(__low, __high, __to); - } - - char narrow(char __c, char __dfault) const { - return do_narrow(__c, __dfault); - } - const char* narrow(const char* __low, const char* __high, - char __dfault, char* __to) const { - return do_narrow(__low, __high, __dfault, __to); - } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; -# if defined(_STLP_STATIC_CONST_INIT_BUG) - enum __TableSize { table_size = 256 }; -# else - static const size_t table_size = 256; -# endif - -protected: - const mask* table() const _STLP_NOTHROW { return _M_ctype_table; } - static const mask* _STLP_CALL classic_table() _STLP_NOTHROW; - - ~ctype(); - - virtual char do_toupper(char __c) const; - virtual char do_tolower(char __c) const; - virtual const char* do_toupper(char* __low, const char* __high) const; - virtual const char* do_tolower(char* __low, const char* __high) const; - virtual char do_widen(char __c) const; - virtual const char* do_widen(const char* __low, const char* __high, - char* __to) const; - virtual char do_narrow(char __c, char /* dfault */ ) const; - virtual const char* do_narrow(const char* __low, const char* __high, - char /* dfault */, char* __to) const; -private: - struct _Is_mask { - mask __m; - _Is_mask(mask __x): __m(__x) {} - bool operator()(char __c) {return (__m & (unsigned char) __c) != 0;} - }; - -protected: - const mask* _M_ctype_table; -private: - bool _M_delete; -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC ctype_byname<char>: public ctype<char> { -public: - explicit ctype_byname(const char*, size_t = 0, _Locale_name_hint* __hint = 0); - ~ctype_byname(); - - virtual char do_toupper(char __c) const; - virtual char do_tolower(char __c) const; - - virtual const char* do_toupper(char*, const char*) const; - virtual const char* do_tolower(char*, const char*) const; - -private: - mask _M_byname_table[table_size]; - _Locale_ctype* _M_ctype; - - //explicitely defined as private to avoid warnings: - typedef ctype_byname<char> _Self; - ctype_byname(_Self const&); - _Self& operator = (_Self const&); - friend _Locale_name_hint* _Locale_extract_hint(ctype_byname<char>*); -}; - -# ifndef _STLP_NO_WCHAR_T -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC ctype<wchar_t> : public locale::facet, public ctype_base -{ - friend class _Locale_impl; -public: - typedef wchar_t char_type; - - explicit ctype(size_t __refs = 0) : locale::facet(__refs) {} - - bool is(mask __m, wchar_t __c) const - { return do_is(__m, __c); } - - const wchar_t* is(const wchar_t* __low, const wchar_t* __high, - mask* __vec) const - { return do_is(__low, __high, __vec); } - - const wchar_t* scan_is(mask __m, - const wchar_t* __low, const wchar_t* __high) const - { return do_scan_is(__m, __low, __high); } - - const wchar_t* scan_not (mask __m, - const wchar_t* __low, const wchar_t* __high) const - { return do_scan_not(__m, __low, __high); } - - wchar_t (toupper)(wchar_t __c) const { return do_toupper(__c); } - const wchar_t* (toupper)(wchar_t* __low, const wchar_t* __high) const - { return do_toupper(__low, __high); } - - wchar_t (tolower)(wchar_t __c) const { return do_tolower(__c); } - const wchar_t* (tolower)(wchar_t* __low, const wchar_t* __high) const - { return do_tolower(__low, __high); } - - wchar_t widen(char __c) const { return do_widen(__c); } - const char* widen(const char* __low, const char* __high, - wchar_t* __to) const - { return do_widen(__low, __high, __to); } - - char narrow(wchar_t __c, char __dfault) const - { return do_narrow(__c, __dfault); } - const wchar_t* narrow(const wchar_t* __low, const wchar_t* __high, - char __dfault, char* __to) const - { return do_narrow(__low, __high, __dfault, __to); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~ctype(); - - virtual bool do_is(mask __m, wchar_t __c) const; - virtual const wchar_t* do_is(const wchar_t*, const wchar_t*, mask*) const; - virtual const wchar_t* do_scan_is(mask, - const wchar_t*, const wchar_t*) const; - virtual const wchar_t* do_scan_not(mask, - const wchar_t*, const wchar_t*) const; - virtual wchar_t do_toupper(wchar_t __c) const; - virtual const wchar_t* do_toupper(wchar_t*, const wchar_t*) const; - virtual wchar_t do_tolower(wchar_t c) const; - virtual const wchar_t* do_tolower(wchar_t*, const wchar_t*) const; - virtual wchar_t do_widen(char c) const; - virtual const char* do_widen(const char*, const char*, wchar_t*) const; - virtual char do_narrow(wchar_t __c, char __dfault) const; - virtual const wchar_t* do_narrow(const wchar_t*, const wchar_t*, - char, char*) const; -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC ctype_byname<wchar_t>: public ctype<wchar_t> { -public: - explicit ctype_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - ~ctype_byname(); - - virtual bool do_is(mask __m, wchar_t __c) const; - virtual const wchar_t* do_is(const wchar_t*, const wchar_t*, mask*) const; - virtual const wchar_t* do_scan_is(mask, - const wchar_t*, const wchar_t*) const; - virtual const wchar_t* do_scan_not(mask, - const wchar_t*, const wchar_t*) const; - virtual wchar_t do_toupper(wchar_t __c) const; - virtual const wchar_t* do_toupper(wchar_t*, const wchar_t*) const; - virtual wchar_t do_tolower(wchar_t c) const; - virtual const wchar_t* do_tolower(wchar_t*, const wchar_t*) const; - -private: - _Locale_ctype* _M_ctype; - - //explicitely defined as private to avoid warnings: - typedef ctype_byname<wchar_t> _Self; - ctype_byname(_Self const&); - _Self& operator = (_Self const&); -}; - -# endif /* WCHAR_T */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_CTYPE_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_cwchar.h b/WebKit/android/stlport/stl/_cwchar.h deleted file mode 100644 index 26836ad..0000000 --- a/WebKit/android/stlport/stl/_cwchar.h +++ /dev/null @@ -1,324 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CWCHAR -#define _STLP_INTERNAL_CWCHAR - -#if defined (_STLP_WCE_EVC3) -# ifndef _STLP_INTERNAL_MBSTATE_T -# include <stl/_mbstate_t.h> -# endif -#else -# if defined (__GNUC__) -# include _STLP_NATIVE_CPP_C_HEADER(cstddef) -# endif - -# if !defined (_STLP_NO_CWCHAR) && defined (_STLP_USE_NEW_C_HEADERS) -# include _STLP_NATIVE_CPP_C_HEADER(cwchar) -# if defined (__OpenBSD__) -typedef _BSD_WINT_T_ wint_t; -# endif /* __OpenBSD__ */ - -# elif defined (_STLP_NO_WCHAR_T) || defined (__MRC__) || (defined (__SC__) && !defined (__DMC__)) || \ - (defined (__BORLANDC__) && (__BORLANDC__ < 0x580)) || \ - defined (__OpenBSD__) || defined (__FreeBSD__) || \ - (defined (__GNUC__) && (defined (__APPLE__) || defined ( __Lynx__ ))) -# include _STLP_NATIVE_C_HEADER(stddef.h) -# if defined (__Lynx__) -# ifndef _WINT_T -typedef long int wint_t; -# define _WINT_T -# endif /* _WINT_T */ -# endif -# if defined(__OpenBSD__) -typedef _BSD_WINT_T_ wint_t; -# endif /* __OpenBSD__ */ -# elif defined (__MWERKS__) && defined (N_PLAT_NLM) -# include <wchar.h> -# elif !defined (ANDROID) -// Android doesn't have a working wchar.h -# include _STLP_NATIVE_C_HEADER(wchar.h) - -# if defined (__sun) && (defined (_XOPEN_SOURCE) || (_XOPEN_VERSION - 0 == 4)) -extern wint_t btowc(); -extern int fwprintf(); -extern int fwscanf(); -extern int fwide(); -extern int mbsinit(); -extern size_t mbrlen(); -extern size_t mbrtowc(); -extern size_t mbsrtowcs(); -extern int swprintf(); -extern int swscanf(); -extern int vfwprintf(); -extern int vwprintf(); -extern int vswprintf(); -extern size_t wcrtomb(); -extern size_t wcsrtombs(); -extern wchar_t *wcsstr(); -extern int wctob(); -extern wchar_t *wmemchr(); -extern int wmemcmp(); -extern wchar_t *wmemcpy(); -extern wchar_t *wmemmove(); -extern wchar_t *wmemset(); -extern int wprintf(); -extern int wscanf(); -# endif -# endif - -# if defined (__MSL__) && (__MSL__ <= 0x51FF) /* dwa 2/28/99 - not yet implemented by MSL */ -# define _STLP_WCHAR_MSL_EXCLUDE 1 -namespace std { - extern "C" size_t wcsftime(wchar_t * str, size_t max_size, const wchar_t * format_str, const struct tm * timeptr); -} -# define _STLP_NO_MBSTATE_T 1 -# elif defined (__BORLANDC__) -# if !defined (_STLP_USE_NO_IOSTREAMS) -# define _STLP_NO_NATIVE_MBSTATE_T -# endif -# define _STLP_WCHAR_BORLAND_EXCLUDE 1 -# endif - -# ifndef _STLP_INTERNAL_MBSTATE_T -# include <stl/_mbstate_t.h> -# endif - -# if !defined (_STLP_NO_WCHAR_T) -# ifndef WCHAR_MIN -# define WCHAR_MIN 0 -/* SUNpro has some bugs with casts. wchar_t is size of int there anyway. */ -# if defined (__SUNPRO_CC) || defined (__DJGPP) -# define WCHAR_MAX (~0) -# else -# define WCHAR_MAX ((wchar_t)~0) -# endif -# endif -# if defined (__GNUC__) && defined (__alpha__) -/* Definition of WCHAR_MIN and MAX are wrong for alpha platform - * as gcc consider wchar_t as an unsigned type. Static assertion are - * here to check that a future alpha SDK or a future gcc won't change the - * situation making this workaround useless. - */ -_STLP_STATIC_ASSERT(((wchar_t)-1 > 0) && (WCHAR_MIN < 0)) -# undef WCHAR_MIN -# define WCHAR_MIN 0 -# undef WCHAR_MAX -# define WCHAR_MAX ((wchar_t)~0) -# endif -# if defined(__HP_aCC) && (__HP_aCC >= 60000) -/* Starting with B.11.31, HP-UX/ia64 provides C99-compliant definitions - * of WCHAR_MIN/MAX macros without having to define - * _INCLUDE_STDC__SOURCE_199901 macro (which aCC compiler does not - * predefine). Let STLport provide B.11.31 definitions on any version of - * HP-UX/ia64. - */ -# undef WCHAR_MIN -# define WCHAR_MIN 0 -# undef WCHAR_MAX -# define WCHAR_MAX UINT_MAX -# endif -# endif - -# if defined (_STLP_IMPORT_VENDOR_CSTD) - -# if defined (__SUNPRO_CC) && !defined (_STLP_HAS_NO_NEW_C_HEADERS) -using _STLP_VENDOR_CSTD::wint_t; -# endif - -_STLP_BEGIN_NAMESPACE -# if defined (_STLP_NO_WCHAR_T) -typedef int wint_t; -# else -// gcc 3.0 has a glitch : wint_t only sucked into the global namespace if _GLIBCPP_USE_WCHAR_T is defined -// __MWERKS__ has definition in wchar_t.h (MSL C++), but ones differ from definition -// in stdio.h; I prefer settings from last file. -# if (defined (__GNUC__) && ! defined (_GLIBCPP_USE_WCHAR_T)) // || (defined(__MWERKS__) && defined(N_PLAT_NLM)) -using ::wint_t; -# else -using _STLP_VENDOR_CSTD::wint_t; -# endif -# endif - -using _STLP_VENDOR_CSTD::size_t; - -# if !defined (_STLP_NO_NATIVE_MBSTATE_T) && !defined (_STLP_USE_OWN_MBSTATE_T) -using _STLP_VENDOR_MB_NAMESPACE::mbstate_t; - -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) && !defined(_STLP_WCHAR_BORLAND_EXCLUDE) && \ - (!defined(__MSL__) || __MSL__ > 0x6001) -# if defined (__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 8))) || \ - !(defined (__KCC) || defined (__GNUC__)) && !defined(_STLP_WCE_NET) && !(defined(__MWERKS__) && defined(N_PLAT_NLM)) -using _STLP_VENDOR_MB_NAMESPACE::btowc; -# if (!defined(__MSL__) || __MSL__ > 0x7001) -using _STLP_VENDOR_MB_NAMESPACE::mbsinit; -# endif -# endif -# if defined (__MINGW32__) && ((__MINGW32_MAJOR_VERSION > 3) || ((__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION >= 8))) || \ - !defined (__GNUC__) && !defined(_STLP_WCE_NET) && !(defined(__MWERKS__) && defined(N_PLAT_NLM)) -using _STLP_VENDOR_MB_NAMESPACE::mbrlen; -using _STLP_VENDOR_MB_NAMESPACE::mbrtowc; -using _STLP_VENDOR_MB_NAMESPACE::mbsrtowcs; -using _STLP_VENDOR_MB_NAMESPACE::wcrtomb; -using _STLP_VENDOR_MB_NAMESPACE::wcsrtombs; -# endif -# endif /* BORLAND && !__MSL__ || __MSL__ > 0x6001 */ - -# endif /* _STLP_NO_NATIVE_MBSTATE_T */ - -# if !defined (_STLP_NO_NATIVE_WIDE_FUNCTIONS) && ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) - -# if !defined (_STLP_WCHAR_BORLAND_EXCLUDE) && ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) && !(defined(__MWERKS__) && defined(N_PLAT_NLM)) -using _STLP_VENDOR_CSTD::fgetwc; -using _STLP_VENDOR_CSTD::fgetws; -using _STLP_VENDOR_CSTD::fputwc; -using _STLP_VENDOR_CSTD::fputws; -# endif - -# if !(defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_BORLAND_EXCLUDE) || \ - defined(_STLP_WCHAR_HPACC_EXCLUDE) || (defined(__MWERKS__) && defined(N_PLAT_NLM))) -# if !defined (__DECCXX) -using _STLP_VENDOR_CSTD::fwide; -# endif -using _STLP_VENDOR_CSTD::fwprintf; -using _STLP_VENDOR_CSTD::fwscanf; -using _STLP_VENDOR_CSTD::getwchar; -# endif - -# if !defined(_STLP_WCHAR_BORLAND_EXCLUDE) && !(defined(__MWERKS__) && defined(N_PLAT_NLM)) -# ifndef _STLP_WCE_NET -using _STLP_VENDOR_CSTD::getwc; -# endif -using _STLP_VENDOR_CSTD::ungetwc; -# ifndef _STLP_WCE_NET -using _STLP_VENDOR_CSTD::putwc; -# endif -using _STLP_VENDOR_CSTD::putwchar; -# endif - -# if !(defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_BORLAND_EXCLUDE) || \ - defined (_STLP_WCHAR_HPACC_EXCLUDE) || (defined (__MWERKS__) && defined (N_PLAT_NLM))) -# if defined (_STLP_MSVC_LIB) && (_STLP_MSVC_LIB <= 1300) || \ - defined (__MINGW32__) -# undef swprintf -# define swprintf _snwprintf -# undef vswprintf -# define vswprintf _vsnwprintf -using ::swprintf; -using ::vswprintf; -# else -using _STLP_VENDOR_CSTD::swprintf; -using _STLP_VENDOR_CSTD::vswprintf; -# endif -using _STLP_VENDOR_CSTD::swscanf; -using _STLP_VENDOR_CSTD::vfwprintf; -using _STLP_VENDOR_CSTD::vwprintf; - -# if (!defined(__MSL__) || __MSL__ > 0x7001 ) && !defined(_STLP_WCE_NET) && \ - !defined(_STLP_USE_UCLIBC) /* at least in uClibc 0.9.26 */ - -using _STLP_VENDOR_CSTD::wcsftime; -# endif -using _STLP_VENDOR_CSTD::wcstok; - -# endif - -# if !(defined(__MWERKS__) && defined(N_PLAT_NLM)) -# if !defined (_STLP_WCE_NET) -using _STLP_VENDOR_CSTD::wcscoll; -using _STLP_VENDOR_CSTD::wcsxfrm; -# endif -using _STLP_VENDOR_CSTD::wcscat; -using _STLP_VENDOR_CSTD::wcsrchr; -using _STLP_VENDOR_CSTD::wcscmp; - -using _STLP_VENDOR_CSTD::wcscpy; -using _STLP_VENDOR_CSTD::wcscspn; - -using _STLP_VENDOR_CSTD::wcslen; -using _STLP_VENDOR_CSTD::wcsncat; -using _STLP_VENDOR_CSTD::wcsncmp; -using _STLP_VENDOR_CSTD::wcsncpy; -using _STLP_VENDOR_CSTD::wcspbrk; -using _STLP_VENDOR_CSTD::wcschr; - -using _STLP_VENDOR_CSTD::wcsspn; -# endif - -# if !defined (_STLP_WCHAR_BORLAND_EXCLUDE) && !(defined(__MWERKS__) && defined(N_PLAT_NLM)) -using _STLP_VENDOR_CSTD::wcstod; -using _STLP_VENDOR_CSTD::wcstol; -# endif - -# if !(defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_HPACC_EXCLUDE) || \ - (defined (__MWERKS__) && defined (N_PLAT_NLM))) -using _STLP_VENDOR_CSTD::wcsstr; -using _STLP_VENDOR_CSTD::wmemchr; - -# if !defined (_STLP_WCHAR_BORLAND_EXCLUDE) -# if !defined (_STLP_WCE_NET) -using _STLP_VENDOR_CSTD::wctob; -# endif -# if !defined (__DMC__) -using _STLP_VENDOR_CSTD::wmemcmp; -using _STLP_VENDOR_CSTD::wmemmove; -# endif -using _STLP_VENDOR_CSTD::wprintf; -using _STLP_VENDOR_CSTD::wscanf; -# endif - -# if defined (__BORLANDC__) -inline wchar_t* _STLP_wmemcpy(wchar_t* __wdst, const wchar_t* __wsrc, size_t __n) -{ return __STATIC_CAST(wchar_t*, _STLP_VENDOR_CSTD::wmemcpy(__wdst, __wsrc, __n)); } -inline wchar_t* _STLP_wmemset(wchar_t* __wdst, wchar_t __wc, size_t __n) -{ return __STATIC_CAST(wchar_t*, _STLP_VENDOR_CSTD::memset(__wdst, __wc, __n)); } -# undef wmemcpy -# undef wmemset -inline wchar_t* wmemcpy(wchar_t* __wdst, const wchar_t* __wsrc, size_t __n) -{ return _STLP_wmemcpy(__wdst, __wsrc, __n); } -inline wchar_t* wmemset(wchar_t* __wdst, wchar_t __wc, size_t __n) -{ return _STLP_wmemset(__wdst, __wc, __n); } -# elif defined (__DMC__) -inline wchar_t* wmemcpy(wchar_t* __RESTRICT __wdst, const wchar_t* __RESTRICT __wsrc, size_t __n) -{ return __STATIC_CAST(wchar_t*, memcpy(__wdst, __wsrc, __n * sizeof(wchar_t))); } -inline wchar_t* wmemmove(wchar_t* __RESTRICT __wdst, const wchar_t * __RESTRICT __wc, size_t __n) -{ return __STATIC_CAST(wchar_t*, memmove(__wdst, __wc, __n * sizeof(wchar_t))); } -inline wchar_t* wmemset(wchar_t* __wdst, wchar_t __wc, size_t __n) -{ for (size_t i = 0; i < __n; i++) __wdst[i] = __wc; return __wdst; } -# else -using _STLP_VENDOR_CSTD::wmemcpy; -using _STLP_VENDOR_CSTD::wmemset; -# endif -# endif - -# elif defined (__MWERKS__) && defined (N_PLAT_NLM) /* _STLP_NO_NATIVE_WIDE_FUNCTIONS */ -using _STLP_VENDOR_CSTD::wcslen; -using _STLP_VENDOR_CSTD::wcscmp; -using _STLP_VENDOR_CSTD::wcscpy; -using _STLP_VENDOR_CSTD::wcsstr; -using _STLP_VENDOR_CSTD::wcschr; -using _STLP_VENDOR_CSTD::wcsrchr; -using _STLP_VENDOR_CSTD::wcspbrk; -# endif /* _STLP_NO_NATIVE_WIDE_FUNCTIONS */ -_STLP_END_NAMESPACE - -# endif /* _STLP_IMPORT_VENDOR_CSTD */ - -# undef _STLP_WCHAR_SUNPRO_EXCLUDE -# undef _STLP_WCHAR_MSL_EXCLUDE - -# endif /* !defined(_STLP_WCE_EVC3) */ - -#endif /* _STLP_INTERNAL_CWCHAR */ diff --git a/WebKit/android/stlport/stl/_cwctype.h b/WebKit/android/stlport/stl/_cwctype.h deleted file mode 100644 index 32db7ef..0000000 --- a/WebKit/android/stlport/stl/_cwctype.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_CWCTYPE -#define _STLP_INTERNAL_CWCTYPE - -#if defined (__BORLANDC__) && !defined (_STLP_INTERNAL_CCTYPE) -# include <stl/_cctype.h> -#endif - -#if !defined (_STLP_WCE_EVC3) -# if defined (_STLP_USE_NEW_C_HEADERS) -# if !defined (N_PLAT_NLM) -# include _STLP_NATIVE_CPP_C_HEADER(cwctype) -# else - // see comments in stlport/cwchar about wint_t on Novell -# include _STLP_NATIVE_CPP_C_HEADER(wchar_t.h) -# include _STLP_NATIVE_C_HEADER(stddef.h) -# include _STLP_NATIVE_C_HEADER(stdio.h) -# endif -# if defined (__MSL__) && !defined (N_PLAT_NLM) -namespace std { - typedef wchar_t wctrans_t; - wint_t towctrans(wint_t c, wctrans_t value); - wctrans_t wctrans(const char *name); -} -using std::wctrans_t; -using std::towctrans; -using std::wctrans; -# endif -# else -# include _STLP_NATIVE_C_HEADER(wctype.h) -# endif - -# if defined (_STLP_IMPORT_VENDOR_CSTD) - -# if defined (_STLP_USE_GLIBC) && !(defined (_GLIBCPP_USE_WCHAR_T) || defined (_GLIBCXX_USE_WCHAR_T)) || \ - defined (__sun) || defined (__FreeBSD__) || \ - defined (__MINGW32__) && ((__MINGW32_MAJOR_VERSION < 3) || (__MINGW32_MAJOR_VERSION == 3) && (__MINGW32_MINOR_VERSION <= 0)) -//We take wide functions from global namespace: -# define _STLP_VENDOR_CSTD_WFUNC -# else -# define _STLP_VENDOR_CSTD_WFUNC _STLP_VENDOR_CSTD -# endif - -_STLP_BEGIN_NAMESPACE -using _STLP_VENDOR_CSTD_WFUNC::wctype_t; -using _STLP_VENDOR_CSTD_WFUNC::wint_t; -# if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -# if !defined (__BORLANDC__) && !defined (__MSL__) -using _STLP_VENDOR_CSTD_WFUNC::wctrans_t; -# if !defined (__DMC__) && (!defined(_WIN32_WCE) || _WIN32_WCE<0x500) -using _STLP_VENDOR_CSTD_WFUNC::towctrans; -using _STLP_VENDOR_CSTD_WFUNC::wctrans; -using _STLP_VENDOR_CSTD_WFUNC::wctype; -# endif -using _STLP_VENDOR_CSTD_WFUNC::iswctype; -# endif -# if !defined(N_PLAT_NLM) -using _STLP_VENDOR_CSTD_WFUNC::iswalnum; -using _STLP_VENDOR_CSTD_WFUNC::iswalpha; -using _STLP_VENDOR_CSTD_WFUNC::iswcntrl; - -using _STLP_VENDOR_CSTD_WFUNC::iswdigit; -using _STLP_VENDOR_CSTD_WFUNC::iswgraph; -using _STLP_VENDOR_CSTD_WFUNC::iswlower; -using _STLP_VENDOR_CSTD_WFUNC::iswprint; -using _STLP_VENDOR_CSTD_WFUNC::iswpunct; -using _STLP_VENDOR_CSTD_WFUNC::iswspace; -using _STLP_VENDOR_CSTD_WFUNC::iswupper; -using _STLP_VENDOR_CSTD_WFUNC::iswxdigit; - -using _STLP_VENDOR_CSTD_WFUNC::towlower; -using _STLP_VENDOR_CSTD_WFUNC::towupper; -# endif /* !N_PLAT_NLM */ -# endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ -_STLP_END_NAMESPACE -# endif /* _STLP_IMPORT_VENDOR_CSTD */ -#endif /* _STLP_WCE_EVC3 */ - -#endif /* _STLP_INTERNAL_CWCTYPE */ diff --git a/WebKit/android/stlport/stl/_deque.c b/WebKit/android/stlport/stl/_deque.c deleted file mode 100644 index 52d6fc9..0000000 --- a/WebKit/android/stlport/stl/_deque.c +++ /dev/null @@ -1,814 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_DEQUE_C -#define _STLP_DEQUE_C - -#ifndef _STLP_INTERNAL_DEQUE_H -# include <stl/_deque.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Non-inline member functions from _Deque_base. - -template <class _Tp, class _Alloc > -_Deque_base<_Tp,_Alloc >::~_Deque_base() { - if (_M_map._M_data) { - _M_destroy_nodes(_M_start._M_node, this->_M_finish._M_node + 1); - _M_map.deallocate(_M_map._M_data, _M_map_size._M_data); - } -} - -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._M_data = _M_map.allocate(_M_map_size._M_data); - - _Tp** __nstart = _M_map._M_data + (_M_map_size._M_data - __num_nodes) / 2; - _Tp** __nfinish = __nstart + __num_nodes; - - _STLP_TRY { - _M_create_nodes(__nstart, __nfinish); - } - _STLP_UNWIND((_M_map.deallocate(_M_map._M_data, _M_map_size._M_data), - _M_map._M_data = 0, _M_map_size._M_data = 0)) - _M_start._M_set_node(__nstart); - this->_M_finish._M_set_node(__nfinish - 1); - _M_start._M_cur = _M_start._M_first; - this->_M_finish._M_cur = this->_M_finish._M_first + __num_elements % this->buffer_size(); -} - -template <class _Tp, class _Alloc > -void _Deque_base<_Tp,_Alloc>::_M_create_nodes(_Tp** __nstart, - _Tp** __nfinish) { - _Tp** __cur = __nstart; - _STLP_TRY { - for (; __cur < __nfinish; ++__cur) - *__cur = _M_map_size.allocate(this->buffer_size()); - } - _STLP_UNWIND(_M_destroy_nodes(__nstart, __cur)) -} - -template <class _Tp, class _Alloc > -void _Deque_base<_Tp,_Alloc>::_M_destroy_nodes(_Tp** __nstart, - _Tp** __nfinish) { - for (_Tp** __n = __nstart; __n < __nfinish; ++__n) - _M_map_size.deallocate(*__n, this->buffer_size()); -} - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define deque _STLP_PTR_IMPL_NAME(deque) -#elif defined (_STLP_DEBUG) -# define deque _STLP_NON_DBG_NAME(deque) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -// qualified references -# define __iterator__ _Deque_iterator<_Tp, _Nonconst_traits<_Tp> > -# define const_iterator _Deque_iterator<_Tp, _Const_traits<_Tp> > -# define iterator __iterator__ -# define size_type size_t -# define value_type _Tp -#else -# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE deque<_Tp, _Alloc>::iterator -#endif - -template <class _Tp, class _Alloc > -deque<_Tp, _Alloc >& -deque<_Tp, _Alloc >::operator= (const deque<_Tp, _Alloc >& __x) { - const size_type __len = size(); - if (&__x != this) { - if (__len >= __x.size()) - erase(copy(__x.begin(), __x.end(), this->_M_start), this->_M_finish); - else { - const_iterator __mid = __x.begin() + difference_type(__len); - copy(__x.begin(), __mid, this->_M_start); - insert(this->_M_finish, __mid, __x.end()); - } - } - return *this; -} - -template <class _Tp, class _Alloc > -void deque<_Tp, _Alloc >::_M_fill_insert(iterator __pos, - size_type __n, const value_type& __x) { - if (__pos._M_cur == this->_M_start._M_cur) { - iterator __new_start = _M_reserve_elements_at_front(__n); - _STLP_TRY { - uninitialized_fill(__new_start, this->_M_start, __x); - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - this->_M_start = __new_start; - } - else if (__pos._M_cur == this->_M_finish._M_cur) { - iterator __new_finish = _M_reserve_elements_at_back(__n); - _STLP_TRY { - uninitialized_fill(this->_M_finish, __new_finish, __x); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node+1, __new_finish._M_node+1)) - this->_M_finish = __new_finish; - } - else - _M_fill_insert_aux(__pos, __n, __x, _Movable()); -} - -#if !defined (_STLP_MEMBER_TEMPLATES) - -template <class _Tp, class _Alloc > -void deque<_Tp, _Alloc>::insert(iterator __pos, - const value_type* __first, const value_type* __last) { - size_type __n = __last - __first; - if (__pos._M_cur == this->_M_start._M_cur) { - iterator __new_start = _M_reserve_elements_at_front(__n); - _STLP_TRY { - _STLP_PRIV __ucopy(__first, __last, __new_start); - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - this->_M_start = __new_start; - } - else if (__pos._M_cur == this->_M_finish._M_cur) { - iterator __new_finish = _M_reserve_elements_at_back(__n); - _STLP_TRY { - _STLP_PRIV __ucopy(__first, __last, this->_M_finish); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, - __new_finish._M_node + 1)) - this->_M_finish = __new_finish; - } - else - _M_insert_range_aux(__pos, __first, __last, __n, _Movable()); -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::insert(iterator __pos, - const_iterator __first, const_iterator __last) { - size_type __n = __last - __first; - if (__pos._M_cur == this->_M_start._M_cur) { - iterator __new_start = _M_reserve_elements_at_front(__n); - _STLP_TRY { - _STLP_PRIV __ucopy(__first, __last, __new_start); - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - this->_M_start = __new_start; - } - else if (__pos._M_cur == this->_M_finish._M_cur) { - iterator __new_finish = _M_reserve_elements_at_back(__n); - _STLP_TRY { - _STLP_PRIV __ucopy(__first, __last, this->_M_finish); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, - __new_finish._M_node + 1)) - this->_M_finish = __new_finish; - } - else - _M_insert_range_aux(__pos, __first, __last, __n, _Movable()); -} - -#endif /* _STLP_MEMBER_TEMPLATES */ - -template <class _Tp, class _Alloc > -__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __pos, - const __true_type& /*_Movable*/) { - difference_type __index = __pos - this->_M_start; - if (size_type(__index) < this->size() >> 1) { - //We move the start of the deque one position to the right - //starting from the rightmost element to move. - iterator __src = __pos, __dst = __pos; - _STLP_STD::_Destroy(&(*__dst)); - if (__src != this->_M_start) { - for (--__src; __dst != this->_M_start; --__src, --__dst) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - } - _M_pop_front_aux(); - } - else { - iterator __src = __pos, __dst = __pos; - _STLP_STD::_Destroy(&(*__dst)); - for (++__src; __src != this->_M_finish; ++__src, ++__dst) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - //Duplication of the pop_back code without the destroy which has already been done: - if (this->_M_finish._M_cur != this->_M_finish._M_first) { - --this->_M_finish._M_cur; - } - else { - _M_pop_back_aux(); - } - } - return this->_M_start + __index; -} - -template <class _Tp, class _Alloc > -__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __pos, - const __false_type& /*_Movable*/) { - iterator __next = __pos; - ++__next; - difference_type __index = __pos - this->_M_start; - if (size_type(__index) < this->size() >> 1) { - copy_backward(this->_M_start, __pos, __next); - pop_front(); - } - else { - copy(__next, this->_M_finish, __pos); - pop_back(); - } - return this->_M_start + __index; -} - -template <class _Tp, class _Alloc > -__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __first, iterator __last, - const __true_type& /*_Movable*/) { - difference_type __n = __last - __first; - difference_type __elems_before = __first - this->_M_start; - if (__elems_before <= difference_type(this->size() - __n) / 2) { - iterator __src = __first, __dst = __last; - if (__src != this->_M_start) { - for (--__src, --__dst; (__src >= this->_M_start) && (__dst >= __first); --__src, --__dst) { - _STLP_STD::_Destroy(&(*__dst)); - _STLP_STD::_Move_Construct(&(*__dst), *__src); - } - if (__dst >= __first) { - //There are more elements to erase than elements to move - _STLP_STD::_Destroy_Range(__first, ++__dst); - _STLP_STD::_Destroy_Moved_Range(this->_M_start, __first); - } - else { - //There are more elements to move than elements to erase - for (; __src >= this->_M_start; --__src, --__dst) { - _STLP_STD::_Destroy_Moved(&(*__dst)); - _STLP_STD::_Move_Construct(&(*__dst), *__src); - } - _STLP_STD::_Destroy_Moved_Range(this->_M_start, ++__dst); - } - } - else { - _STLP_STD::_Destroy_Range(this->_M_start, __last); - } - iterator __new_start = this->_M_start + __n; - this->_M_destroy_nodes(this->_M_start._M_node, __new_start._M_node); - this->_M_start = __new_start; - } - else { - if (__last != this->_M_finish) { - iterator __src = __last, __dst = __first; - for (; (__src != this->_M_finish) && (__dst != __last); ++__src, ++__dst) { - _STLP_STD::_Destroy(&(*__dst)); - _STLP_STD::_Move_Construct(&(*__dst), *__src); - } - if (__dst != __last) { - //There are more elements to erase than elements to move - _STLP_STD::_Destroy_Range(__dst, __last); - _STLP_STD::_Destroy_Moved_Range(__last, this->_M_finish); - } - else { - //There are more elements to move than elements to erase - for (; __src != this->_M_finish; ++__src, ++__dst) { - _STLP_STD::_Destroy_Moved(&(*__dst)); - _STLP_STD::_Move_Construct(&(*__dst), *__src); - } - _STLP_STD::_Destroy_Moved_Range(__dst, this->_M_finish); - } - } - else { - _STLP_STD::_Destroy_Range(__first, this->_M_finish); - } - iterator __new_finish = this->_M_finish - __n; - this->_M_destroy_nodes(__new_finish._M_node + 1, this->_M_finish._M_node + 1); - this->_M_finish = __new_finish; - } - return this->_M_start + __elems_before; -} - -template <class _Tp, class _Alloc > -__iterator__ deque<_Tp,_Alloc>::_M_erase(iterator __first, iterator __last, - const __false_type& /*_Movable*/) { - difference_type __n = __last - __first; - difference_type __elems_before = __first - this->_M_start; - if (__elems_before <= difference_type(this->size() - __n) / 2) { - copy_backward(this->_M_start, __first, __last); - iterator __new_start = this->_M_start + __n; - _STLP_STD::_Destroy_Range(this->_M_start, __new_start); - this->_M_destroy_nodes(this->_M_start._M_node, __new_start._M_node); - this->_M_start = __new_start; - } - else { - copy(__last, this->_M_finish, __first); - iterator __new_finish = this->_M_finish - __n; - _STLP_STD::_Destroy_Range(__new_finish, this->_M_finish); - this->_M_destroy_nodes(__new_finish._M_node + 1, this->_M_finish._M_node + 1); - this->_M_finish = __new_finish; - } - return this->_M_start + __elems_before; -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::clear() { - for (_Map_pointer __node = this->_M_start._M_node + 1; - __node < this->_M_finish._M_node; - ++__node) { - _STLP_STD::_Destroy_Range(*__node, *__node + this->buffer_size()); - this->_M_map_size.deallocate(*__node, this->buffer_size()); - } - - if (this->_M_start._M_node != this->_M_finish._M_node) { - _STLP_STD::_Destroy_Range(this->_M_start._M_cur, this->_M_start._M_last); - _STLP_STD::_Destroy_Range(this->_M_finish._M_first, this->_M_finish._M_cur); - this->_M_map_size.deallocate(this->_M_finish._M_first, this->buffer_size()); - } - else - _STLP_STD::_Destroy_Range(this->_M_start._M_cur, this->_M_finish._M_cur); - - this->_M_finish = this->_M_start; -} - -// Precondition: this->_M_start and this->_M_finish have already been initialized, -// but none of the deque's elements have yet been constructed. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_fill_initialize(const value_type& __val, - const __false_type& /*_TrivialInit*/) { - _Map_pointer __cur = this->_M_start._M_node; - _STLP_TRY { - for (; __cur < this->_M_finish._M_node; ++__cur) - uninitialized_fill(*__cur, *__cur + this->buffer_size(), __val); - uninitialized_fill(this->_M_finish._M_first, this->_M_finish._M_cur, __val); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(this->_M_start, iterator(*__cur, __cur))) -} - - -// Called only if this->_M_finish._M_cur == this->_M_finish._M_last - 1. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_push_back_aux_v(const value_type& __t) { - _M_reserve_map_at_back(); - *(this->_M_finish._M_node + 1) = this->_M_map_size.allocate(this->buffer_size()); - _STLP_TRY { - _Copy_Construct(this->_M_finish._M_cur, __t); - this->_M_finish._M_set_node(this->_M_finish._M_node + 1); - this->_M_finish._M_cur = this->_M_finish._M_first; - } - _STLP_UNWIND(this->_M_map_size.deallocate(*(this->_M_finish._M_node + 1), - this->buffer_size())) -} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) -// Called only if this->_M_finish._M_cur == this->_M_finish._M_last - 1. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_push_back_aux() { - _M_reserve_map_at_back(); - *(this->_M_finish._M_node + 1) = this->_M_map_size.allocate(this->buffer_size()); - _STLP_TRY { - _STLP_STD::_Construct(this->_M_finish._M_cur); - this->_M_finish._M_set_node(this->_M_finish._M_node + 1); - this->_M_finish._M_cur = this->_M_finish._M_first; - } - _STLP_UNWIND(this->_M_map_size.deallocate(*(this->_M_finish._M_node + 1), - this->buffer_size())) -} -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - -// Called only if this->_M_start._M_cur == this->_M_start._M_first. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_push_front_aux_v(const value_type& __t) { - _M_reserve_map_at_front(); - *(this->_M_start._M_node - 1) = this->_M_map_size.allocate(this->buffer_size()); - _STLP_TRY { - this->_M_start._M_set_node(this->_M_start._M_node - 1); - this->_M_start._M_cur = this->_M_start._M_last - 1; - _Copy_Construct(this->_M_start._M_cur, __t); - } - _STLP_UNWIND((++this->_M_start, - this->_M_map_size.deallocate(*(this->_M_start._M_node - 1), this->buffer_size()))) -} - - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) -// Called only if this->_M_start._M_cur == this->_M_start._M_first. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_push_front_aux() { - _M_reserve_map_at_front(); - *(this->_M_start._M_node - 1) = this->_M_map_size.allocate(this->buffer_size()); - _STLP_TRY { - this->_M_start._M_set_node(this->_M_start._M_node - 1); - this->_M_start._M_cur = this->_M_start._M_last - 1; - _STLP_STD::_Construct(this->_M_start._M_cur); - } - _STLP_UNWIND((++this->_M_start, this->_M_map_size.deallocate(*(this->_M_start._M_node - 1), - this->buffer_size()))) -} -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - -// Called only if this->_M_finish._M_cur == this->_M_finish._M_first. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_pop_back_aux() { - this->_M_map_size.deallocate(this->_M_finish._M_first, this->buffer_size()); - this->_M_finish._M_set_node(this->_M_finish._M_node - 1); - this->_M_finish._M_cur = this->_M_finish._M_last - 1; -} - -// Note that if the deque has at least one element (a precondition for this member -// function), and if this->_M_start._M_cur == this->_M_start._M_last, then the deque -// must have at least two nodes. -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_pop_front_aux() { - if (this->_M_start._M_cur != this->_M_start._M_last - 1) - ++this->_M_start._M_cur; - else { - this->_M_map_size.deallocate(this->_M_start._M_first, this->buffer_size()); - this->_M_start._M_set_node(this->_M_start._M_node + 1); - this->_M_start._M_cur = this->_M_start._M_first; - } -} - -template <class _Tp, class _Alloc > -__iterator__ deque<_Tp,_Alloc>::_M_fill_insert_aux(iterator __pos, size_type __n, - const value_type& __x, - const __true_type& /*_Movable*/) { - const difference_type __elems_before = __pos - this->_M_start; - size_type __length = this->size(); - value_type __x_copy = __x; - if (__elems_before <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - __pos = this->_M_start + __elems_before; - _STLP_TRY { - iterator __dst = __new_start; - iterator __src = this->_M_start; - for (; __src != __pos; ++__dst, ++__src) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_start = __new_start; - uninitialized_fill(__dst, __src, __x_copy); - __pos = __dst; - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - const difference_type __elems_after = difference_type(__length) - __elems_before; - __pos = this->_M_finish - __elems_after; - _STLP_TRY { - iterator __dst = __new_finish; - iterator __src = this->_M_finish; - for (--__src, --__dst; __src >= __pos; --__src, --__dst) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_finish = __new_finish; - uninitialized_fill(__pos, __pos + __n, __x_copy); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } - return __pos; -} - -template <class _Tp, class _Alloc > -__iterator__ deque<_Tp,_Alloc>::_M_fill_insert_aux(iterator __pos, size_type __n, - const value_type& __x, - const __false_type& /*_Movable*/) { - const difference_type __elems_before = __pos - this->_M_start; - size_type __length = this->size(); - value_type __x_copy = __x; - if (__elems_before <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - iterator __old_start = this->_M_start; - __pos = this->_M_start + __elems_before; - _STLP_TRY { - if (__elems_before >= difference_type(__n)) { - iterator __start_n = this->_M_start + difference_type(__n); - _STLP_PRIV __ucopy(this->_M_start, __start_n, __new_start); - this->_M_start = __new_start; - copy(__start_n, __pos, __old_start); - fill(__pos - difference_type(__n), __pos, __x_copy); - __pos -= difference_type(__n); - } - else { - _STLP_PRIV __uninitialized_copy_fill(this->_M_start, __pos, __new_start, - this->_M_start, __x_copy); - this->_M_start = __new_start; - fill(__old_start, __pos, __x_copy); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - iterator __old_finish = this->_M_finish; - const difference_type __elems_after = - difference_type(__length) - __elems_before; - __pos = this->_M_finish - __elems_after; - _STLP_TRY { - if (__elems_after > difference_type(__n)) { - iterator __finish_n = this->_M_finish - difference_type(__n); - _STLP_PRIV __ucopy(__finish_n, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy_backward(__pos, __finish_n, __old_finish); - fill(__pos, __pos + difference_type(__n), __x_copy); - } - else { - _STLP_PRIV __uninitialized_fill_copy(this->_M_finish, __pos + difference_type(__n), - __x_copy, __pos, this->_M_finish); - this->_M_finish = __new_finish; - fill(__pos, __old_finish, __x_copy); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } - return __pos; -} - -#if !defined (_STLP_MEMBER_TEMPLATES) -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos, - const value_type* __first, const value_type* __last, - size_type __n, const __true_type& /*_Movable*/) { - const difference_type __elems_before = __pos - this->_M_start; - size_type __length = size(); - if (__elems_before <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - __pos = this->_M_start + __elems_before; - _STLP_TRY { - iterator __dst = __new_start; - iterator __src = this->_M_start; - for (; __src != __pos; ++__dst, ++__src) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_start = __new_start; - _STLP_PRIV __ucopy(__first, __last, __dst); - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - const difference_type __elems_after = difference_type(__length) - __elems_before; - __pos = this->_M_finish - __elems_after; - _STLP_TRY { - iterator __dst = __new_finish; - iterator __src = this->_M_finish; - for (--__src, --__dst; __src >= __pos; --__src, --__dst) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_finish = __new_finish; - _STLP_PRIV __ucopy(__first, __last, __pos); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos, - const value_type* __first, const value_type* __last, - size_type __n, const __false_type& /*_Movable*/) { - const difference_type __elems_before = __pos - this->_M_start; - size_type __length = size(); - if (__elems_before <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - iterator __old_start = this->_M_start; - __pos = this->_M_start + __elems_before; - _STLP_TRY { - if (__elems_before >= difference_type(__n)) { - iterator __start_n = this->_M_start + difference_type(__n); - _STLP_PRIV __ucopy(this->_M_start, __start_n, __new_start); - this->_M_start = __new_start; - copy(__start_n, __pos, __old_start); - copy(__first, __last, __pos - difference_type(__n)); - } - else { - const value_type* __mid = __first + (difference_type(__n) - __elems_before); - __uninitialized_copy_copy(this->_M_start, __pos, __first, __mid, __new_start); - this->_M_start = __new_start; - copy(__mid, __last, __old_start); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - iterator __old_finish = this->_M_finish; - const difference_type __elems_after = - difference_type(__length) - __elems_before; - __pos = this->_M_finish - __elems_after; - _STLP_TRY { - - if (__elems_after > difference_type(__n)) { - iterator __finish_n = this->_M_finish - difference_type(__n); - _STLP_PRIV __ucopy(__finish_n, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy_backward(__pos, __finish_n, __old_finish); - copy(__first, __last, __pos); - } - else { - const value_type* __mid = __first + __elems_after; - __uninitialized_copy_copy(__mid, __last, __pos, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy(__first, __mid, __pos); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos, - const_iterator __first, const_iterator __last, - size_type __n, const __true_type& /*_Movable*/) { - const difference_type __elems_before = __pos - this->_M_start; - size_type __length = size(); - if (__elems_before <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - __pos = this->_M_start + __elems_before; - _STLP_TRY { - iterator __dst = __new_start; - iterator __src = this->_M_start; - for (; __src != __pos; ++__dst, ++__src) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_start = __new_start; - _STLP_PRIV __ucopy(__first, __last, __dst); - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - const difference_type __elems_after = difference_type(__length) - __elems_before; - __pos = this->_M_finish - __elems_after; - _STLP_TRY { - iterator __dst = __new_finish; - iterator __src = this->_M_finish; - for (--__src, --__dst; __src >= __pos; --__src, --__dst) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_finish = __new_finish; - _STLP_PRIV __ucopy(__first, __last, __pos); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_insert_range_aux(iterator __pos, - const_iterator __first, const_iterator __last, - size_type __n, const __false_type& /*_Movable*/) { - const difference_type __elems_before = __pos - this->_M_start; - size_type __length = size(); - if (__elems_before < difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - iterator __old_start = this->_M_start; - __pos = this->_M_start + __elems_before; - _STLP_TRY { - if (__elems_before >= difference_type(__n)) { - iterator __start_n = this->_M_start + __n; - _STLP_PRIV __ucopy(this->_M_start, __start_n, __new_start); - this->_M_start = __new_start; - copy(__start_n, __pos, __old_start); - copy(__first, __last, __pos - difference_type(__n)); - } - else { - const_iterator __mid = __first + (__n - __elems_before); - __uninitialized_copy_copy(this->_M_start, __pos, __first, __mid, __new_start); - this->_M_start = __new_start; - copy(__mid, __last, __old_start); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - iterator __old_finish = this->_M_finish; - const difference_type __elems_after = __length - __elems_before; - __pos = this->_M_finish - __elems_after; - _STLP_TRY { - if (__elems_after > difference_type(__n)) { - iterator __finish_n = this->_M_finish - difference_type(__n); - _STLP_PRIV __ucopy(__finish_n, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy_backward(__pos, __finish_n, __old_finish); - copy(__first, __last, __pos); - } - else { - const_iterator __mid = __first + __elems_after; - __uninitialized_copy_copy(__mid, __last, __pos, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy(__first, __mid, __pos); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } -} -#endif /* _STLP_MEMBER_TEMPLATES */ - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_new_elements_at_front(size_type __new_elems) { - size_type __new_nodes - = (__new_elems + this->buffer_size() - 1) / this->buffer_size(); - _M_reserve_map_at_front(__new_nodes); - size_type __i = 1; - _STLP_TRY { - for (; __i <= __new_nodes; ++__i) - *(this->_M_start._M_node - __i) = this->_M_map_size.allocate(this->buffer_size()); - } - _STLP_UNWIND(for (size_type __j = 1; __j < __i; ++__j) - this->_M_map_size.deallocate(*(this->_M_start._M_node - __j), this->buffer_size())) -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_new_elements_at_back(size_type __new_elems) { - size_type __new_nodes - = (__new_elems + this->buffer_size() - 1) / this->buffer_size(); - _M_reserve_map_at_back(__new_nodes); - size_type __i = 1; - _STLP_TRY { - for (; __i <= __new_nodes; ++__i) - *(this->_M_finish._M_node + __i) = this->_M_map_size.allocate(this->buffer_size()); - } - _STLP_UNWIND(for (size_type __j = 1; __j < __i; ++__j) - this->_M_map_size.deallocate(*(this->_M_finish._M_node + __j), this->buffer_size())) -} - -template <class _Tp, class _Alloc > -void deque<_Tp,_Alloc>::_M_reallocate_map(size_type __nodes_to_add, - bool __add_at_front) { - size_type __old_num_nodes = this->_M_finish._M_node - this->_M_start._M_node + 1; - size_type __new_num_nodes = __old_num_nodes + __nodes_to_add; - - _Map_pointer __new_nstart; - if (this->_M_map_size._M_data > 2 * __new_num_nodes) { - __new_nstart = this->_M_map._M_data + (this->_M_map_size._M_data - __new_num_nodes) / 2 - + (__add_at_front ? __nodes_to_add : 0); - if (__new_nstart < this->_M_start._M_node) - copy(this->_M_start._M_node, this->_M_finish._M_node + 1, __new_nstart); - else - copy_backward(this->_M_start._M_node, this->_M_finish._M_node + 1, - __new_nstart + __old_num_nodes); - } - 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; - - _Map_pointer __new_map = this->_M_map.allocate(__new_map_size); - __new_nstart = __new_map + (__new_map_size - __new_num_nodes) / 2 - + (__add_at_front ? __nodes_to_add : 0); - copy(this->_M_start._M_node, this->_M_finish._M_node + 1, __new_nstart); - this->_M_map.deallocate(this->_M_map._M_data, this->_M_map_size._M_data); - - this->_M_map._M_data = __new_map; - this->_M_map_size._M_data = __new_map_size; - } - - this->_M_start._M_set_node(__new_nstart); - this->_M_finish._M_set_node(__new_nstart + __old_num_nodes - 1); -} - -#if defined (deque) -# undef deque -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#undef __iterator__ -#undef iterator -#undef const_iterator -#undef size_type -#undef value_type - -#endif /* _STLP_DEQUE_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_deque.h b/WebKit/android/stlport/stl/_deque.h deleted file mode 100644 index 6b8b938..0000000 --- a/WebKit/android/stlport/stl/_deque.h +++ /dev/null @@ -1,1097 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DEQUE_H -#define _STLP_INTERNAL_DEQUE_H - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_UNINITIALIZED_H -# include <stl/_uninitialized.h> -#endif - -#ifndef _STLP_RANGE_ERRORS_H -# include <stl/_range_errors.h> -#endif - -/* Class invariants: - * For any nonsingular iterator i: - * i.node is the address of an element in the map array. The - * contents of i.node is a pointer to the beginning of a node. - * i.first == *(i.node) - * i.last == i.first + node_size - * i.cur is a pointer in the range [i.first, i.last). NOTE: - * the implication of this is that i.cur is always a dereferenceable - * pointer, even if i is a past-the-end iterator. - * Start and Finish are always nonsingular iterators. NOTE: this means - * that an empty deque must have one node, and that a deque - * with N elements, where N is the buffer size, must have two nodes. - * For every node other than start.node and finish.node, every element - * in the node is an initialized object. If start.node == finish.node, - * then [start.cur, finish.cur) are initialized objects, and - * the elements outside that range are uninitialized storage. Otherwise, - * [start.cur, start.last) and [finish.first, finish.cur) are initialized - * objects, and [start.first, start.cur) and [finish.cur, finish.last) - * are uninitialized storage. - * [map, map + map_size) is a valid, non-empty range. - * [start.node, finish.node] is a valid range contained within - * [map, map + map_size). - * A pointer in the range [map, map + map_size) points to an allocated node - * if and only if the pointer is in the range [start.node, finish.node]. - */ - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -struct _Deque_iterator_base { - - enum _Constants { - _blocksize = _MAX_BYTES, - __buffer_size = (sizeof(_Tp) < (size_t)_blocksize ? - ( (size_t)_blocksize / sizeof(_Tp)) : size_t(1)) - }; - - typedef random_access_iterator_tag iterator_category; - - typedef _Tp value_type; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - - typedef value_type** _Map_pointer; - - typedef _Deque_iterator_base< _Tp > _Self; - - value_type* _M_cur; - value_type* _M_first; - value_type* _M_last; - _Map_pointer _M_node; - - _Deque_iterator_base(value_type* __x, _Map_pointer __y) - : _M_cur(__x), _M_first(*__y), - _M_last(*__y + __buffer_size), _M_node(__y) {} - - _Deque_iterator_base() : _M_cur(0), _M_first(0), _M_last(0), _M_node(0) {} - -// see comment in doc/README.evc4 and doc/README.evc8 -#if defined (_STLP_MSVC) && (_STLP_MSVC <= 1401) && defined (MIPS) && defined (NDEBUG) - _Deque_iterator_base(_Deque_iterator_base const& __other) - : _M_cur(__other._M_cur), _M_first(__other._M_first), - _M_last(__other._M_last), _M_node(__other._M_node) {} -#endif - - difference_type _M_subtract(const _Self& __x) const { - return difference_type(__buffer_size) * (_M_node - __x._M_node - 1) + - (_M_cur - _M_first) + (__x._M_last - __x._M_cur); - } - - void _M_increment() { - if (++_M_cur == _M_last) { - _M_set_node(_M_node + 1); - _M_cur = _M_first; - } - } - - void _M_decrement() { - if (_M_cur == _M_first) { - _M_set_node(_M_node - 1); - _M_cur = _M_last; - } - --_M_cur; - } - - void _M_advance(difference_type __n) { - difference_type __offset = __n + (_M_cur - _M_first); - if (__offset >= 0 && __offset < difference_type(__buffer_size)) - _M_cur += __n; - else { - difference_type __node_offset = - __offset > 0 ? __offset / __buffer_size - : -difference_type((-__offset - 1) / __buffer_size) - 1; - _M_set_node(_M_node + __node_offset); - _M_cur = _M_first + - - (__offset - __node_offset * difference_type(__buffer_size)); - } - } - - void _M_set_node(_Map_pointer __new_node) { - _M_last = (_M_first = *(_M_node = __new_node)) + difference_type(__buffer_size); - } -}; - - -template <class _Tp, class _Traits> -struct _Deque_iterator : public _Deque_iterator_base< _Tp> { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef typename _Traits::reference reference; - typedef typename _Traits::pointer pointer; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef value_type** _Map_pointer; - - typedef _Deque_iterator_base< _Tp > _Base; - typedef _Deque_iterator<_Tp, _Traits> _Self; - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef _Deque_iterator<_Tp, _NonConstTraits> iterator; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef _Deque_iterator<_Tp, _ConstTraits> const_iterator; - - _Deque_iterator(value_type* __x, _Map_pointer __y) : - _Deque_iterator_base<value_type>(__x,__y) {} - - _Deque_iterator() {} - //copy constructor for iterator and constructor from iterator for const_iterator - _Deque_iterator(const iterator& __x) : - _Deque_iterator_base<value_type>(__x) {} - - reference operator*() const { - return *this->_M_cur; - } - - _STLP_DEFINE_ARROW_OPERATOR - - difference_type operator-(const const_iterator& __x) const { return this->_M_subtract(__x); } - - _Self& operator++() { this->_M_increment(); return *this; } - _Self operator++(int) { - _Self __tmp = *this; - ++*this; - return __tmp; - } - - _Self& operator--() { this->_M_decrement(); return *this; } - _Self operator--(int) { - _Self __tmp = *this; - --*this; - return __tmp; - } - - _Self& operator+=(difference_type __n) { this->_M_advance(__n); return *this; } - _Self operator+(difference_type __n) const { - _Self __tmp = *this; - return __tmp += __n; - } - - _Self& operator-=(difference_type __n) { return *this += -__n; } - _Self operator-(difference_type __n) const { - _Self __tmp = *this; - return __tmp -= __n; - } - - reference operator[](difference_type __n) const { return *(*this + __n); } -}; - - -template <class _Tp, class _Traits> -inline _Deque_iterator<_Tp, _Traits> _STLP_CALL -operator+(ptrdiff_t __n, const _Deque_iterator<_Tp, _Traits>& __x) -{ return __x + __n; } - - -#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) -template <class _Tp> -inline bool _STLP_CALL -operator==(const _Deque_iterator_base<_Tp >& __x, - const _Deque_iterator_base<_Tp >& __y) -{ return __x._M_cur == __y._M_cur; } - -template <class _Tp> -inline bool _STLP_CALL -operator < (const _Deque_iterator_base<_Tp >& __x, - const _Deque_iterator_base<_Tp >& __y) { - return (__x._M_node == __y._M_node) ? - (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node); -} - -template <class _Tp> -inline bool _STLP_CALL -operator!=(const _Deque_iterator_base<_Tp >& __x, - const _Deque_iterator_base<_Tp >& __y) -{ return __x._M_cur != __y._M_cur; } - -template <class _Tp> -inline bool _STLP_CALL -operator>(const _Deque_iterator_base<_Tp >& __x, - const _Deque_iterator_base<_Tp >& __y) -{ return __y < __x; } - -template <class _Tp> -inline bool _STLP_CALL operator>=(const _Deque_iterator_base<_Tp >& __x, - const _Deque_iterator_base<_Tp >& __y) -{ return !(__x < __y); } - -template <class _Tp> -inline bool _STLP_CALL operator<=(const _Deque_iterator_base<_Tp >& __x, - const _Deque_iterator_base<_Tp >& __y) -{ return !(__y < __x); } - -#else /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _Tp, class _Traits1, class _Traits2> -inline bool _STLP_CALL -operator==(const _Deque_iterator<_Tp, _Traits1 >& __x, - const _Deque_iterator<_Tp, _Traits2 >& __y) -{ return __x._M_cur == __y._M_cur; } - -template <class _Tp, class _Traits1, class _Traits2> -inline bool _STLP_CALL -operator < (const _Deque_iterator<_Tp, _Traits1 >& __x, - const _Deque_iterator<_Tp, _Traits2 >& __y) { - return (__x._M_node == __y._M_node) ? - (__x._M_cur < __y._M_cur) : (__x._M_node < __y._M_node); -} - -template <class _Tp> -inline bool _STLP_CALL -operator!=(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x, - const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y) -{ return __x._M_cur != __y._M_cur; } - -template <class _Tp> -inline bool _STLP_CALL -operator>(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x, - const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y) -{ return __y < __x; } - -template <class _Tp> -inline bool _STLP_CALL -operator>=(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x, - const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y) -{ return !(__x < __y); } - -template <class _Tp> -inline bool _STLP_CALL -operator<=(const _Deque_iterator<_Tp, _Nonconst_traits<_Tp> >& __x, - const _Deque_iterator<_Tp, _Const_traits<_Tp> >& __y) -{ return !(__y < __x); } -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Tp, class _Traits> -struct __type_traits<_STLP_PRIV _Deque_iterator<_Tp, _Traits> > { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Tp, class _Traits> inline _Tp* _STLP_CALL -value_type(const _STLP_PRIV _Deque_iterator<_Tp, _Traits >&) { return (_Tp*)0; } -template <class _Tp, class _Traits> inline random_access_iterator_tag _STLP_CALL -iterator_category(const _STLP_PRIV _Deque_iterator<_Tp, _Traits >&) { return random_access_iterator_tag(); } -template <class _Tp, class _Traits> inline ptrdiff_t* _STLP_CALL -distance_type(const _STLP_PRIV _Deque_iterator<_Tp, _Traits >&) { return 0; } -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -/* Deque base class. It has two purposes. First, its constructor - * and destructor allocate (but don't initialize) storage. This makes - * exception safety easier. Second, the base class encapsulates all of - * the differences between SGI-style allocators and standard-conforming - * allocators. - */ - -template <class _Tp, class _Alloc> -class _Deque_base { - typedef _Deque_base<_Tp, _Alloc> _Self; -public: - typedef _Tp value_type; - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type; - typedef _STLP_alloc_proxy<size_t, value_type, allocator_type> _Alloc_proxy; - - typedef typename _Alloc_traits<_Tp*, _Alloc>::allocator_type _Map_alloc_type; - typedef _STLP_alloc_proxy<value_type**, value_type*, _Map_alloc_type> _Map_alloc_proxy; - - typedef _Deque_iterator<_Tp, _Nonconst_traits<_Tp> > iterator; - typedef _Deque_iterator<_Tp, _Const_traits<_Tp> > const_iterator; - - static size_t _STLP_CALL buffer_size() { return (size_t)_Deque_iterator_base<_Tp>::__buffer_size; } - - _Deque_base(const allocator_type& __a, size_t __num_elements) - : _M_start(), _M_finish(), _M_map(_STLP_CONVERT_ALLOCATOR(__a, _Tp*), 0), - _M_map_size(__a, (size_t)0) - { _M_initialize_map(__num_elements); } - - _Deque_base(const allocator_type& __a) - : _M_start(), _M_finish(), _M_map(_STLP_CONVERT_ALLOCATOR(__a, _Tp*), 0), - _M_map_size(__a, (size_t)0) {} - - _Deque_base(__move_source<_Self> src) - : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish), - _M_map(__move_source<_Map_alloc_proxy>(src.get()._M_map)), - _M_map_size(__move_source<_Alloc_proxy>(src.get()._M_map_size)) { - src.get()._M_map._M_data = 0; - src.get()._M_map_size._M_data = 0; - src.get()._M_finish = src.get()._M_start; - } - - ~_Deque_base(); - -protected: - void _M_initialize_map(size_t); - void _M_create_nodes(_Tp** __nstart, _Tp** __nfinish); - void _M_destroy_nodes(_Tp** __nstart, _Tp** __nfinish); - enum { _S_initial_map_size = 8 }; - -protected: - iterator _M_start; - iterator _M_finish; - _Map_alloc_proxy _M_map; - _Alloc_proxy _M_map_size; -}; - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define deque _STLP_PTR_IMPL_NAME(deque) -#elif defined (_STLP_DEBUG) -# define deque _STLP_NON_DBG_NAME(deque) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class deque : protected _STLP_PRIV _Deque_base<_Tp, _Alloc> -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (deque) - , public __stlport_class<deque<_Tp, _Alloc> > -#endif -{ - typedef _STLP_PRIV _Deque_base<_Tp, _Alloc> _Base; - typedef deque<_Tp, _Alloc> _Self; -public: // Basic types - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag _Iterator_category; - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Base::allocator_type allocator_type; - -public: // Iterators - typedef typename _Base::iterator iterator; - typedef typename _Base::const_iterator const_iterator; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -protected: // Internal typedefs - typedef pointer* _Map_pointer; - typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialAss; - typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialCpy; - typedef typename _TrivialInit<_Tp>::_Ret _TrivialInit; -#if !defined (_STLP_NO_MOVE_SEMANTIC) - typedef typename __move_traits<_Tp>::implemented _Movable; -#else - typedef __false_type _Movable; -#endif - -public: // Basic accessors - iterator begin() { return this->_M_start; } - iterator end() { return this->_M_finish; } - const_iterator begin() const { return const_iterator(this->_M_start); } - const_iterator end() const { return const_iterator(this->_M_finish); } - - reverse_iterator rbegin() { return reverse_iterator(this->_M_finish); } - reverse_iterator rend() { return reverse_iterator(this->_M_start); } - const_reverse_iterator rbegin() const - { return const_reverse_iterator(this->_M_finish); } - const_reverse_iterator rend() const - { return const_reverse_iterator(this->_M_start); } - - reference operator[](size_type __n) - { return this->_M_start[difference_type(__n)]; } - const_reference operator[](size_type __n) const - { return this->_M_start[difference_type(__n)]; } - - void _M_range_check(size_type __n) const { - if (__n >= this->size()) - __stl_throw_out_of_range("deque"); - } - reference at(size_type __n) - { _M_range_check(__n); return (*this)[__n]; } - const_reference at(size_type __n) const - { _M_range_check(__n); return (*this)[__n]; } - - reference front() { return *this->_M_start; } - reference back() { - iterator __tmp = this->_M_finish; - --__tmp; - return *__tmp; - } - const_reference front() const { return *this->_M_start; } - const_reference back() const { - const_iterator __tmp = this->_M_finish; - --__tmp; - return *__tmp; - } - - size_type size() const { return this->_M_finish - this->_M_start; } - size_type max_size() const { return size_type(-1); } - bool empty() const { return this->_M_finish == this->_M_start; } - allocator_type get_allocator() const { return this->_M_map_size; } - -public: // Constructor, destructor. -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit deque(const allocator_type& __a = allocator_type()) -#else - deque() - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), 0) {} - deque(const allocator_type& __a) -#endif - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, 0) {} - - deque(const _Self& __x) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__x.get_allocator(), __x.size()) - { _STLP_PRIV __ucopy(__x.begin(), __x.end(), this->_M_start); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) -private: - void _M_initialize(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(_Tp)) - { _M_fill_initialize(__val, _TrivialInit()); } -public: - explicit deque(size_type __n) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), __n) - { _M_initialize(__n); } - deque(size_type __n, const value_type& __val, const allocator_type& __a = allocator_type()) -#else - explicit deque(size_type __n) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), __n) - { _M_fill_initialize(_STLP_DEFAULT_CONSTRUCTED(_Tp), _TrivialInit()); } - deque(size_type __n, const value_type& __val) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type(), __n) - { _M_fill_initialize(__val, __false_type()); } - deque(size_type __n, const value_type& __val, const allocator_type& __a) -#endif - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, __n) - { _M_fill_initialize(__val, __false_type()); } - -#if defined (_STLP_MEMBER_TEMPLATES) -protected: - template <class _Integer> - void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type&) { - this->_M_initialize_map(__n); - _M_fill_initialize(__x, __false_type()); - } - - template <class _InputIter> - void _M_initialize_dispatch(_InputIter __first, _InputIter __last, - const __false_type&) { - _M_range_initialize(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); - } - -public: - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - deque(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__first, __last, _Integral()); - } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - deque(_InputIterator __first, _InputIterator __last) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(allocator_type()) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__first, __last, _Integral()); - } -# endif - -#else - deque(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type() ) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, __last - __first) - { _STLP_PRIV __ucopy(__first, __last, this->_M_start); } - - deque(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type() ) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__a, __last - __first) - { _STLP_PRIV __ucopy(__first, __last, this->_M_start); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - deque(__move_source<_Self> src) - : _STLP_PRIV _Deque_base<_Tp, _Alloc>(__move_source<_Base>(src.get())) - {} - - ~deque() - { _STLP_STD::_Destroy_Range(this->_M_start, this->_M_finish); } - - _Self& operator= (const _Self& __x); - - void swap(_Self& __x) { - _STLP_STD::swap(this->_M_start, __x._M_start); - _STLP_STD::swap(this->_M_finish, __x._M_finish); - this->_M_map.swap(__x._M_map); - this->_M_map_size.swap(__x._M_map_size); - } - -public: - // assign(), a generalized assignment member function. Two - // versions: one that takes a count, and one that takes a range. - // The range version is a member template, so we dispatch on whether - // or not the type is an integer. - - void _M_fill_assign(size_type __n, const _Tp& __val) { - if (__n > size()) { - _STLP_STD::fill(begin(), end(), __val); - insert(end(), __n - size(), __val); - } - else { - erase(begin() + __n, end()); - _STLP_STD::fill(begin(), end(), __val); - } - } - - void assign(size_type __n, const _Tp& __val) { - _M_fill_assign(__n, __val); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } - -private: // helper functions for assign() - - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) - { _M_fill_assign((size_type) __n, (_Tp) __val); } - - template <class _InputIterator> - void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, - const __false_type& /*_IsIntegral*/) { - _M_assign_aux(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); - } - - template <class _InputIter> - void _M_assign_aux(_InputIter __first, _InputIter __last, const input_iterator_tag &) { - iterator __cur = begin(); - for ( ; __first != __last && __cur != end(); ++__cur, ++__first) - *__cur = *__first; - if (__first == __last) - erase(__cur, end()); - else - insert(end(), __first, __last); - } - - template <class _ForwardIterator> - void _M_assign_aux(_ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { -#else - void assign(const value_type *__first, const value_type *__last) { - size_type __size = size(); - size_type __len = __last - __first; - if (__len > __size) { - const value_type *__mid = __first + __size; - copy(__first, __mid, begin()); - insert(end(), __mid, __last); - } - else { - erase(copy(__first, __last, begin()), end()); - } - } - void assign(const_iterator __first, const_iterator __last) { - typedef const_iterator _ForwardIterator; -#endif /* _STLP_MEMBER_TEMPLATES */ - size_type __len = distance(__first, __last); - if (__len > size()) { - _ForwardIterator __mid = __first; - advance(__mid, size()); - copy(__first, __mid, begin()); - insert(end(), __mid, __last); - } - else { - erase(copy(__first, __last, begin()), end()); - } - } - - -public: // push_* and pop_* - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - void push_back(const value_type& __t) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - if (this->_M_finish._M_cur != this->_M_finish._M_last - 1) { - _Copy_Construct(this->_M_finish._M_cur, __t); - ++this->_M_finish._M_cur; - } - else - _M_push_back_aux_v(__t); - } -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_front(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - void push_front(const value_type& __t) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - if (this->_M_start._M_cur != this->_M_start._M_first) { - _Copy_Construct(this->_M_start._M_cur - 1, __t); - --this->_M_start._M_cur; - } - else - _M_push_front_aux_v(__t); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back() { - if (this->_M_finish._M_cur != this->_M_finish._M_last - 1) { - _STLP_STD::_Construct(this->_M_finish._M_cur); - ++this->_M_finish._M_cur; - } - else - _M_push_back_aux(); - } - void push_front() { - if (this->_M_start._M_cur != this->_M_start._M_first) { - _STLP_STD::_Construct(this->_M_start._M_cur - 1); - --this->_M_start._M_cur; - } - else - _M_push_front_aux(); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void pop_back() { - if (this->_M_finish._M_cur != this->_M_finish._M_first) { - --this->_M_finish._M_cur; - _STLP_STD::_Destroy(this->_M_finish._M_cur); - } - else { - _M_pop_back_aux(); - _STLP_STD::_Destroy(this->_M_finish._M_cur); - } - } - - void pop_front() { - _STLP_STD::_Destroy(this->_M_start._M_cur); - _M_pop_front_aux(); - } - -public: // Insert - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - iterator insert(iterator __pos, const value_type& __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - if (__pos._M_cur == this->_M_start._M_cur) { - push_front(__x); - return this->_M_start; - } - else if (__pos._M_cur == this->_M_finish._M_cur) { - push_back(__x); - iterator __tmp = this->_M_finish; - --__tmp; - return __tmp; - } - else { - return _M_fill_insert_aux(__pos, 1, __x, _Movable()); - } - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos) - { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void insert(iterator __pos, size_type __n, const value_type& __x) - { _M_fill_insert(__pos, __n, __x); } - -protected: - iterator _M_fill_insert_aux(iterator __pos, size_type __n, const value_type& __x, const __true_type& /*_Movable*/); - iterator _M_fill_insert_aux(iterator __pos, size_type __n, const value_type& __x, const __false_type& /*_Movable*/); - - void _M_fill_insert(iterator __pos, size_type __n, const value_type& __x); - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, - const __true_type& /*_IsIntegral*/) { - _M_fill_insert(__pos, (size_type) __n, (value_type) __x); - } - - template <class _InputIterator> - void _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type& /*_IsIntegral*/) { - _M_insert(__pos, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); - } - -public: - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__pos, __first, __last, _Integral()); - } - -#else /* _STLP_MEMBER_TEMPLATES */ - void _M_insert_range_aux(iterator __pos, - const value_type* __first, const value_type* __last, - size_type __n, const __true_type& /*_Movable*/); - void _M_insert_range_aux(iterator __pos, - const value_type* __first, const value_type* __last, - size_type __n, const __false_type& /*_Movable*/); - void _M_insert_range_aux(iterator __pos, - const_iterator __first, const_iterator __last, - size_type __n, const __true_type& /*_Movable*/); - void _M_insert_range_aux(iterator __pos, - const_iterator __first, const_iterator __last, - size_type __n, const __false_type& /*_Movable*/); -public: - void insert(iterator __pos, - const value_type* __first, const value_type* __last); - void insert(iterator __pos, - const_iterator __first, const_iterator __last); - -#endif /* _STLP_MEMBER_TEMPLATES */ - -public: -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, - const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - void resize(size_type __new_size, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const size_type __len = size(); - if (__new_size < __len) - erase(this->_M_start + __new_size, this->_M_finish); - else - insert(this->_M_finish, __new_size - __len, __x); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) - { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -protected: - iterator _M_erase(iterator __pos, const __true_type& /*_Movable*/); - iterator _M_erase(iterator __pos, const __false_type& /*_Movable*/); - - iterator _M_erase(iterator __first, iterator __last, const __true_type& /*_Movable*/); - iterator _M_erase(iterator __first, iterator __last, const __false_type& /*_Movable*/); -public: // Erase - iterator erase(iterator __pos) { - return _M_erase(__pos, _Movable()); - } - iterator erase(iterator __first, iterator __last) { - if (__first == this->_M_start && __last == this->_M_finish) { - clear(); - return this->_M_finish; - } - else { - if (__first == __last) - return __first; - return _M_erase(__first, __last, _Movable()); - } - } - void clear(); - -protected: // Internal construction/destruction - - void _M_fill_initialize(const value_type& __val, const __true_type& /*_TrivialInit*/) - {} - void _M_fill_initialize(const value_type& __val, const __false_type& /*_TrivialInit*/); - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void _M_range_initialize(_InputIterator __first, _InputIterator __last, - const input_iterator_tag &) { - this->_M_initialize_map(0); - _STLP_TRY { - for ( ; __first != __last; ++__first) - push_back(*__first); - } - _STLP_UNWIND(clear()) - } - template <class _ForwardIterator> - void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { - size_type __n = distance(__first, __last); - this->_M_initialize_map(__n); - _Map_pointer __cur_node = this->_M_start._M_node; - _STLP_TRY { - for (; __cur_node < this->_M_finish._M_node; ++__cur_node) { - _ForwardIterator __mid = __first; - advance(__mid, this->buffer_size()); - uninitialized_copy(__first, __mid, *__cur_node); - __first = __mid; - } - uninitialized_copy(__first, __last, this->_M_finish._M_first); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(this->_M_start, iterator(*__cur_node, __cur_node))) - } -#endif /* _STLP_MEMBER_TEMPLATES */ - -protected: // Internal push_* and pop_* - - void _M_push_back_aux_v(const value_type&); - void _M_push_front_aux_v(const value_type&); -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void _M_push_back_aux(); - void _M_push_front_aux(); -#endif /*_STLP_DONT_SUP_DFLT_PARAM !_STLP_NO_ANACHRONISMS*/ - void _M_pop_back_aux(); - void _M_pop_front_aux(); - -protected: // Internal insert functions - -#if defined (_STLP_MEMBER_TEMPLATES) - - template <class _InputIterator> - void _M_insert(iterator __pos, - _InputIterator __first, - _InputIterator __last, - const input_iterator_tag &) { - copy(__first, __last, inserter(*this, __pos)); - } - - template <class _ForwardIterator> - void _M_insert(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { - size_type __n = distance(__first, __last); - if (__pos._M_cur == this->_M_start._M_cur) { - iterator __new_start = _M_reserve_elements_at_front(__n); - _STLP_TRY { - uninitialized_copy(__first, __last, __new_start); - this->_M_start = __new_start; - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else if (__pos._M_cur == this->_M_finish._M_cur) { - iterator __new_finish = _M_reserve_elements_at_back(__n); - _STLP_TRY { - uninitialized_copy(__first, __last, this->_M_finish); - this->_M_finish = __new_finish; - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } - else - _M_insert_range_aux(__pos, __first, __last, __n, _Movable()); - } - - template <class _ForwardIterator> - void _M_insert_range_aux(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, - size_type __n, const __true_type& /*_Movable*/) { - const difference_type __elemsbefore = __pos - this->_M_start; - size_type __length = size(); - if (__elemsbefore <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - __pos = this->_M_start + __elemsbefore; - _STLP_TRY { - iterator __dst = __new_start; - iterator __src = this->_M_start; - for (; __src != __pos; ++__dst, ++__src) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_start = __new_start; - uninitialized_copy(__first, __last, __dst); - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - const difference_type __elemsafter = difference_type(__length) - __elemsbefore; - __pos = this->_M_finish - __elemsafter; - _STLP_TRY { - iterator __dst = __new_finish; - iterator __src = this->_M_finish; - for (--__src, --__dst; __src >= __pos; --__src, --__dst) { - _STLP_STD::_Move_Construct(&(*__dst), *__src); - _STLP_STD::_Destroy_Moved(&(*__src)); - } - this->_M_finish = __new_finish; - uninitialized_copy(__first, __last, __pos); - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } - } - - template <class _ForwardIterator> - void _M_insert_range_aux(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, - size_type __n, const __false_type& /*_Movable*/) { - const difference_type __elemsbefore = __pos - this->_M_start; - size_type __length = size(); - if (__elemsbefore <= difference_type(__length / 2)) { - iterator __new_start = _M_reserve_elements_at_front(__n); - iterator __old_start = this->_M_start; - __pos = this->_M_start + __elemsbefore; - _STLP_TRY { - if (__elemsbefore >= difference_type(__n)) { - iterator __start_n = this->_M_start + difference_type(__n); - uninitialized_copy(this->_M_start, __start_n, __new_start); - this->_M_start = __new_start; - copy(__start_n, __pos, __old_start); - copy(__first, __last, __pos - difference_type(__n)); - } - else { - _ForwardIterator __mid = __first; - advance(__mid, difference_type(__n) - __elemsbefore); - _STLP_PRIV __uninitialized_copy_copy(this->_M_start, __pos, __first, __mid, __new_start); - this->_M_start = __new_start; - copy(__mid, __last, __old_start); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(__new_start._M_node, this->_M_start._M_node)) - } - else { - iterator __new_finish = _M_reserve_elements_at_back(__n); - iterator __old_finish = this->_M_finish; - const difference_type __elemsafter = difference_type(__length) - __elemsbefore; - __pos = this->_M_finish - __elemsafter; - _STLP_TRY { - if (__elemsafter > difference_type(__n)) { - iterator __finish_n = this->_M_finish - difference_type(__n); - uninitialized_copy(__finish_n, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy_backward(__pos, __finish_n, __old_finish); - copy(__first, __last, __pos); - } - else { - _ForwardIterator __mid = __first; - advance(__mid, __elemsafter); - _STLP_PRIV __uninitialized_copy_copy(__mid, __last, __pos, this->_M_finish, this->_M_finish); - this->_M_finish = __new_finish; - copy(__first, __mid, __pos); - } - } - _STLP_UNWIND(this->_M_destroy_nodes(this->_M_finish._M_node + 1, __new_finish._M_node + 1)) - } - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - iterator _M_reserve_elements_at_front(size_type __n) { - size_type __vacancies = this->_M_start._M_cur - this->_M_start._M_first; - if (__n > __vacancies) - _M_new_elements_at_front(__n - __vacancies); - return this->_M_start - difference_type(__n); - } - - iterator _M_reserve_elements_at_back(size_type __n) { - size_type __vacancies = (this->_M_finish._M_last - this->_M_finish._M_cur) - 1; - if (__n > __vacancies) - _M_new_elements_at_back(__n - __vacancies); - return this->_M_finish + difference_type(__n); - } - - void _M_new_elements_at_front(size_type __new_elements); - void _M_new_elements_at_back(size_type __new_elements); - -protected: // Allocation of _M_map and nodes - - // Makes sure the _M_map has space for new nodes. Does not actually - // add the nodes. Can invalidate _M_map pointers. (And consequently, - // deque iterators.) - - void _M_reserve_map_at_back (size_type __nodes_to_add = 1) { - if (__nodes_to_add + 1 > this->_M_map_size._M_data - (this->_M_finish._M_node - this->_M_map._M_data)) - _M_reallocate_map(__nodes_to_add, false); - } - - void _M_reserve_map_at_front (size_type __nodes_to_add = 1) { - if (__nodes_to_add > size_type(this->_M_start._M_node - this->_M_map._M_data)) - _M_reallocate_map(__nodes_to_add, true); - } - - void _M_reallocate_map(size_type __nodes_to_add, bool __add_at_front); -}; - -#if defined (deque) -# undef deque -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_deque.c> -#endif - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# include <stl/pointers/_deque.h> -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_deque.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define _STLP_TEMPLATE_CONTAINER deque<_Tp, _Alloc> -#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp, class _Alloc> -struct __move_traits<deque<_Tp, _Alloc> > { - typedef __stlp_movable implemented; - typedef typename __move_traits<_Alloc>::complete complete; -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_DEQUE_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_epilog.h b/WebKit/android/stlport/stl/_epilog.h deleted file mode 100644 index 0747ae3..0000000 --- a/WebKit/android/stlport/stl/_epilog.h +++ /dev/null @@ -1,42 +0,0 @@ -/* NOTE : this header has no guards and is MEANT for multiple inclusion! - * If you are using "header protection" option with your compiler, - * please also find #pragma which disables it and put it here, to - * allow reentrancy of this header. - */ - -#ifndef _STLP_PROLOG_HEADER_INCLUDED -# error STLport epilog header can not be included as long as prolog has not be included. -#endif - -/* If the platform provides any specific epilog actions, - * like #pragmas, do include platform-specific prolog file - */ -#if defined (_STLP_HAS_SPECIFIC_PROLOG_EPILOG) -# include <stl/config/_epilog.h> -#endif - -#if !defined (_STLP_NO_POST_COMPATIBLE_SECTION) -# include <stl/_config_compat_post.h> -#endif - -#if defined (_STLP_USE_OWN_NAMESPACE) - -# if !defined (_STLP_DONT_REDEFINE_STD) -/* We redefine "std" to STLPORT, so that user code may use std:: transparently - * The STLPORT macro contains the STLport namespace name containing all the std - * stuff. - */ -# if defined (std) -/* - * Looks like the compiler native library on which STLport rely defined the std macro. - * This might introduce major incompatibility so report the problem to the STLport - * forum or comment the following #error at your own risk. - */ -# error Incompatible native Std library. -# endif /* std */ -# define std STLPORT -# endif /* _STLP_DONT_REDEFINE_STD */ - -#endif - -#undef _STLP_PROLOG_HEADER_INCLUDED /* defined in _prolog.h */ diff --git a/WebKit/android/stlport/stl/_exception.h b/WebKit/android/stlport/stl/_exception.h deleted file mode 100644 index f1fdc4c..0000000 --- a/WebKit/android/stlport/stl/_exception.h +++ /dev/null @@ -1,185 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -// The header <exception> contains low-level functions that interact -// with a compiler's exception-handling mechanism. It is assumed to -// be supplied with the compiler, rather than with the library, because -// it is inherently tied very closely to the compiler itself. - -// On platforms where <exception> does not exist, this header defines -// an exception base class. This is *not* a substitute for everything -// in <exception>, but it suffices to support a bare minimum of STL -// functionality. - -#ifndef _STLP_INTERNAL_EXCEPTION -#define _STLP_INTERNAL_EXCEPTION - -#if !defined (_STLP_NO_EXCEPTION_HEADER) - -# if defined ( _UNCAUGHT_EXCEPTION ) -# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -# endif - -# if defined (_STLP_BROKEN_EXCEPTION_CLASS) -# define exception _STLP_NULLIFIED_BROKEN_EXCEPTION_CLASS -# define bad_exception _STLP_NULLIFIED_BROKEN_BAD_EXCEPTION_CLASS -# if defined (_STLP_NO_NEW_NEW_HEADER) -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(Exception.h) -# else -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(Exception) -# endif -# undef exception -# undef bad_exception -# else -# if defined (_STLP_NO_NEW_NEW_HEADER) -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception.h) -# else -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(exception) -# endif -# endif - -# if defined (_STLP_HAS_SPECIFIC_PROLOG_EPILOG) && (defined (_STLP_MSVC) || defined (__ICL)) -// dwa 02/04/00 - here I'm assuming that __ICL uses the same library headers as vc6. -// the header <yvals.h> which ships with vc6 and is included by its native <exception> -// actually turns on warnings, so we have to turn them back off. -# include <stl/config/_warnings_off.h> -# endif - -# if defined (_STLP_USE_OWN_NAMESPACE) - -_STLP_BEGIN_NAMESPACE -# if !defined (_STLP_BROKEN_EXCEPTION_CLASS) -# if !defined (_STLP_USING_PLATFORM_SDK_COMPILER) || !defined (_WIN64) -using _STLP_VENDOR_EXCEPT_STD::exception; -# else -using ::exception; -# endif -using _STLP_VENDOR_EXCEPT_STD::bad_exception; -# endif - -# if !defined (_STLP_NO_USING_FOR_GLOBAL_FUNCTIONS) -// fbp : many platforms present strange mix of -// those in various namespaces -# if !defined (_STLP_VENDOR_UNEXPECTED_STD) -# define _STLP_VENDOR_UNEXPECTED_STD _STLP_VENDOR_EXCEPT_STD -# else -/* The following definitions are for backward compatibility as _STLP_VENDOR_TERMINATE_STD - * and _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD has been introduce after _STLP_VENDOR_UNEXPECTED_STD - * and _STLP_VENDOR_UNEXPECTED_STD was the macro used in their place before that introduction. - */ -# if !defined (_STLP_VENDOR_TERMINATE_STD) -# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_UNEXPECTED_STD -# endif -# if !defined (_STLP_VENDOR_UNCAUGHT_EXCEPTION_STD) -# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_UNEXPECTED_STD -# endif -# endif -# if !defined (_STLP_VENDOR_TERMINATE_STD) -# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_EXCEPT_STD -# endif -# if !defined (_STLP_VENDOR_UNCAUGHT_EXCEPTION_STD) -# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_EXCEPT_STD -# endif -# if !defined (_STLP_VENDOR_TERMINATE_STD) -# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_EXCEPT_STD -# endif -# if !defined (_STLP_VENDOR_UNCAUGHT_EXCEPTION_STD) -# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_EXCEPT_STD -# endif -// weird errors -# if !defined (_STLP_NO_UNEXPECTED_EXCEPT_SUPPORT) -# if defined (__ICL) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300) -//See config/_intel.h for reason about this workaround -using std::unexpected; -# else -using _STLP_VENDOR_UNEXPECTED_STD::unexpected; -# endif -using _STLP_VENDOR_UNEXPECTED_STD::unexpected_handler; -using _STLP_VENDOR_UNEXPECTED_STD::set_unexpected; -# endif -using _STLP_VENDOR_TERMINATE_STD::terminate; -using _STLP_VENDOR_TERMINATE_STD::terminate_handler; -using _STLP_VENDOR_TERMINATE_STD::set_terminate; - -# if !defined (_STLP_NO_UNCAUGHT_EXCEPT_SUPPORT) -using _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD::uncaught_exception; -# endif -# endif /* !_STLP_NO_USING_FOR_GLOBAL_FUNCTIONS */ -_STLP_END_NAMESPACE -# endif /* _STLP_OWN_NAMESPACE */ -#else /* _STLP_NO_EXCEPTION_HEADER */ - -/* fbp : absence of <exception> usually means that those - * functions are not going to be called by compiler. - * Still, define them for the user. - * dums: Policy modification, if the function do not behave like the Standard - * defined it we do not grant it in the STLport namespace. We will have - * compile time error rather than runtime error. - */ -#if 0 -/* -typedef void (*unexpected_handler)(); -unexpected_handler set_unexpected(unexpected_handler f) _STLP_NOTHROW_INHERENTLY; -void unexpected(); - -typedef void (*terminate_handler)(); -terminate_handler set_terminate(terminate_handler f) _STLP_NOTHROW_INHERENTLY; -void terminate(); - -bool uncaught_exception(); // not implemented under mpw as of Jan/1999 -*/ -#endif - -#endif /* _STLP_NO_EXCEPTION_HEADER */ - -#if defined (_STLP_NO_EXCEPTION_HEADER) || defined (_STLP_BROKEN_EXCEPTION_CLASS) -_STLP_BEGIN_NAMESPACE - -// section 18.6.1 -class _STLP_CLASS_DECLSPEC exception { -public: -# if !defined(_STLP_USE_NO_IOSTREAMS) && !defined(_STLP_INLINE_EXCEPTION_CLASS) - exception() _STLP_NOTHROW; - virtual ~exception() _STLP_NOTHROW; - virtual const char* what() const _STLP_NOTHROW; -# else - exception() _STLP_NOTHROW {} - virtual ~exception() _STLP_NOTHROW {} - virtual const char* what() const _STLP_NOTHROW {return "class exception";} -# endif -}; - -// section 18.6.2.1 -class _STLP_CLASS_DECLSPEC bad_exception : public exception { -public: -# if !defined(_STLP_USE_NO_IOSTREAMS) && !defined(_STLP_INLINE_EXCEPTION_CLASS) - bad_exception() _STLP_NOTHROW; - ~bad_exception() _STLP_NOTHROW; - const char* what() const _STLP_NOTHROW; -# else - bad_exception() _STLP_NOTHROW {} - ~bad_exception() _STLP_NOTHROW {} - const char* what() const _STLP_NOTHROW {return "class bad_exception";} -# endif -}; - -// forward declaration -class __Named_exception; -_STLP_END_NAMESPACE -#endif - -#endif /* _STLP_INTERNAL_EXCEPTION */ diff --git a/WebKit/android/stlport/stl/_fstream.c b/WebKit/android/stlport/stl/_fstream.c deleted file mode 100644 index d41685d..0000000 --- a/WebKit/android/stlport/stl/_fstream.c +++ /dev/null @@ -1,737 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_FSTREAM_C -#define _STLP_FSTREAM_C - -#ifndef _STLP_INTERNAL_FSTREAM_H -# include <stl/_fstream.h> -#endif - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -# if defined ( _STLP_NESTED_TYPE_PARAM_BUG ) -// no wchar_t is supported for this mode -# define __BF_int_type__ int -# define __BF_pos_type__ streampos -# define __BF_off_type__ streamoff -# else -# define __BF_int_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_filebuf<_CharT, _Traits>::int_type -# define __BF_pos_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_filebuf<_CharT, _Traits>::pos_type -# define __BF_off_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_filebuf<_CharT, _Traits>::off_type -# endif - - -//---------------------------------------------------------------------- -// Public basic_filebuf<> member functions - -template <class _CharT, class _Traits> -basic_filebuf<_CharT, _Traits>::basic_filebuf() - : basic_streambuf<_CharT, _Traits>(), _M_base(), - _M_constant_width(false), _M_always_noconv(false), - _M_int_buf_dynamic(false), - _M_in_input_mode(false), _M_in_output_mode(false), - _M_in_error_mode(false), _M_in_putback_mode(false), - _M_int_buf(0), _M_int_buf_EOS(0), - _M_ext_buf(0), _M_ext_buf_EOS(0), - _M_ext_buf_converted(0), _M_ext_buf_end(0), - _M_state(_STLP_DEFAULT_CONSTRUCTED(_State_type)), - _M_end_state(_STLP_DEFAULT_CONSTRUCTED(_State_type)), - _M_mmap_base(0), _M_mmap_len(0), - _M_saved_eback(0), _M_saved_gptr(0), _M_saved_egptr(0), - _M_codecvt(0), - _M_width(1), _M_max_width(1) -{ - this->_M_setup_codecvt(locale(), false); -} - -template <class _CharT, class _Traits> -basic_filebuf<_CharT, _Traits>::~basic_filebuf() { - this->close(); - _M_deallocate_buffers(); -} - - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_filebuf<_CharT, _Traits>::int_type -basic_filebuf<_CharT, _Traits>::underflow() { - return _Underflow<_CharT, _Traits>::_M_doit(this); -} - -template <class _CharT, class _Traits> -basic_filebuf<_CharT, _Traits>* -basic_filebuf<_CharT, _Traits>::close() { - bool __ok = this->is_open(); - - if (_M_in_output_mode) { - __ok = __ok && !_Traits::eq_int_type(this->overflow(traits_type::eof()), - traits_type::eof()); - __ok == __ok && this->_M_unshift(); - } - else if (_M_in_input_mode) - this->_M_exit_input_mode(); - - // Note order of arguments. We close the file even if __ok is false. - __ok = _M_base._M_close() && __ok; - - // Restore the initial state, except that we don't deallocate the buffer - // or mess with the cached codecvt information. - _M_state = _M_end_state = _State_type(); - _M_ext_buf_converted = _M_ext_buf_end = 0; - - _M_mmap_base = 0; - _M_mmap_len = 0; - - this->setg(0, 0, 0); - this->setp(0, 0); - - _M_saved_eback = _M_saved_gptr = _M_saved_egptr = 0; - - _M_in_input_mode = _M_in_output_mode = _M_in_error_mode = _M_in_putback_mode - = false; - - return __ok ? this : 0; -} - -// This member function is called whenever we exit input mode. -// It unmaps the memory-mapped file, if any, and sets -// _M_in_input_mode to false. -template <class _CharT, class _Traits> -void basic_filebuf<_CharT, _Traits>::_M_exit_input_mode() { - if (_M_mmap_base != 0) - _M_base._M_unmap(_M_mmap_base, _M_mmap_len); - _M_in_input_mode = false; - _M_mmap_base = 0; -} - - -//---------------------------------------------------------------------- -// basic_filebuf<> overridden protected virtual member functions - -template <class _CharT, class _Traits> -streamsize basic_filebuf<_CharT, _Traits>::showmanyc() { - // Is there any possibility that reads can succeed? - if (!this->is_open() || _M_in_output_mode || _M_in_error_mode) - return -1; - else if (_M_in_putback_mode) - return this->egptr() - this->gptr(); - else if (_M_constant_width) { - streamoff __pos = _M_base._M_seek(0, ios_base::cur); - streamoff __size = _M_base._M_file_size(); - return __pos >= 0 && __size > __pos ? __size - __pos : 0; - } - else - return 0; -} - - -// Make a putback position available, if necessary, by switching to a -// special internal buffer used only for putback. The buffer is -// [_M_pback_buf, _M_pback_buf + _S_pback_buf_size), but the base -// class only sees a piece of it at a time. (We want to make sure -// that we don't try to read a character that hasn't been initialized.) -// The end of the putback buffer is always _M_pback_buf + _S_pback_buf_size, -// but the beginning is usually not _M_pback_buf. -template <class _CharT, class _Traits> -__BF_int_type__ -basic_filebuf<_CharT, _Traits>::pbackfail(int_type __c) { - const int_type __eof = traits_type::eof(); - - // If we aren't already in input mode, pushback is impossible. - if (!_M_in_input_mode) - return __eof; - - // We can use the ordinary get buffer if there's enough space, and - // if it's a buffer that we're allowed to write to. - if (this->gptr() != this->eback() && - (traits_type::eq_int_type(__c, __eof) || - traits_type::eq(traits_type::to_char_type(__c), this->gptr()[-1]) || - !_M_mmap_base)) { - this->gbump(-1); - if (traits_type::eq_int_type(__c, __eof) || - traits_type::eq(traits_type::to_char_type(__c), *this->gptr())) - return traits_type::to_int_type(*this->gptr()); - } - else if (!traits_type::eq_int_type(__c, __eof)) { - // Are we in the putback buffer already? - _CharT* __pback_end = _M_pback_buf + __STATIC_CAST(int,_S_pback_buf_size); - if (_M_in_putback_mode) { - // Do we have more room in the putback buffer? - if (this->eback() != _M_pback_buf) - this->setg(this->egptr() - 1, this->egptr() - 1, __pback_end); - else - return __eof; // No more room in the buffer, so fail. - } - else { // We're not yet in the putback buffer. - _M_saved_eback = this->eback(); - _M_saved_gptr = this->gptr(); - _M_saved_egptr = this->egptr(); - this->setg(__pback_end - 1, __pback_end - 1, __pback_end); - _M_in_putback_mode = true; - } - } - else - return __eof; - - // We have made a putback position available. Assign to it, and return. - *this->gptr() = traits_type::to_char_type(__c); - return __c; -} - -// This member function flushes the put area, and also outputs the -// character __c (unless __c is eof). Invariant: we always leave room -// in the internal buffer for one character more than the base class knows -// about. We see the internal buffer as [_M_int_buf, _M_int_buf_EOS), but -// the base class only sees [_M_int_buf, _M_int_buf_EOS - 1). -template <class _CharT, class _Traits> -__BF_int_type__ -basic_filebuf<_CharT, _Traits>::overflow(int_type __c) { - // Switch to output mode, if necessary. - if (!_M_in_output_mode) - if (!_M_switch_to_output_mode()) - return traits_type::eof(); - - _CharT* __ibegin = this->_M_int_buf; - _CharT* __iend = this->pptr(); - this->setp(_M_int_buf, _M_int_buf_EOS - 1); - - // Put __c at the end of the internal buffer. - if (!traits_type::eq_int_type(__c, traits_type::eof())) - *__iend++ = _Traits::to_char_type(__c); - - // For variable-width encodings, output may take more than one pass. - while (__ibegin != __iend) { - const _CharT* __inext = __ibegin; - char* __enext = _M_ext_buf; - typename _Codecvt::result __status - = _M_codecvt->out(_M_state, __ibegin, __iend, __inext, - _M_ext_buf, _M_ext_buf_EOS, __enext); - if (__status == _Codecvt::noconv) { - return _Noconv_output<_Traits>::_M_doit(this, __ibegin, __iend) - ? traits_type::not_eof(__c) - : _M_output_error(); - } - - // For a constant-width encoding we know that the external buffer - // is large enough, so failure to consume the entire internal buffer - // or to produce the correct number of external characters, is an error. - // For a variable-width encoding, however, we require only that we - // consume at least one internal character - else if (__status != _Codecvt::error && - (((__inext == __iend) && - (__enext - _M_ext_buf == _M_width * (__iend - __ibegin))) || - (!_M_constant_width && __inext != __ibegin))) { - // We successfully converted part or all of the internal buffer. - ptrdiff_t __n = __enext - _M_ext_buf; - if (_M_write(_M_ext_buf, __n)) - __ibegin += __inext - __ibegin; - else - return _M_output_error(); - } - else - return _M_output_error(); - } - - return traits_type::not_eof(__c); -} - -// This member function must be called before any I/O has been -// performed on the stream, otherwise it has no effect. -// -// __buf == 0 && __n == 0 means to make this stream unbuffered. -// __buf != 0 && __n > 0 means to use __buf as the stream's internal -// buffer, rather than the buffer that would otherwise be allocated -// automatically. __buf must be a pointer to an array of _CharT whose -// size is at least __n. -template <class _CharT, class _Traits> -basic_streambuf<_CharT, _Traits>* -basic_filebuf<_CharT, _Traits>::setbuf(_CharT* __buf, streamsize __n) { - if (!_M_in_input_mode &&! _M_in_output_mode && !_M_in_error_mode && - _M_int_buf == 0) { - if (__buf == 0 && __n == 0) - _M_allocate_buffers(0, 1); - else if (__buf != 0 && __n > 0) - _M_allocate_buffers(__buf, __n); - } - return this; -} - -template <class _CharT, class _Traits> -__BF_pos_type__ -basic_filebuf<_CharT, _Traits>::seekoff(off_type __off, - ios_base::seekdir __whence, - ios_base::openmode /* dummy */) { - if (this->is_open() && - (__off == 0 || (_M_constant_width && this->_M_base._M_in_binary_mode()))) { - - if (!_M_seek_init(__off != 0 || __whence != ios_base::cur)) - return pos_type(-1); - - // Seek to beginning or end, regardless of whether we're in input mode. - if (__whence == ios_base::beg || __whence == ios_base::end) - return _M_seek_return(_M_base._M_seek(_M_width * __off, __whence), - _State_type()); - - // Seek relative to current position. Complicated if we're in input mode. - else if (__whence == ios_base::cur) { - if (!_M_in_input_mode) - return _M_seek_return(_M_base._M_seek(_M_width * __off, __whence), - _State_type()); - else if (_M_mmap_base != 0) { - // __off is relative to gptr(). We need to do a bit of arithmetic - // to get an offset relative to the external file pointer. - streamoff __adjust = _M_mmap_len - (this->gptr() - (_CharT*) _M_mmap_base); - - // if __off == 0, we do not need to exit input mode and to shift file pointer - return __off == 0 ? pos_type(_M_base._M_seek(0, ios_base::cur) - __adjust) - : _M_seek_return(_M_base._M_seek(__off - __adjust, ios_base::cur), _State_type()); - } - else if (_M_constant_width) { // Get or set the position. - streamoff __iadj = _M_width * (this->gptr() - this->eback()); - - // Compensate for offset relative to gptr versus offset relative - // to external pointer. For a text-oriented stream, where the - // compensation is more than just pointer arithmetic, we may get - // but not set the current position. - - if (__iadj <= _M_ext_buf_end - _M_ext_buf) { - streamoff __eadj = _M_base._M_get_offset(_M_ext_buf + __STATIC_CAST(ptrdiff_t, __iadj), _M_ext_buf_end); - - return __off == 0 ? pos_type(_M_base._M_seek(0, ios_base::cur) - __eadj) - : _M_seek_return(_M_base._M_seek(__off - __eadj, ios_base::cur), _State_type()); - } - } else { // Get the position. Encoding is var width. - // Get position in internal buffer. - ptrdiff_t __ipos = this->gptr() - this->eback(); - - // Get corresponding position in external buffer. - _State_type __state = _M_state; - int __epos = _M_codecvt->length(__state, _M_ext_buf, _M_ext_buf_end, - __ipos); - - if (__epos >= 0) { - // Sanity check (expensive): make sure __epos is the right answer. - _State_type __tmp_state = _M_state; - _Filebuf_Tmp_Buf<_CharT> __buf(__ipos); - _CharT* __ibegin = __buf._M_ptr; - _CharT* __inext = __ibegin; - - const char* __dummy; - typename _Codecvt::result __status - = _M_codecvt->in(__tmp_state, - _M_ext_buf, _M_ext_buf + __epos, __dummy, - __ibegin, __ibegin + __ipos, __inext); - if (__status != _Codecvt::error && - (__status == _Codecvt::noconv || - (__inext == __ibegin + __ipos && - equal(this->eback(), this->gptr(), __ibegin, _STLP_PRIV _Eq_traits<traits_type>())))) { - // Get the current position (at the end of the external buffer), - // then adjust it. Again, it might be a text-oriented stream. - streamoff __cur = _M_base._M_seek(0, ios_base::cur); - streamoff __adj = - _M_base._M_get_offset(_M_ext_buf, _M_ext_buf + __epos) - - _M_base._M_get_offset(_M_ext_buf, _M_ext_buf_end); - if (__cur != -1 && __cur + __adj >= 0) - return __off == 0 ? pos_type(__cur + __adj) - : _M_seek_return(__cur + __adj, __state); - //return _M_seek_return(__cur + __adj, __state); - } - // We failed the sanity check here. - } - } - } - // Unrecognized value for __whence here. - } - - return pos_type(-1); -} - - -template <class _CharT, class _Traits> -__BF_pos_type__ -basic_filebuf<_CharT, _Traits>::seekpos(pos_type __pos, - ios_base::openmode /* dummy */) { - if (this->is_open()) { - if (!_M_seek_init(true)) - return pos_type(-1); - - streamoff __off = off_type(__pos); - if (__off != -1 && _M_base._M_seek(__off, ios_base::beg) != -1) { - _M_state = __pos.state(); - return _M_seek_return(__off, __pos.state()); - } - } - - return pos_type(-1); -} - - -template <class _CharT, class _Traits> -int basic_filebuf<_CharT, _Traits>::sync() { - if (_M_in_output_mode) - return traits_type::eq_int_type(this->overflow(traits_type::eof()), - traits_type::eof()) ? -1 : 0; - return 0; -} - - -// Change the filebuf's locale. This member function has no effect -// unless it is called before any I/O is performed on the stream. -template <class _CharT, class _Traits> -void basic_filebuf<_CharT, _Traits>::imbue(const locale& __loc) { - if (!_M_in_input_mode && !_M_in_output_mode && !_M_in_error_mode) { - this->_M_setup_codecvt(__loc); - } -} - -//---------------------------------------------------------------------- -// basic_filebuf<> helper functions. - -//---------------------------------------- -// Helper functions for switching between modes. - -// This member function is called if we're performing the first I/O -// operation on a filebuf, or if we're performing an input operation -// immediately after a seek. -template <class _CharT, class _Traits> -bool basic_filebuf<_CharT, _Traits>::_M_switch_to_input_mode() { - if (this->is_open() && (((int)_M_base.__o_mode() & (int)ios_base::in) != 0) - && (_M_in_output_mode == 0) && (_M_in_error_mode == 0)) { - if (!_M_int_buf && !_M_allocate_buffers()) - return false; - - _M_ext_buf_converted = _M_ext_buf; - _M_ext_buf_end = _M_ext_buf; - - _M_end_state = _M_state; - - _M_in_input_mode = true; - return true; - } - - return false; -} - - -// This member function is called if we're performing the first I/O -// operation on a filebuf, or if we're performing an output operation -// immediately after a seek. -template <class _CharT, class _Traits> -bool basic_filebuf<_CharT, _Traits>::_M_switch_to_output_mode() { - if (this->is_open() && (_M_base.__o_mode() & (int)ios_base::out) && - _M_in_input_mode == 0 && _M_in_error_mode == 0) { - - if (!_M_int_buf && !_M_allocate_buffers()) - return false; - - // In append mode, every write does an implicit seek to the end - // of the file. Whenever leaving output mode, the end of file - // get put in the initial shift state. - if (_M_base.__o_mode() & ios_base::app) - _M_state = _State_type(); - - this->setp(_M_int_buf, _M_int_buf_EOS - 1); - _M_in_output_mode = true; - return true; - } - - return false; -} - - -//---------------------------------------- -// Helper functions for input - -// This member function is called if there is an error during input. -// It puts the filebuf in error mode, clear the get area buffer, and -// returns eof. -// returns eof. Error mode is sticky; it is cleared only by close or -// seek. - -template <class _CharT, class _Traits> -__BF_int_type__ -basic_filebuf<_CharT, _Traits>::_M_input_error() { - this->_M_exit_input_mode(); - _M_in_output_mode = false; - _M_in_error_mode = true; - this->setg(0, 0, 0); - return traits_type::eof(); -} - -template <class _CharT, class _Traits> -__BF_int_type__ -basic_filebuf<_CharT, _Traits>::_M_underflow_aux() { - // We have the state and file position from the end of the internal - // buffer. This round, they become the beginning of the internal buffer. - _M_state = _M_end_state; - - // Fill the external buffer. Start with any leftover characters that - // didn't get converted last time. - if (_M_ext_buf_end > _M_ext_buf_converted) - - _M_ext_buf_end = copy(_M_ext_buf_converted, _M_ext_buf_end, _M_ext_buf); - // boris : copy_backward did not work - //_M_ext_buf_end = copy_backward(_M_ext_buf_converted, _M_ext_buf_end, - //_M_ext_buf+ (_M_ext_buf_end - _M_ext_buf_converted)); - else - _M_ext_buf_end = _M_ext_buf; - - // Now fill the external buffer with characters from the file. This is - // a loop because occasionally we don't get enough external characters - // to make progress. - for (;;) { - ptrdiff_t __n = _M_base._M_read(_M_ext_buf_end, _M_ext_buf_EOS - _M_ext_buf_end); - - // Don't enter error mode for a failed read. Error mode is sticky, - // and we might succeed if we try again. - if (__n <= 0) - return traits_type::eof(); - - // Convert the external buffer to internal characters. - _M_ext_buf_end += __n; - const char* __enext; - _CharT* __inext; - - typename _Codecvt::result __status - = _M_codecvt->in(_M_end_state, - _M_ext_buf, _M_ext_buf_end, __enext, - _M_int_buf, _M_int_buf_EOS, __inext); - - // Error conditions: (1) Return value of error. (2) Producing internal - // characters without consuming external characters. (3) In fixed-width - // encodings, producing an internal sequence whose length is inconsistent - // with that of the internal sequence. (4) Failure to produce any - // characters if we have enough characters in the external buffer, where - // "enough" means the largest possible width of a single character. - if (__status == _Codecvt::noconv) - return _Noconv_input<_Traits>::_M_doit(this); - else if (__status == _Codecvt::error || - (__inext != _M_int_buf && __enext == _M_ext_buf) || - (_M_constant_width && - // __inext - _M_int_buf != _M_width * (__enext - _M_ext_buf)) || - (__inext - _M_int_buf) * _M_width != (__enext - _M_ext_buf)) || - (__inext == _M_int_buf && __enext - _M_ext_buf >= _M_max_width)) - return _M_input_error(); - else if (__inext != _M_int_buf) { - _M_ext_buf_converted = _M_ext_buf + (__enext - _M_ext_buf); - this->setg(_M_int_buf, _M_int_buf, __inext); - return traits_type::to_int_type(*_M_int_buf); - } - // We need to go around the loop again to get more external characters. - } -} - -//---------------------------------------- -// Helper functions for output - -// This member function is called if there is an error during output. -// It puts the filebuf in error mode, clear the put area buffer, and -// returns eof. Error mode is sticky; it is cleared only by close or -// seek. -template <class _CharT, class _Traits> -__BF_int_type__ -basic_filebuf<_CharT, _Traits>::_M_output_error() { - _M_in_output_mode = false; - _M_in_input_mode = false; - _M_in_error_mode = true; - this->setp(0, 0); - return traits_type::eof(); -} - - -// Write whatever sequence of characters is necessary to get back to -// the initial shift state. This function overwrites the external -// buffer, changes the external file position, and changes the state. -// Precondition: the internal buffer is empty. -template <class _CharT, class _Traits> -bool basic_filebuf<_CharT, _Traits>::_M_unshift() { - if (_M_in_output_mode && !_M_constant_width) { - typename _Codecvt::result __status; - do { - char* __enext = _M_ext_buf; - __status = _M_codecvt->unshift(_M_state, - _M_ext_buf, _M_ext_buf_EOS, __enext); - if (__status == _Codecvt::noconv || - (__enext == _M_ext_buf && __status == _Codecvt::ok)) - return true; - else if (__status == _Codecvt::error) - return false; - else if (!_M_write(_M_ext_buf, __enext - _M_ext_buf)) - return false; - } while (__status == _Codecvt::partial); - } - - return true; -} - - -//---------------------------------------- -// Helper functions for buffer allocation and deallocation - -// This member function is called when we're initializing a filebuf's -// internal and external buffers. The argument is the size of the -// internal buffer; the external buffer is sized using the character -// width in the current encoding. Preconditions: the buffers are currently -// null. __n >= 1. __buf is either a null pointer or a pointer to an -// array show size is at least __n. - -// We need __n >= 1 for two different reasons. For input, the base -// class always needs a buffer because of the semantics of underflow(). -// For output, we want to have an internal buffer that's larger by one -// element than the buffer that the base class knows about. (See -// basic_filebuf<>::overflow() for the reason.) -template <class _CharT, class _Traits> -bool basic_filebuf<_CharT, _Traits>::_M_allocate_buffers(_CharT* __buf, streamsize __n) { - //The major hypothesis in the following implementation is that size_t is unsigned. - //We also need streamsize byte representation to be larger or equal to the int - //representation to correctly store the encoding information. - _STLP_STATIC_ASSERT(!numeric_limits<size_t>::is_signed && - sizeof(streamsize) >= sizeof(int)) - - if (__buf == 0) { - streamsize __bufsize = __n * sizeof(_CharT); - //We first check that the streamsize representation can't overflow a size_t one. - //If it can, we check that __bufsize is not higher than the size_t max value. - if ((sizeof(streamsize) > sizeof(size_t)) && - (__bufsize > __STATIC_CAST(streamsize, (numeric_limits<size_t>::max)()))) - return false; - _M_int_buf = __STATIC_CAST(_CharT*, malloc(__STATIC_CAST(size_t, __bufsize))); - if (!_M_int_buf) - return false; - _M_int_buf_dynamic = true; - } - else { - _M_int_buf = __buf; - _M_int_buf_dynamic = false; - } - - streamsize __ebufsiz = (max)(__n * __STATIC_CAST(streamsize, _M_width), - __STATIC_CAST(streamsize, _M_codecvt->max_length())); - _M_ext_buf = 0; - if ((sizeof(streamsize) < sizeof(size_t)) || - ((sizeof(streamsize) == sizeof(size_t)) && numeric_limits<streamsize>::is_signed) || - (__ebufsiz <= __STATIC_CAST(streamsize, (numeric_limits<size_t>::max)()))) { - _M_ext_buf = __STATIC_CAST(char*, malloc(__STATIC_CAST(size_t, __ebufsiz))); - } - - if (!_M_ext_buf) { - _M_deallocate_buffers(); - return false; - } - - _M_int_buf_EOS = _M_int_buf + __STATIC_CAST(ptrdiff_t, __n); - _M_ext_buf_EOS = _M_ext_buf + __STATIC_CAST(ptrdiff_t, __ebufsiz); - return true; -} - -// Abbreviation for the most common case. -template <class _CharT, class _Traits> -bool basic_filebuf<_CharT, _Traits>::_M_allocate_buffers() { - // Choose a buffer that's at least 4096 characters long and that's a - // multiple of the page size. - streamsize __default_bufsiz = - ((_M_base.__page_size() + 4095UL) / _M_base.__page_size()) * _M_base.__page_size(); - return _M_allocate_buffers(0, __default_bufsiz); -} - -template <class _CharT, class _Traits> -void basic_filebuf<_CharT, _Traits>::_M_deallocate_buffers() { - if (_M_int_buf_dynamic) - free(_M_int_buf); - free(_M_ext_buf); - _M_int_buf = 0; - _M_int_buf_EOS = 0; - _M_ext_buf = 0; - _M_ext_buf_EOS = 0; -} - - -//---------------------------------------- -// Helper functiosn for seek and imbue - -template <class _CharT, class _Traits> -bool basic_filebuf<_CharT, _Traits>::_M_seek_init(bool __do_unshift) { - // If we're in error mode, leave it. - _M_in_error_mode = false; - - // Flush the output buffer if we're in output mode, and (conditionally) - // emit an unshift sequence. - if (_M_in_output_mode) { - bool __ok = !traits_type::eq_int_type(this->overflow(traits_type::eof()), - traits_type::eof()); - if (__do_unshift) - __ok = __ok && this->_M_unshift(); - if (!__ok) { - _M_in_output_mode = false; - _M_in_error_mode = true; - this->setp(0, 0); - return false; - } - } - - // Discard putback characters, if any. - if (_M_in_input_mode && _M_in_putback_mode) - _M_exit_putback_mode(); - - return true; -} - - -/* Change the filebuf's locale. This member function has no effect - * unless it is called before any I/O is performed on the stream. - * This function is called on construction and on an imbue call. In the - * case of the construction the codecvt facet might be a custom one if - * the basic_filebuf user has instanciate it with a custom char_traits. - * The user will have to call imbue before any I/O operation. - */ -template <class _CharT, class _Traits> -void basic_filebuf<_CharT, _Traits>::_M_setup_codecvt(const locale& __loc, bool __on_imbue) { - if (has_facet<_Codecvt>(__loc)) { - _M_codecvt = &use_facet<_Codecvt>(__loc) ; - int __encoding = _M_codecvt->encoding(); - - _M_width = (max)(__encoding, 1); - _M_max_width = _M_codecvt->max_length(); - _M_constant_width = __encoding > 0; - _M_always_noconv = _M_codecvt->always_noconv(); - } - else { - _M_codecvt = 0; - _M_width = _M_max_width = 1; - _M_constant_width = _M_always_noconv = false; - if (__on_imbue) { - //This call will generate an exception reporting the problem. - use_facet<_Codecvt>(__loc); - } - } -} - -_STLP_END_NAMESPACE - -# undef __BF_int_type__ -# undef __BF_pos_type__ -# undef __BF_off_type__ - -#endif /* _STLP_FSTREAM_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_fstream.h b/WebKit/android/stlport/stl/_fstream.h deleted file mode 100644 index b3b643c..0000000 --- a/WebKit/android/stlport/stl/_fstream.h +++ /dev/null @@ -1,757 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// This header defines classes basic_filebuf, basic_ifstream, -// basic_ofstream, and basic_fstream. These classes represent -// streambufs and streams whose sources or destinations are files. - -#ifndef _STLP_INTERNAL_FSTREAM_H -#define _STLP_INTERNAL_FSTREAM_H - -#if defined(__sgi) && !defined(__GNUC__) && !defined(_STANDARD_C_PLUS_PLUS) -# error This header file requires the -LANG:std option -#endif - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> -#endif - -#ifndef _STLP_INTERNAL_CODECVT_H -# include <stl/_codecvt.h> -#endif - -#if !defined (_STLP_USE_UNIX_IO) && !defined(_STLP_USE_WIN32_IO) && \ - !defined (_STLP_USE_UNIX_EMULATION_IO) && !defined (_STLP_USE_STDIO_IO) - -# if defined (_STLP_UNIX) || defined (__CYGWIN__) || defined (__amigaos__) || defined (__EMX__) -// open/close/read/write -# define _STLP_USE_UNIX_IO -# elif defined (_STLP_WIN32) -// CreateFile/ReadFile/WriteFile -# define _STLP_USE_WIN32_IO -# elif defined (_STLP_WIN16) || defined (_STLP_MAC) -// _open/_read/_write -# define _STLP_USE_UNIX_EMULATION_IO -# else -// fopen/fread/fwrite -# define _STLP_USE_STDIO_IO -# endif /* _STLP_UNIX */ -#endif /* mode selection */ - -#if defined (_STLP_USE_WIN32_IO) -typedef void* _STLP_fd; -#elif defined (_STLP_USE_UNIX_EMULATION_IO) || defined (_STLP_USE_STDIO_IO) || defined (_STLP_USE_UNIX_IO) -typedef int _STLP_fd; -#else -# error "Configure i/o !" -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Class _Filebuf_base, a private base class to factor out the system- -// dependent code from basic_filebuf<>. - -class _STLP_CLASS_DECLSPEC _Filebuf_base { -public: // Opening and closing files. - _Filebuf_base(); - - bool _M_open(const char*, ios_base::openmode, long __protection); - bool _M_open(const char*, ios_base::openmode); - bool _M_open(int __id, ios_base::openmode = ios_base::__default_mode); -#if defined (_STLP_USE_WIN32_IO) - bool _M_open(_STLP_fd __id, ios_base::openmode = ios_base::__default_mode); -#endif /* _STLP_USE_WIN32_IO */ - bool _M_close(); - -public: // Low-level I/O, like Unix read/write - ptrdiff_t _M_read(char* __buf, ptrdiff_t __n); - streamoff _M_seek(streamoff __offset, ios_base::seekdir __dir); - streamoff _M_file_size(); - bool _M_write(char* __buf, ptrdiff_t __n); - -public: // Memory-mapped I/O. - void* _M_mmap(streamoff __offset, streamoff __len); - void _M_unmap(void* __mmap_base, streamoff __len); - -public: - // Returns a value n such that, if pos is the file pointer at the - // beginning of the range [first, last), pos + n is the file pointer at - // the end. On many operating systems n == __last - __first. - // In Unix, writing n characters always bumps the file position by n. - // In Windows text mode, however, it bumps the file position by n + m, - // where m is the number of newlines in the range. That's because an - // internal \n corresponds to an external two-character sequence. - streamoff _M_get_offset(char* __first, char* __last) { -#if defined (_STLP_UNIX) || defined (_STLP_MAC) - return __last - __first; -#else // defined (_STLP_WIN32) || defined (_STLP_WIN16) || defined (_STLP_DOS) || defined(N_PLAT_NLM) - return ( (_M_openmode & ios_base::binary) != 0 ) - ? (__last - __first) - : count(__first, __last, '\n') + (__last - __first); -#endif - } - - // Returns true if we're in binary mode or if we're using an OS or file - // system where there is no distinction between text and binary mode. - bool _M_in_binary_mode() const { -#if defined (_STLP_UNIX) || defined (_STLP_MAC) || defined(__BEOS__) || defined (__amigaos__) - return true; -#elif defined (_STLP_WIN32) || defined (_STLP_WIN16) || defined (_STLP_DOS) || defined (_STLP_VM) || defined (__EMX__) || defined(N_PLAT_NLM) - return (_M_openmode & ios_base::binary) != 0; -#else -# error "Port!" -#endif - } - - static void _S_initialize(); - -protected: // Static data members. - static size_t _M_page_size; - -protected: // Data members. - _STLP_fd _M_file_id; -#if defined (_STLP_USE_STDIO_IO) - // for stdio, the whole FILE* is being kept here - FILE* _M_file; -#endif -#if defined (_STLP_USE_WIN32_IO) - _STLP_fd _M_view_id; -#endif - - ios_base::openmode _M_openmode ; - unsigned char _M_is_open ; - unsigned char _M_should_close ; - unsigned char _M_regular_file ; - -public : - static size_t _STLP_CALL __page_size() { return _M_page_size; } - int __o_mode() const { return (int)_M_openmode; } - bool __is_open() const { return (_M_is_open !=0 ); } - bool __should_close() const { return (_M_should_close != 0); } - bool __regular_file() const { return (_M_regular_file != 0); } - _STLP_fd __get_fd() const { return _M_file_id; } -}; - -//---------------------------------------------------------------------- -// Class basic_filebuf<>. - -// Forward declaration of two helper classes. -template <class _Traits> class _Noconv_input; -_STLP_TEMPLATE_NULL -class _Noconv_input<char_traits<char> >; - -template <class _Traits> class _Noconv_output; -_STLP_TEMPLATE_NULL -class _Noconv_output< char_traits<char> >; - -// There is a specialized version of underflow, for basic_filebuf<char>, -// in fstream.cxx. - -template <class _CharT, class _Traits> -class _Underflow; - -_STLP_TEMPLATE_NULL class _Underflow< char, char_traits<char> >; - -template <class _CharT, class _Traits> -class basic_filebuf : public basic_streambuf<_CharT, _Traits> { -public: // Types. - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef typename _Traits::state_type _State_type; - typedef basic_streambuf<_CharT, _Traits> _Base; - typedef basic_filebuf<_CharT, _Traits> _Self; - -public: // Constructors, destructor. - basic_filebuf(); - ~basic_filebuf(); - -public: // Opening and closing files. - bool is_open() const { return _M_base.__is_open(); } - - _Self* open(const char* __s, ios_base::openmode __m) { - return _M_base._M_open(__s, __m) ? this : 0; - } - -#if !defined (_STLP_NO_EXTENSIONS) - // These two version of open() and file descriptor getter are extensions. - _Self* open(const char* __s, ios_base::openmode __m, - long __protection) { - return _M_base._M_open(__s, __m, __protection) ? this : 0; - } - - _STLP_fd fd() const { return _M_base.__get_fd(); } - - _Self* open(int __id, ios_base::openmode _Init_mode = ios_base::__default_mode) { - return this->_M_open(__id, _Init_mode); - } - -# if defined (_STLP_USE_WIN32_IO) - _Self* open(_STLP_fd __id, ios_base::openmode _Init_mode = ios_base::__default_mode) { - return _M_base._M_open(__id, _Init_mode) ? this : 0; - } -# endif /* _STLP_USE_WIN32_IO */ - -#endif - - _Self* _M_open(int __id, ios_base::openmode _Init_mode = ios_base::__default_mode) { - return _M_base._M_open(__id, _Init_mode) ? this : 0; - } - - _Self* close(); - -protected: // Virtual functions from basic_streambuf. - virtual streamsize showmanyc(); - virtual int_type underflow(); - - virtual int_type pbackfail(int_type = traits_type::eof()); - virtual int_type overflow(int_type = traits_type::eof()); - - virtual basic_streambuf<_CharT, _Traits>* setbuf(char_type*, streamsize); - virtual pos_type seekoff(off_type, ios_base::seekdir, - ios_base::openmode = ios_base::in | ios_base::out); - virtual pos_type seekpos(pos_type, - ios_base::openmode = ios_base::in | ios_base::out); - - virtual int sync(); - virtual void imbue(const locale&); - -private: // Helper functions. - - // Precondition: we are currently in putback input mode. Effect: - // switches back to ordinary input mode. - void _M_exit_putback_mode() { - this->setg(_M_saved_eback, _M_saved_gptr, _M_saved_egptr); - _M_in_putback_mode = false; - } - bool _M_switch_to_input_mode(); - void _M_exit_input_mode(); - bool _M_switch_to_output_mode(); - - int_type _M_input_error(); - int_type _M_underflow_aux(); - // friend class _Noconv_input<_Traits>; - // friend class _Noconv_output<_Traits>; - friend class _Underflow<_CharT, _Traits>; - - int_type _M_output_error(); - bool _M_unshift(); - - bool _M_allocate_buffers(_CharT* __buf, streamsize __n); - bool _M_allocate_buffers(); - void _M_deallocate_buffers(); - - pos_type _M_seek_return(off_type __off, _State_type __state) { - if (__off != -1) { - if (_M_in_input_mode) - _M_exit_input_mode(); - _M_in_input_mode = false; - _M_in_output_mode = false; - _M_in_putback_mode = false; - _M_in_error_mode = false; - this->setg(0, 0, 0); - this->setp(0, 0); - } - - pos_type __result(__off); - __result.state(__state); - return __result; - } - - bool _M_seek_init(bool __do_unshift); - - void _M_setup_codecvt(const locale&, bool __on_imbue = true); - -private: // Data members used in all modes. - - _Filebuf_base _M_base; - -private: // Locale-related information. - - unsigned char _M_constant_width; - unsigned char _M_always_noconv; - - // private: // Mode flags. - unsigned char _M_int_buf_dynamic; // True if internal buffer is heap allocated, - // false if it was supplied by the user. - unsigned char _M_in_input_mode; - unsigned char _M_in_output_mode; - unsigned char _M_in_error_mode; - unsigned char _M_in_putback_mode; - - // Internal buffer: characters seen by the filebuf's clients. - _CharT* _M_int_buf; - _CharT* _M_int_buf_EOS; - - // External buffer: characters corresponding to the external file. - char* _M_ext_buf; - char* _M_ext_buf_EOS; - - // The range [_M_ext_buf, _M_ext_buf_converted) contains the external - // characters corresponding to the sequence in the internal buffer. The - // range [_M_ext_buf_converted, _M_ext_buf_end) contains characters that - // have been read into the external buffer but have not been converted - // to an internal sequence. - char* _M_ext_buf_converted; - char* _M_ext_buf_end; - - // State corresponding to beginning of internal buffer. - _State_type _M_state; - -private: // Data members used only in input mode. - - // Similar to _M_state except that it corresponds to - // the end of the internal buffer instead of the beginning. - _State_type _M_end_state; - - // This is a null pointer unless we are in mmap input mode. - void* _M_mmap_base; - streamoff _M_mmap_len; - -private: // Data members used only in putback mode. - _CharT* _M_saved_eback; - _CharT* _M_saved_gptr; - _CharT* _M_saved_egptr; - - typedef codecvt<_CharT, char, _State_type> _Codecvt; - const _Codecvt* _M_codecvt; - - int _M_width; // Width of the encoding (if constant), else 1 - int _M_max_width; // Largest possible width of single character. - - - enum { _S_pback_buf_size = 8 }; - _CharT _M_pback_buf[_S_pback_buf_size]; - - // for _Noconv_output -public: - bool _M_write(char* __buf, ptrdiff_t __n) {return _M_base._M_write(__buf, __n); } - -public: - int_type - _M_do_noconv_input() { - _M_ext_buf_converted = _M_ext_buf_end; - /* this-> */ _Base::setg((char_type*)_M_ext_buf, (char_type*)_M_ext_buf, (char_type*)_M_ext_buf_end); - return traits_type::to_int_type(*_M_ext_buf); - } -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_filebuf<char, char_traits<char> >; -# if ! defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_filebuf<wchar_t, char_traits<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -// public: -// helper class. -template <class _CharT> -struct _Filebuf_Tmp_Buf { - _CharT* _M_ptr; - _Filebuf_Tmp_Buf(ptrdiff_t __n) : _M_ptr(0) { _M_ptr = new _CharT[__n]; } - ~_Filebuf_Tmp_Buf() { delete[] _M_ptr; } -}; - - -// -// This class had to be designed very carefully to work -// with Visual C++. -// -template <class _Traits> -class _Noconv_output { -public: - typedef typename _Traits::char_type char_type; - static bool _STLP_CALL _M_doit(basic_filebuf<char_type, _Traits >*, - char_type*, char_type*) - { return false; } -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC _Noconv_output< char_traits<char> > { -public: - static bool _STLP_CALL - _M_doit(basic_filebuf<char, char_traits<char> >* __buf, - char* __first, char* __last) { - ptrdiff_t __n = __last - __first; - return (__buf->_M_write(__first, __n)); - } -}; - -//---------------------------------------------------------------------- -// basic_filebuf<> helper functions. - - -//---------------------------------------- -// Helper functions for switching between modes. - -// -// This class had to be designed very carefully to work -// with Visual C++. -// -template <class _Traits> -class _Noconv_input { -public: - typedef typename _Traits::int_type int_type; - typedef typename _Traits::char_type char_type; - - static inline int_type _STLP_CALL - _M_doit(basic_filebuf<char_type, _Traits>*) - { return _Traits::eof(); } -}; - -_STLP_TEMPLATE_NULL -class _Noconv_input<char_traits<char> > { -public: - static inline int _STLP_CALL - _M_doit(basic_filebuf<char, char_traits<char> >* __buf) { - return __buf->_M_do_noconv_input(); - } -}; - -// underflow() may be called for one of two reasons. (1) We've -// been going through the special putback buffer, and we need to move back -// to the regular internal buffer. (2) We've exhausted the internal buffer, -// and we need to replentish it. -template <class _CharT, class _Traits> -class _Underflow { -public: - typedef typename _Traits::int_type int_type; - typedef _Traits traits_type; - - static int_type _STLP_CALL _M_doit(basic_filebuf<_CharT, _Traits>* __this); -}; - - -// Specialization of underflow: if the character type is char, maybe -// we can use mmap instead of read. -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC _Underflow< char, char_traits<char> > { -public: - typedef char_traits<char>::int_type int_type; - typedef char_traits<char> traits_type; - static int _STLP_CALL _M_doit(basic_filebuf<char, traits_type >* __this); -}; - -// There is a specialized version of underflow, for basic_filebuf<char>, -// in fstream.cxx. - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE _Underflow<_CharT, _Traits>::int_type // _STLP_CALL - _Underflow<_CharT, _Traits>::_M_doit(basic_filebuf<_CharT, _Traits>* __this) { - if (!__this->_M_in_input_mode) { - if (!__this->_M_switch_to_input_mode()) - return traits_type::eof(); - } - else if (__this->_M_in_putback_mode) { - __this->_M_exit_putback_mode(); - if (__this->gptr() != __this->egptr()) { - int_type __c = traits_type::to_int_type(*__this->gptr()); - return __c; - } - } - - return __this->_M_underflow_aux(); -} - -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS _Underflow<wchar_t, char_traits<wchar_t> >; -#endif - -//---------------------------------------------------------------------- -// Class basic_ifstream<> - -template <class _CharT, class _Traits> -class basic_ifstream : public basic_istream<_CharT, _Traits> { -public: // Types - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_ios<_CharT, _Traits> _Basic_ios; - typedef basic_istream<_CharT, _Traits> _Base; - typedef basic_filebuf<_CharT, _Traits> _Buf; - -public: // Constructors, destructor. - - basic_ifstream() : - basic_ios<_CharT, _Traits>(), basic_istream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - } - - explicit basic_ifstream(const char* __s, ios_base::openmode __mod = ios_base::in) : - basic_ios<_CharT, _Traits>(), basic_istream<_CharT, _Traits>(0), - _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__s, __mod | ios_base::in)) - this->setstate(ios_base::failbit); - } - -#if !defined (_STLP_NO_EXTENSIONS) - explicit basic_ifstream(int __id, ios_base::openmode __mod = ios_base::in) : - basic_ios<_CharT, _Traits>(), basic_istream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__id, __mod | ios_base::in)) - this->setstate(ios_base::failbit); - } - basic_ifstream(const char* __s, ios_base::openmode __m, - long __protection) : - basic_ios<_CharT, _Traits>(), basic_istream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__s, __m | ios_base::in, __protection)) - this->setstate(ios_base::failbit); - } - -# if defined (_STLP_USE_WIN32_IO) - explicit basic_ifstream(_STLP_fd __id, ios_base::openmode __mod = ios_base::in) : - basic_ios<_CharT, _Traits>(), basic_istream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__id, __mod | ios_base::in)) - this->setstate(ios_base::failbit); - } -# endif /* _STLP_USE_WIN32_IO */ -#endif - - ~basic_ifstream() {} - -public: // File and buffer operations. - basic_filebuf<_CharT, _Traits>* rdbuf() const - { return __CONST_CAST(_Buf*,&_M_buf); } - - bool is_open() { - return this->rdbuf()->is_open(); - } - - void open(const char* __s, ios_base::openmode __mod = ios_base::in) { - if (!this->rdbuf()->open(__s, __mod | ios_base::in)) - this->setstate(ios_base::failbit); - } - - void close() { - if (!this->rdbuf()->close()) - this->setstate(ios_base::failbit); - } - -private: - basic_filebuf<_CharT, _Traits> _M_buf; -}; - - -//---------------------------------------------------------------------- -// Class basic_ofstream<> - -template <class _CharT, class _Traits> -class basic_ofstream : public basic_ostream<_CharT, _Traits> { -public: // Types - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_ios<_CharT, _Traits> _Basic_ios; - typedef basic_ostream<_CharT, _Traits> _Base; - typedef basic_filebuf<_CharT, _Traits> _Buf; - -public: // Constructors, destructor. - basic_ofstream() : - basic_ios<_CharT, _Traits>(), - basic_ostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - } - explicit basic_ofstream(const char* __s, ios_base::openmode __mod = ios_base::out) - : basic_ios<_CharT, _Traits>(), basic_ostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__s, __mod | ios_base::out)) - this->setstate(ios_base::failbit); - } - -#if !defined (_STLP_NO_EXTENSIONS) - explicit basic_ofstream(int __id, ios_base::openmode __mod = ios_base::out) - : basic_ios<_CharT, _Traits>(), basic_ostream<_CharT, _Traits>(0), - _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__id, __mod | ios_base::out)) - this->setstate(ios_base::failbit); - } - basic_ofstream(const char* __s, ios_base::openmode __m, long __protection) : - basic_ios<_CharT, _Traits>(), basic_ostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__s, __m | ios_base::out, __protection)) - this->setstate(ios_base::failbit); - } -# if defined (_STLP_USE_WIN32_IO) - explicit basic_ofstream(_STLP_fd __id, ios_base::openmode __mod = ios_base::out) - : basic_ios<_CharT, _Traits>(), basic_ostream<_CharT, _Traits>(0), - _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__id, __mod | ios_base::out)) - this->setstate(ios_base::failbit); - } -# endif /* _STLP_USE_WIN32_IO */ -#endif - - ~basic_ofstream() {} - -public: // File and buffer operations. - basic_filebuf<_CharT, _Traits>* rdbuf() const - { return __CONST_CAST(_Buf*,&_M_buf); } - - bool is_open() { - return this->rdbuf()->is_open(); - } - - void open(const char* __s, ios_base::openmode __mod= ios_base::out) { - if (!this->rdbuf()->open(__s, __mod | ios_base::out)) - this->setstate(ios_base::failbit); - } - - void close() { - if (!this->rdbuf()->close()) - this->setstate(ios_base::failbit); - } - -private: - basic_filebuf<_CharT, _Traits> _M_buf; -}; - - -//---------------------------------------------------------------------- -// Class basic_fstream<> - -template <class _CharT, class _Traits> -class basic_fstream : public basic_iostream<_CharT, _Traits> { -public: // Types - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_ios<_CharT, _Traits> _Basic_ios; - typedef basic_iostream<_CharT, _Traits> _Base; - typedef basic_filebuf<_CharT, _Traits> _Buf; - -public: // Constructors, destructor. - - basic_fstream() - : basic_ios<_CharT, _Traits>(), basic_iostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - } - - explicit basic_fstream(const char* __s, - ios_base::openmode __mod = ios_base::in | ios_base::out) : - basic_ios<_CharT, _Traits>(), basic_iostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__s, __mod)) - this->setstate(ios_base::failbit); - } - -#if !defined (_STLP_NO_EXTENSIONS) - explicit basic_fstream(int __id, - ios_base::openmode __mod = ios_base::in | ios_base::out) : - basic_ios<_CharT, _Traits>(), basic_iostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__id, __mod)) - this->setstate(ios_base::failbit); - } - basic_fstream(const char* __s, ios_base::openmode __m, long __protection) : - basic_ios<_CharT, _Traits>(), basic_iostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__s, __m, __protection)) - this->setstate(ios_base::failbit); - } -# if defined (_STLP_USE_WIN32_IO) - explicit basic_fstream(_STLP_fd __id, - ios_base::openmode __mod = ios_base::in | ios_base::out) : - basic_ios<_CharT, _Traits>(), basic_iostream<_CharT, _Traits>(0), _M_buf() { - this->init(&_M_buf); - if (!_M_buf.open(__id, __mod)) - this->setstate(ios_base::failbit); - } -# endif /* _STLP_USE_WIN32_IO */ -#endif - ~basic_fstream() {} - -public: // File and buffer operations. - - basic_filebuf<_CharT, _Traits>* rdbuf() const - { return __CONST_CAST(_Buf*,&_M_buf); } - - bool is_open() { - return this->rdbuf()->is_open(); - } - - void open(const char* __s, - ios_base::openmode __mod = - ios_base::in | ios_base::out) { - if (!this->rdbuf()->open(__s, __mod)) - this->setstate(ios_base::failbit); - } - - void close() { - if (!this->rdbuf()->close()) - this->setstate(ios_base::failbit); - } - -private: - basic_filebuf<_CharT, _Traits> _M_buf; - -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1300 && _STLP_MSVC <= 1310) - typedef basic_fstream<_CharT, _Traits> _Self; - //explicitely defined as private to avoid warnings: - basic_fstream(_Self const&); - _Self& operator = (_Self const&); -#endif -}; - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_fstream.c> -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_ifstream<char, char_traits<char> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_ofstream<char, char_traits<char> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_fstream<char, char_traits<char> >; -# if ! defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_ifstream<wchar_t, char_traits<wchar_t> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_ofstream<wchar_t, char_traits<wchar_t> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_fstream<wchar_t, char_traits<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_FSTREAM */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_function.h b/WebKit/android/stlport/stl/_function.h deleted file mode 100644 index c9d7888..0000000 --- a/WebKit/android/stlport/stl/_function.h +++ /dev/null @@ -1,427 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_FUNCTION_H -#define _STLP_INTERNAL_FUNCTION_H - -#ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp> -struct not_equal_to : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x != __y; } -}; - -template <class _Tp> -struct greater : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x > __y; } -}; - -template <class _Tp> -struct greater_equal : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x >= __y; } -}; - -template <class _Tp> -struct less_equal : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x <= __y; } -}; - -template <class _Tp> -struct divides : public binary_function<_Tp, _Tp, _Tp> { - _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x / __y; } -}; - -template <class _Tp> -struct modulus : public binary_function<_Tp, _Tp, _Tp> { - _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x % __y; } -}; - -template <class _Tp> -struct negate : public unary_function<_Tp, _Tp> { - _Tp operator()(const _Tp& __x) const { return -__x; } -}; - -template <class _Tp> -struct logical_and : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x && __y; } -}; - -template <class _Tp> -struct logical_or : public binary_function<_Tp, _Tp,bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x || __y; } -}; - -template <class _Tp> -struct logical_not : public unary_function<_Tp, bool> { - bool operator()(const _Tp& __x) const { return !__x; } -}; - -#if !defined (_STLP_NO_EXTENSIONS) -// identity_element (not part of the C++ standard). -template <class _Tp> inline _Tp identity_element(plus<_Tp>) { return _Tp(0); } -template <class _Tp> inline _Tp identity_element(multiplies<_Tp>) { return _Tp(1); } -#endif - -#if defined (_STLP_BASE_TYPEDEF_BUG) -// this workaround is needed for SunPro 4.0.1 -// suggested by "Martin Abernethy" <gma@paston.co.uk>: - -// We have to introduce the XXary_predicate_aux structures in order to -// access the argument and return types of predicate functions supplied -// as type parameters. SUN C++ 4.0.1 compiler gives errors for template type parameters -// of the form 'name1::name2', where name1 is itself a type parameter. -template <class _Pair> -struct __pair_aux : private _Pair { - typedef typename _Pair::first_type first_type; - typedef typename _Pair::second_type second_type; -}; - -template <class _Operation> -struct __unary_fun_aux : private _Operation { - typedef typename _Operation::argument_type argument_type; - typedef typename _Operation::result_type result_type; -}; - -template <class _Operation> -struct __binary_fun_aux : private _Operation { - typedef typename _Operation::first_argument_type first_argument_type; - typedef typename _Operation::second_argument_type second_argument_type; - typedef typename _Operation::result_type result_type; -}; - -# define __UNARY_ARG(__Operation,__type) __unary_fun_aux<__Operation>::__type -# define __BINARY_ARG(__Operation,__type) __binary_fun_aux<__Operation>::__type -# define __PAIR_ARG(__Pair,__type) __pair_aux<__Pair>::__type -#else -# define __UNARY_ARG(__Operation,__type) __Operation::__type -# define __BINARY_ARG(__Operation,__type) __Operation::__type -# define __PAIR_ARG(__Pair,__type) __Pair::__type -#endif - -template <class _Predicate> -class unary_negate - : public unary_function<typename __UNARY_ARG(_Predicate, argument_type), bool> { - typedef unary_function<typename __UNARY_ARG(_Predicate, argument_type), bool> _Base; -public: - typedef typename _Base::argument_type argument_type; -private: - typedef typename __call_traits<argument_type>::param_type _ArgParamType; -protected: - _Predicate _M_pred; -public: - explicit unary_negate(const _Predicate& __x) : _M_pred(__x) {} - bool operator()(_ArgParamType __x) const { - return !_M_pred(__x); - } -}; - -template <class _Predicate> -inline unary_negate<_Predicate> -not1(const _Predicate& __pred) { - return unary_negate<_Predicate>(__pred); -} - -template <class _Predicate> -class binary_negate - : public binary_function<typename __BINARY_ARG(_Predicate, first_argument_type), - typename __BINARY_ARG(_Predicate, second_argument_type), - bool> { - typedef binary_function<typename __BINARY_ARG(_Predicate, first_argument_type), - typename __BINARY_ARG(_Predicate, second_argument_type), - bool> _Base; -public: - typedef typename _Base::first_argument_type first_argument_type; - typedef typename _Base::second_argument_type second_argument_type; -private: - typedef typename __call_traits<first_argument_type>::param_type _FstArgParamType; - typedef typename __call_traits<second_argument_type>::param_type _SndArgParamType; -protected: - _Predicate _M_pred; -public: - explicit binary_negate(const _Predicate& __x) : _M_pred(__x) {} - bool operator()(_FstArgParamType __x, _SndArgParamType __y) const { - return !_M_pred(__x, __y); - } -}; - -template <class _Predicate> -inline binary_negate<_Predicate> -not2(const _Predicate& __pred) { - return binary_negate<_Predicate>(__pred); -} - -template <class _Operation> -class binder1st : - public unary_function<typename __BINARY_ARG(_Operation, second_argument_type), - typename __BINARY_ARG(_Operation, result_type) > { - typedef unary_function<typename __BINARY_ARG(_Operation, second_argument_type), - typename __BINARY_ARG(_Operation, result_type) > _Base; -public: - typedef typename _Base::argument_type argument_type; - typedef typename _Base::result_type result_type; -private: - typedef typename __call_traits<argument_type>::param_type _ArgParamType; - typedef typename __call_traits<typename _Operation::first_argument_type>::param_type _ValueParamType; -protected: - //op is a Standard name (20.3.6.1), do no make it STLport naming convention compliant. - _Operation op; - typename _Operation::first_argument_type _M_value; -public: - binder1st(const _Operation& __x, _ValueParamType __y) - : op(__x), _M_value(__y) {} - - result_type operator()(_ArgParamType __x) const { - return op(_M_value, __x); - } -}; - -template <class _Operation, class _Tp> -inline binder1st<_Operation> -bind1st(const _Operation& __fn, const _Tp& __x) { - typedef typename _Operation::first_argument_type _Arg1_type; - return binder1st<_Operation>(__fn, _Arg1_type(__x)); -} - -template <class _Operation> -class binder2nd - : public unary_function<typename __BINARY_ARG(_Operation, first_argument_type), - typename __BINARY_ARG(_Operation, result_type)> { - typedef unary_function<typename __BINARY_ARG(_Operation, first_argument_type), - typename __BINARY_ARG(_Operation, result_type)> _Base; -public: - typedef typename _Base::argument_type argument_type; - typedef typename _Base::result_type result_type; -private: - typedef typename __call_traits<argument_type>::param_type _ArgParamType; - typedef typename __call_traits<typename _Operation::second_argument_type>::param_type _ValueParamType; -protected: - //op is a Standard name (20.3.6.3), do no make it STLport naming convention compliant. - _Operation op; - typename _Operation::second_argument_type value; -public: - binder2nd(const _Operation& __x, _ValueParamType __y) - : op(__x), value(__y) {} - - result_type operator()(_ArgParamType __x) const { - return op(__x, value); - } -}; - -template <class _Operation, class _Tp> -inline binder2nd<_Operation> -bind2nd(const _Operation& __fn, const _Tp& __x) { - typedef typename _Operation::second_argument_type _Arg2_type; - return binder2nd<_Operation>(__fn, _Arg2_type(__x)); -} - -#if !defined (_STLP_NO_EXTENSIONS) -// unary_compose and binary_compose (extensions, not part of the standard). - -template <class _Operation1, class _Operation2> -class unary_compose : - public unary_function<typename __UNARY_ARG(_Operation2, argument_type), - typename __UNARY_ARG(_Operation1, result_type)> { - typedef unary_function<typename __UNARY_ARG(_Operation2, argument_type), - typename __UNARY_ARG(_Operation1, result_type)> _Base; -public: - typedef typename _Base::argument_type argument_type; - typedef typename _Base::result_type result_type; -private: - typedef typename __call_traits<argument_type>::param_type _ArgParamType; -protected: - _Operation1 _M_fn1; - _Operation2 _M_fn2; -public: - unary_compose(const _Operation1& __x, const _Operation2& __y) - : _M_fn1(__x), _M_fn2(__y) {} - - result_type operator()(_ArgParamType __x) const { - return _M_fn1(_M_fn2(__x)); - } -}; - -template <class _Operation1, class _Operation2> -inline unary_compose<_Operation1,_Operation2> -compose1(const _Operation1& __fn1, const _Operation2& __fn2) { - return unary_compose<_Operation1,_Operation2>(__fn1, __fn2); -} - -template <class _Operation1, class _Operation2, class _Operation3> -class binary_compose : - public unary_function<typename __UNARY_ARG(_Operation2, argument_type), - typename __BINARY_ARG(_Operation1, result_type)> { - typedef unary_function<typename __UNARY_ARG(_Operation2, argument_type), - typename __BINARY_ARG(_Operation1, result_type)> _Base; -public: - typedef typename _Base::argument_type argument_type; - typedef typename _Base::result_type result_type; -private: - typedef typename __call_traits<argument_type>::param_type _ArgParamType; -protected: - _Operation1 _M_fn1; - _Operation2 _M_fn2; - _Operation3 _M_fn3; -public: - binary_compose(const _Operation1& __x, const _Operation2& __y, - const _Operation3& __z) - : _M_fn1(__x), _M_fn2(__y), _M_fn3(__z) { } - - result_type operator()(_ArgParamType __x) const { - return _M_fn1(_M_fn2(__x), _M_fn3(__x)); - } -}; - -template <class _Operation1, class _Operation2, class _Operation3> -inline binary_compose<_Operation1, _Operation2, _Operation3> -compose2(const _Operation1& __fn1, const _Operation2& __fn2, - const _Operation3& __fn3) { - return binary_compose<_Operation1,_Operation2,_Operation3>(__fn1, __fn2, __fn3); -} - -// identity is an extension: it is not part of the standard. -template <class _Tp> struct identity : public _STLP_PRIV _Identity<_Tp> {}; -// select1st and select2nd are extensions: they are not part of the standard. -template <class _Pair> struct select1st : public _STLP_PRIV _Select1st<_Pair> {}; -template <class _Pair> struct select2nd : public _STLP_PRIV _Select2nd<_Pair> {}; - -template <class _Arg1, class _Arg2> -struct project1st : public _STLP_PRIV _Project1st<_Arg1, _Arg2> {}; - -template <class _Arg1, class _Arg2> -struct project2nd : public _STLP_PRIV _Project2nd<_Arg1, _Arg2> {}; - - -// constant_void_fun, constant_unary_fun, and constant_binary_fun are -// extensions: they are not part of the standard. (The same, of course, -// is true of the helper functions constant0, constant1, and constant2.) - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Result> -struct _Constant_void_fun { - typedef _Result result_type; - result_type _M_val; - - _Constant_void_fun(const result_type& __v) : _M_val(__v) {} - const result_type& operator()() const { return _M_val; } -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Result> -struct constant_void_fun : public _STLP_PRIV _Constant_void_fun<_Result> { - constant_void_fun(const _Result& __v) - : _STLP_PRIV _Constant_void_fun<_Result>(__v) {} -}; - -template <class _Result, _STLP_DFL_TMPL_PARAM( _Argument , _Result) > -struct constant_unary_fun : public _STLP_PRIV _Constant_unary_fun<_Result, _Argument> { - constant_unary_fun(const _Result& __v) - : _STLP_PRIV _Constant_unary_fun<_Result, _Argument>(__v) {} -}; - -template <class _Result, _STLP_DFL_TMPL_PARAM( _Arg1 , _Result), _STLP_DFL_TMPL_PARAM( _Arg2 , _Arg1) > -struct constant_binary_fun - : public _STLP_PRIV _Constant_binary_fun<_Result, _Arg1, _Arg2> { - constant_binary_fun(const _Result& __v) - : _STLP_PRIV _Constant_binary_fun<_Result, _Arg1, _Arg2>(__v) {} -}; - -template <class _Result> -inline constant_void_fun<_Result> constant0(const _Result& __val) { - return constant_void_fun<_Result>(__val); -} - -template <class _Result> -inline constant_unary_fun<_Result,_Result> constant1(const _Result& __val) { - return constant_unary_fun<_Result,_Result>(__val); -} - -template <class _Result> -inline constant_binary_fun<_Result,_Result,_Result> -constant2(const _Result& __val) { - return constant_binary_fun<_Result,_Result,_Result>(__val); -} - -// subtractive_rng is an extension: it is not part of the standard. -// Note: this code assumes that int is 32 bits. -class subtractive_rng : public unary_function<_STLP_UINT32_T, _STLP_UINT32_T> { -private: - _STLP_UINT32_T _M_table[55]; - _STLP_UINT32_T _M_index1; - _STLP_UINT32_T _M_index2; -public: - _STLP_UINT32_T operator()(_STLP_UINT32_T __limit) { - _M_index1 = (_M_index1 + 1) % 55; - _M_index2 = (_M_index2 + 1) % 55; - _M_table[_M_index1] = _M_table[_M_index1] - _M_table[_M_index2]; - return _M_table[_M_index1] % __limit; - } - - void _M_initialize(_STLP_UINT32_T __seed) { - _STLP_UINT32_T __k = 1; - _M_table[54] = __seed; - _STLP_UINT32_T __i; - for (__i = 0; __i < 54; __i++) { - _STLP_UINT32_T __ii = (21 * (__i + 1) % 55) - 1; - _M_table[__ii] = __k; - __k = __seed - __k; - __seed = _M_table[__ii]; - } - for (int __loop = 0; __loop < 4; __loop++) { - for (__i = 0; __i < 55; __i++) - _M_table[__i] = _M_table[__i] - _M_table[(1 + __i + 30) % 55]; - } - _M_index1 = 0; - _M_index2 = 31; - } - - subtractive_rng(unsigned int __seed) { _M_initialize(__seed); } - subtractive_rng() { _M_initialize(161803398ul); } -}; - -#endif /* _STLP_NO_EXTENSIONS */ - -_STLP_END_NAMESPACE - -#include <stl/_function_adaptors.h> - -#endif /* _STLP_INTERNAL_FUNCTION_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_function_adaptors.h b/WebKit/android/stlport/stl/_function_adaptors.h deleted file mode 100644 index 1eb85e7..0000000 --- a/WebKit/android/stlport/stl/_function_adaptors.h +++ /dev/null @@ -1,802 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * Copyright (c) 2000 - * Pavel Kuznetsov - * - * Copyright (c) 2001 - * Meridian'93 - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -// This file has noo macro protection as it is meant to be included several times -// from other header. -// Adaptor function objects: pointers to member functions. - -// There are a total of 16 = 2^4 function objects in this family. -// (1) Member functions taking no arguments vs member functions taking -// one argument. -// (2) Call through pointer vs call through reference. -// (3) Member function with void return type vs member function with -// non-void return type. -// (4) Const vs non-const member function. - -// Note that choice (3) is nothing more than a workaround: according -// to the draft, compilers should handle void and non-void the same way. -// This feature is not yet widely implemented, though. You can only use -// member functions returning void if your compiler supports partial -// specialization. - -// All of this complexity is in the function objects themselves. You can -// ignore it by using the helper function mem_fun and mem_fun_ref, -// which create whichever type of adaptor is appropriate. - -_STLP_BEGIN_NAMESPACE - -//This implementation will only be used if needed, that is to say when there is the return void bug -//and when there is no partial template specialization -#if defined(_STLP_DONT_RETURN_VOID) && defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && defined(_STLP_MEMBER_TEMPLATE_CLASSES) - -template<class _Result, class _Tp> -class _Mem_fun0_ptr : public unary_function<_Tp*, _Result> { -protected: - typedef _Result (_Tp::*__fun_type) (); - explicit _Mem_fun0_ptr(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(_Tp* __p) const { return (__p->*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp, class _Arg> -class _Mem_fun1_ptr : public binary_function<_Tp*,_Arg,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) (_Arg); - explicit _Mem_fun1_ptr(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp> -class _Const_mem_fun0_ptr : public unary_function<const _Tp*,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) () const; - explicit _Const_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(const _Tp* __p) const { return (__p->*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp, class _Arg> -class _Const_mem_fun1_ptr : public binary_function<const _Tp*,_Arg,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) (_Arg) const; - explicit _Const_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(const _Tp* __p, _Arg __x) const { - return (__p->*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp> -class _Mem_fun0_ref : public unary_function<_Tp&,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) (); - explicit _Mem_fun0_ref(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(_Tp& __p) const { return (__p.*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp, class _Arg> -class _Mem_fun1_ref : public binary_function<_Tp&,_Arg,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) (_Arg); - explicit _Mem_fun1_ref(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(_Tp& __p, _Arg __x) const { return (__p.*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp> -class _Const_mem_fun0_ref : public unary_function<const _Tp&,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) () const; - explicit _Const_mem_fun0_ref(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(const _Tp& __p) const { return (__p.*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Result, class _Tp, class _Arg> -class _Const_mem_fun1_ref : public binary_function<const _Tp&,_Arg,_Result> { -protected: - typedef _Result (_Tp::*__fun_type) (_Arg) const; - explicit _Const_mem_fun1_ref(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator ()(const _Tp& __p, _Arg __x) const { return (__p.*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Result> -struct _Mem_fun_traits { - template<class _Tp> - struct _Args0 { - typedef _Mem_fun0_ptr<_Result,_Tp> _Ptr; - typedef _Const_mem_fun0_ptr<_Result,_Tp> _Ptr_const; - typedef _Mem_fun0_ref<_Result,_Tp> _Ref; - typedef _Const_mem_fun0_ref<_Result,_Tp> _Ref_const; - }; - - template<class _Tp, class _Arg> - struct _Args1 { - typedef _Mem_fun1_ptr<_Result,_Tp,_Arg> _Ptr; - typedef _Const_mem_fun1_ptr<_Result,_Tp,_Arg> _Ptr_const; - typedef _Mem_fun1_ref<_Result,_Tp,_Arg> _Ref; - typedef _Const_mem_fun1_ref<_Result,_Tp,_Arg> _Ref_const; - }; -}; - -template<class _Arg, class _Result> -class _Ptr_fun1_base : public unary_function<_Arg, _Result> { -protected: - typedef _Result (*__fun_type) (_Arg); - explicit _Ptr_fun1_base(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator()(_Arg __x) const { return _M_f(__x); } - -private: - __fun_type _M_f; -}; - -template <class _Arg1, class _Arg2, class _Result> -class _Ptr_fun2_base : public binary_function<_Arg1,_Arg2,_Result> { -protected: - typedef _Result (*__fun_type) (_Arg1, _Arg2); - explicit _Ptr_fun2_base(__fun_type __f) : _M_f(__f) {} - -public: - _Result operator()(_Arg1 __x, _Arg2 __y) const { return _M_f(__x, __y); } - -private: - __fun_type _M_f; -}; - -template<class _Result> -struct _Ptr_fun_traits { - template<class _Arg> struct _Args1 { - typedef _Ptr_fun1_base<_Arg,_Result> _Fun; - }; - - template<class _Arg1, class _Arg2> struct _Args2 { - typedef _Ptr_fun2_base<_Arg1,_Arg2,_Result> _Fun; - }; -}; - -/*Specialization for void return type -*/ -template<class _Tp> -class _Void_mem_fun0_ptr : public unary_function<_Tp*,void> { -protected: - typedef void (_Tp::*__fun_type) (); - explicit _Void_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(_Tp* __p) const { (__p->*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Tp, class _Arg> -class _Void_mem_fun1_ptr : public binary_function<_Tp*,_Arg,void> { -protected: - typedef void (_Tp::*__fun_type) (_Arg); - explicit _Void_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Tp> -class _Void_const_mem_fun0_ptr : public unary_function<const _Tp*,void> { -protected: - typedef void (_Tp::*__fun_type) () const; - explicit _Void_const_mem_fun0_ptr(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(const _Tp* __p) const { (__p->*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Tp, class _Arg> -class _Void_const_mem_fun1_ptr : public binary_function<const _Tp*,_Arg,void> { -protected: - typedef void (_Tp::*__fun_type) (_Arg) const; - explicit _Void_const_mem_fun1_ptr(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Tp> -class _Void_mem_fun0_ref : public unary_function<_Tp&,void> { -protected: - typedef void (_Tp::*__fun_type) (); - explicit _Void_mem_fun0_ref(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(_Tp& __p) const { (__p.*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Tp, class _Arg> -class _Void_mem_fun1_ref : public binary_function<_Tp&,_Arg,void> { -protected: - typedef void (_Tp::*__fun_type) (_Arg); - explicit _Void_mem_fun1_ref(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(_Tp& __p, _Arg __x) const { (__p.*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -template<class _Tp> -class _Void_const_mem_fun0_ref : public unary_function<const _Tp&,void> { -protected: - typedef void (_Tp::*__fun_type) () const; - explicit _Void_const_mem_fun0_ref(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(const _Tp& __p) const { (__p.*_M_f)(); } - -private: - __fun_type _M_f; -}; - -template<class _Tp, class _Arg> -class _Void_const_mem_fun1_ref : public binary_function<const _Tp&,_Arg,void> { -protected: - typedef void (_Tp::*__fun_type) (_Arg) const; - explicit _Void_const_mem_fun1_ref(__fun_type __f) : _M_f(__f) {} - -public: - void operator ()(const _Tp& __p, _Arg __x) const { (__p.*_M_f)(__x); } - -private: - __fun_type _M_f; -}; - -_STLP_TEMPLATE_NULL -struct _Mem_fun_traits<void> { - template<class _Tp> struct _Args0 { - typedef _Void_mem_fun0_ptr<_Tp> _Ptr; - typedef _Void_const_mem_fun0_ptr<_Tp> _Ptr_const; - typedef _Void_mem_fun0_ref<_Tp> _Ref; - typedef _Void_const_mem_fun0_ref<_Tp> _Ref_const; - }; - - template<class _Tp, class _Arg> struct _Args1 { - typedef _Void_mem_fun1_ptr<_Tp,_Arg> _Ptr; - typedef _Void_const_mem_fun1_ptr<_Tp,_Arg> _Ptr_const; - typedef _Void_mem_fun1_ref<_Tp,_Arg> _Ref; - typedef _Void_const_mem_fun1_ref<_Tp,_Arg> _Ref_const; - }; -}; - -template<class _Arg> -class _Ptr_void_fun1_base : public unary_function<_Arg, void> { -protected: - typedef void (*__fun_type) (_Arg); - explicit _Ptr_void_fun1_base(__fun_type __f) : _M_f(__f) {} - -public: - void operator()(_Arg __x) const { _M_f(__x); } - -private: - __fun_type _M_f; -}; - -template <class _Arg1, class _Arg2> -class _Ptr_void_fun2_base : public binary_function<_Arg1,_Arg2,void> { -protected: - typedef void (*__fun_type) (_Arg1, _Arg2); - explicit _Ptr_void_fun2_base(__fun_type __f) : _M_f(__f) {} - -public: - void operator()(_Arg1 __x, _Arg2 __y) const { _M_f(__x, __y); } - -private: - __fun_type _M_f; -}; - -_STLP_TEMPLATE_NULL -struct _Ptr_fun_traits<void> { - template<class _Arg> struct _Args1 { - typedef _Ptr_void_fun1_base<_Arg> _Fun; - }; - - template<class _Arg1, class _Arg2> struct _Args2 { - typedef _Ptr_void_fun2_base<_Arg1,_Arg2> _Fun; - }; -}; - -// pavel: need extra level of inheritance here since MSVC++ does not -// accept traits-based fake partial specialization for template -// arguments other than first - -template<class _Result, class _Arg> -class _Ptr_fun1 : - public _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Arg>::_Fun { -protected: - typedef typename _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Arg>::_Fun _Base; - explicit _Ptr_fun1(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -template<class _Result, class _Arg1, class _Arg2> -class _Ptr_fun2 : - public _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args2<_Arg1,_Arg2>::_Fun { -protected: - typedef typename _Ptr_fun_traits<_Result>::_STLP_TEMPLATE _Args2<_Arg1,_Arg2>::_Fun _Base; - explicit _Ptr_fun2(typename _Base::__fun_type __f) : _Base(__f) {} -}; - - -#endif /*_STLP_DONT_RETURN_VOID && _STLP_NO_CLASS_PARTIAL_SPECIALIZATION && _STLP_MEMBER_TEMPLATE_CLASSES*/ - - -#if !defined(_STLP_DONT_RETURN_VOID) || !defined(_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) || !defined (_STLP_MEMBER_TEMPLATE_CLASSES) - -template <class _Ret, class _Tp> -class mem_fun_t : public unary_function<_Tp*,_Ret> { - typedef _Ret (_Tp::*__fun_type)(void); -public: - explicit mem_fun_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(_Tp* __p) const { return (__p->*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Ret, class _Tp> -class const_mem_fun_t : public unary_function<const _Tp*,_Ret> { - typedef _Ret (_Tp::*__fun_type)(void) const; -public: - explicit const_mem_fun_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(const _Tp* __p) const { return (__p->*_M_f)(); } -private: - __fun_type _M_f; -}; - - -template <class _Ret, class _Tp> -class mem_fun_ref_t : public unary_function<_Tp,_Ret> { - typedef _Ret (_Tp::*__fun_type)(void); -public: - explicit mem_fun_ref_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(_Tp& __r) const { return (__r.*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Ret, class _Tp> -class const_mem_fun_ref_t : public unary_function<_Tp,_Ret> { - typedef _Ret (_Tp::*__fun_type)(void) const; -public: - explicit const_mem_fun_ref_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(const _Tp& __r) const { return (__r.*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Ret, class _Tp, class _Arg> -class mem_fun1_t : public binary_function<_Tp*,_Arg,_Ret> { - typedef _Ret (_Tp::*__fun_type)(_Arg); -public: - explicit mem_fun1_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(_Tp* __p, _Arg __x) const { return (__p->*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Ret, class _Tp, class _Arg> -class const_mem_fun1_t : public binary_function<const _Tp*,_Arg,_Ret> { - typedef _Ret (_Tp::*__fun_type)(_Arg) const; -public: - explicit const_mem_fun1_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(const _Tp* __p, _Arg __x) const - { return (__p->*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Ret, class _Tp, class _Arg> -class mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> { - typedef _Ret (_Tp::*__fun_type)(_Arg); -public: - explicit mem_fun1_ref_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(_Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Ret, class _Tp, class _Arg> -class const_mem_fun1_ref_t : public binary_function<_Tp,_Arg,_Ret> { - typedef _Ret (_Tp::*__fun_type)(_Arg) const; -public: - explicit const_mem_fun1_ref_t(__fun_type __pf) : _M_f(__pf) {} - _Ret operator()(const _Tp& __r, _Arg __x) const { return (__r.*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Arg, class _Result> -class pointer_to_unary_function : public unary_function<_Arg, _Result> { -protected: - _Result (*_M_ptr)(_Arg); -public: - pointer_to_unary_function() {} - explicit pointer_to_unary_function(_Result (*__x)(_Arg)) : _M_ptr(__x) {} - _Result operator()(_Arg __x) const { return _M_ptr(__x); } -}; - -template <class _Arg1, class _Arg2, class _Result> -class pointer_to_binary_function : - public binary_function<_Arg1,_Arg2,_Result> { -protected: - _Result (*_M_ptr)(_Arg1, _Arg2); -public: - pointer_to_binary_function() {} - explicit pointer_to_binary_function(_Result (*__x)(_Arg1, _Arg2)) - : _M_ptr(__x) {} - _Result operator()(_Arg1 __x, _Arg2 __y) const { - return _M_ptr(__x, __y); - } -}; - - -#if defined(_STLP_DONT_RETURN_VOID) && !defined(_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) -//Partial specialization for the void type -template <class _Tp> -class mem_fun_t<void, _Tp> : public unary_function<_Tp*,void> { - typedef void (_Tp::*__fun_type)(void); -public: - explicit mem_fun_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {} - void operator()(_Tp* __p) const { (__p->*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Tp> -class const_mem_fun_t<void, _Tp> : public unary_function<const _Tp*,void> { - typedef void (_Tp::*__fun_type)(void) const; -public: - explicit const_mem_fun_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {} - void operator()(const _Tp* __p) const { (__p->*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Tp> -class mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> { - typedef void (_Tp::*__fun_type)(void); -public: - explicit mem_fun_ref_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {} - void operator()(_Tp& __r) const { (__r.*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Tp> -class const_mem_fun_ref_t<void, _Tp> : public unary_function<_Tp,void> { - typedef void (_Tp::*__fun_type)(void) const; -public: - explicit const_mem_fun_ref_t _STLP_PSPEC2(void,_Tp) (__fun_type __pf) : _M_f(__pf) {} - void operator()(const _Tp& __r) const { (__r.*_M_f)(); } -private: - __fun_type _M_f; -}; - -template <class _Tp, class _Arg> -class mem_fun1_t<void, _Tp, _Arg> : public binary_function<_Tp*,_Arg,void> { - typedef void (_Tp::*__fun_type)(_Arg); -public: - explicit mem_fun1_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {} - void operator()(_Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Tp, class _Arg> -class const_mem_fun1_t<void, _Tp, _Arg> - : public binary_function<const _Tp*,_Arg,void> { - typedef void (_Tp::*__fun_type)(_Arg) const; -public: - explicit const_mem_fun1_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {} - void operator()(const _Tp* __p, _Arg __x) const { (__p->*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Tp, class _Arg> -class mem_fun1_ref_t<void, _Tp, _Arg> - : public binary_function<_Tp,_Arg,void> { - typedef void (_Tp::*__fun_type)(_Arg); -public: - explicit mem_fun1_ref_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {} - void operator()(_Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Tp, class _Arg> -class const_mem_fun1_ref_t<void, _Tp, _Arg> - : public binary_function<_Tp,_Arg,void> { - typedef void (_Tp::*__fun_type)(_Arg) const; -public: - explicit const_mem_fun1_ref_t _STLP_PSPEC3(void,_Tp,_Arg) (__fun_type __pf) : _M_f(__pf) {} - void operator()(const _Tp& __r, _Arg __x) const { (__r.*_M_f)(__x); } -private: - __fun_type _M_f; -}; - -template <class _Arg> -class pointer_to_unary_function<_Arg, void> : public unary_function<_Arg, void> { - typedef void (*__fun_type)(_Arg); - __fun_type _M_ptr; -public: - pointer_to_unary_function() {} - explicit pointer_to_unary_function(__fun_type __x) : _M_ptr(__x) {} - void operator()(_Arg __x) const { _M_ptr(__x); } -}; - -template <class _Arg1, class _Arg2> -class pointer_to_binary_function<_Arg1, _Arg2, void> : public binary_function<_Arg1,_Arg2,void> { - typedef void (*__fun_type)(_Arg1, _Arg2); - __fun_type _M_ptr; -public: - pointer_to_binary_function() {} - explicit pointer_to_binary_function(__fun_type __x) : _M_ptr(__x) {} - void operator()(_Arg1 __x, _Arg2 __y) const { _M_ptr(__x, __y); } -}; - -#endif /*_STLP_DONT_RETURN_VOID && !_STLP_NO_CLASS_PARTIAL_SPECIALIZATION*/ - -#else /*!_STLP_DONT_RETURN_VOID || !_STLP_NO_CLASS_PARTIAL_SPECIALIZATION || !_STLP_MEMBER_TEMPLATE_CLASSES*/ - -//mem_fun_t -template <class _Result, class _Tp> -class mem_fun_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr _Base; -public: - explicit mem_fun_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//const_mem_fun_t -template <class _Result, class _Tp> -class const_mem_fun_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr_const { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ptr_const _Base; -public: - explicit const_mem_fun_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//mem_fun_ref_t -template <class _Result, class _Tp> -class mem_fun_ref_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref _Base; -public: - explicit mem_fun_ref_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//const_mem_fun_ref_t -template <class _Result, class _Tp> -class const_mem_fun_ref_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref_const { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args0<_Tp>::_Ref_const _Base; -public: - explicit const_mem_fun_ref_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//mem_fun1_t -template <class _Result, class _Tp, class _Arg> -class mem_fun1_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr _Base; -public: - explicit mem_fun1_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//const_mem_fun1_t -template <class _Result, class _Tp, class _Arg> -class const_mem_fun1_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr_const { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ptr_const _Base; -public: - explicit const_mem_fun1_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//mem_fun1_ref_t -template <class _Result, class _Tp, class _Arg> -class mem_fun1_ref_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref _Base; -public: - explicit mem_fun1_ref_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - -//const_mem_fun1_t -template <class _Result, class _Tp, class _Arg> -class const_mem_fun1_ref_t : - public _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref_const { - typedef typename - _Mem_fun_traits<_Result>::_STLP_TEMPLATE _Args1<_Tp,_Arg>::_Ref_const _Base; -public: - explicit const_mem_fun1_ref_t(typename _Base::__fun_type __f) : _Base(__f) {} -}; - - -template <class _Arg, class _Result> -class pointer_to_unary_function : -public _Ptr_fun1<_Result,_Arg> { - typedef typename - _Ptr_fun1<_Result,_Arg>::__fun_type __fun_type; -public: - explicit pointer_to_unary_function(__fun_type __f) - : _Ptr_fun1<_Result,_Arg>(__f) {} -}; - -template <class _Arg1, class _Arg2, class _Result> -class pointer_to_binary_function : -public _Ptr_fun2<_Result,_Arg1,_Arg2> { - typedef typename - _Ptr_fun2<_Result,_Arg1,_Arg2>::__fun_type __fun_type; -public: - explicit pointer_to_binary_function(__fun_type __f) - : _Ptr_fun2<_Result,_Arg1,_Arg2>(__f) {} -}; - -#endif /*!_STLP_DONT_RETURN_VOID || !_STLP_NO_CLASS_PARTIAL_SPECIALIZATION || !_STLP_MEMBER_TEMPLATE_CLASSES*/ - - -# if !defined (_STLP_MEMBER_POINTER_PARAM_BUG) -// Mem_fun adaptor helper functions. There are only two: -// mem_fun and mem_fun_ref. (mem_fun1 and mem_fun1_ref -// are provided for backward compatibility, but they are no longer -// part of the C++ standard.) - -template <class _Result, class _Tp> -inline mem_fun_t<_Result,_Tp> -mem_fun(_Result (_Tp::*__f)()) { return mem_fun_t<_Result,_Tp>(__f); } - -template <class _Result, class _Tp> -inline const_mem_fun_t<_Result,_Tp> -mem_fun(_Result (_Tp::*__f)() const) { return const_mem_fun_t<_Result,_Tp>(__f); } - -template <class _Result, class _Tp> -inline mem_fun_ref_t<_Result,_Tp> -mem_fun_ref(_Result (_Tp::*__f)()) { return mem_fun_ref_t<_Result,_Tp>(__f); } - -template <class _Result, class _Tp> -inline const_mem_fun_ref_t<_Result,_Tp> -mem_fun_ref(_Result (_Tp::*__f)() const) { return const_mem_fun_ref_t<_Result,_Tp>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline mem_fun1_t<_Result,_Tp,_Arg> -mem_fun(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Result,_Tp,_Arg>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline const_mem_fun1_t<_Result,_Tp,_Arg> -mem_fun(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_t<_Result,_Tp,_Arg>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline mem_fun1_ref_t<_Result,_Tp,_Arg> -mem_fun_ref(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline const_mem_fun1_ref_t<_Result,_Tp,_Arg> -mem_fun_ref(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); } - -# if !(defined (_STLP_NO_EXTENSIONS) || defined (_STLP_NO_ANACHRONISMS)) -// mem_fun1 and mem_fun1_ref are no longer part of the C++ standard, -// but they are provided for backward compatibility. -template <class _Result, class _Tp, class _Arg> -inline mem_fun1_t<_Result,_Tp,_Arg> -mem_fun1(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_t<_Result,_Tp,_Arg>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline const_mem_fun1_t<_Result,_Tp,_Arg> -mem_fun1(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_t<_Result,_Tp,_Arg>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline mem_fun1_ref_t<_Result,_Tp,_Arg> -mem_fun1_ref(_Result (_Tp::*__f)(_Arg)) { return mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); } - -template <class _Result, class _Tp, class _Arg> -inline const_mem_fun1_ref_t<_Result,_Tp,_Arg> -mem_fun1_ref(_Result (_Tp::*__f)(_Arg) const) { return const_mem_fun1_ref_t<_Result,_Tp,_Arg>(__f); } - -# endif /* _STLP_NO_EXTENSIONS */ - -# endif /* _STLP_MEMBER_POINTER_PARAM_BUG */ - -template <class _Arg, class _Result> -inline pointer_to_unary_function<_Arg, _Result> -ptr_fun(_Result (*__f)(_Arg)) -{ return pointer_to_unary_function<_Arg, _Result>(__f); } - -template <class _Arg1, class _Arg2, class _Result> -inline pointer_to_binary_function<_Arg1,_Arg2,_Result> -ptr_fun(_Result (*__f)(_Arg1, _Arg2)) -{ return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f); } - -_STLP_END_NAMESPACE diff --git a/WebKit/android/stlport/stl/_function_base.h b/WebKit/android/stlport/stl/_function_base.h deleted file mode 100644 index 5bb9b94..0000000 --- a/WebKit/android/stlport/stl/_function_base.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -#define _STLP_INTERNAL_FUNCTION_BASE_H - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_TYPE_TRAITS_H) -# include <stl/type_traits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Arg, class _Result> -struct unary_function { - typedef _Arg argument_type; - typedef _Result result_type; -}; - -template <class _Arg1, class _Arg2, class _Result> -struct binary_function { - typedef _Arg1 first_argument_type; - typedef _Arg2 second_argument_type; - typedef _Result result_type; -}; - -template <class _Tp> -struct equal_to : public binary_function<_Tp, _Tp, bool> { - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x == __y; } -}; - -template <class _Tp> -struct less : public binary_function<_Tp,_Tp,bool> -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -/* less is the default template parameter for many STL containers, to fully use - * the move constructor feature we need to know that the default less is just a - * functor. - */ - , public __stlport_class<less<_Tp> > -#endif -{ - bool operator()(const _Tp& __x, const _Tp& __y) const { return __x < __y; } - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - //This is for a very special compiler config: partial template specialization - //but no template function partial ordering. - void swap(less<_Tp>&) {} -#endif -}; - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> -struct __type_traits<less<_Tp> > { -#if !defined (__BORLANDC__) - typedef typename _IsSTLportClass<less<_Tp> >::_Ret _STLportLess; -#else - enum { _Is = _IsSTLportClass<less<_Tp> >::_Is }; - typedef typename __bool2type<_Is>::_Ret _STLportLess; -#endif - typedef _STLportLess has_trivial_default_constructor; - typedef _STLportLess has_trivial_copy_constructor; - typedef _STLportLess has_trivial_assignment_operator; - typedef _STLportLess has_trivial_destructor; - typedef _STLportLess is_POD_type; -}; -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -less<_Tp> __less(_Tp* ) { return less<_Tp>(); } - -template <class _Tp> -equal_to<_Tp> __equal_to(_Tp* ) { return equal_to<_Tp>(); } - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Tp> -struct plus : public binary_function<_Tp, _Tp, _Tp> { - _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x + __y; } -}; - -template <class _Tp> -struct minus : public binary_function<_Tp, _Tp, _Tp> { - _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x - __y; } -}; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -plus<_Tp> __plus(_Tp* ) { return plus<_Tp>(); } - -template <class _Tp> -minus<_Tp> __minus(_Tp* ) { return minus<_Tp>(); } - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Tp> -struct multiplies : public binary_function<_Tp, _Tp, _Tp> { - _Tp operator()(const _Tp& __x, const _Tp& __y) const { return __x * __y; } -}; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Pair> -struct _Select1st : public unary_function<_Pair, typename _Pair::first_type> { - const typename _Pair::first_type& operator()(const _Pair& __x) const { - return __x.first; - } -}; - -template <class _Pair> -struct _Select2nd : public unary_function<_Pair, typename _Pair::second_type> { - const typename _Pair::second_type& operator()(const _Pair& __x) const { - return __x.second; - } -}; - -// project1st and project2nd are extensions: they are not part of the standard -template <class _Arg1, class _Arg2> -struct _Project1st : public binary_function<_Arg1, _Arg2, _Arg1> { - _Arg1 operator()(const _Arg1& __x, const _Arg2&) const { return __x; } -}; - -template <class _Arg1, class _Arg2> -struct _Project2nd : public binary_function<_Arg1, _Arg2, _Arg2> { - _Arg2 operator()(const _Arg1&, const _Arg2& __y) const { return __y; } -}; - -#if defined (_STLP_MULTI_CONST_TEMPLATE_ARG_BUG) -// fbp : sort of select1st just for maps -template <class _Pair, class _Whatever> -// JDJ (CW Pro1 doesn't like const when first_type is also const) -struct __Select1st_hint : public unary_function<_Pair, _Whatever> { - const _Whatever& operator () (const _Pair& __x) const { return __x.first; } -}; -# define _STLP_SELECT1ST(__x,__y) _STLP_PRIV __Select1st_hint< __x, __y > -#else -# define _STLP_SELECT1ST(__x, __y) _STLP_PRIV _Select1st< __x > -#endif - -template <class _Tp> -struct _Identity : public unary_function<_Tp,_Tp> { - const _Tp& operator()(const _Tp& __x) const { return __x; } -}; - -template <class _Result, class _Argument> -struct _Constant_unary_fun { - typedef _Argument argument_type; - typedef _Result result_type; - result_type _M_val; - - _Constant_unary_fun(const result_type& __v) : _M_val(__v) {} - const result_type& operator()(const _Argument&) const { return _M_val; } -}; - -template <class _Result, class _Arg1, class _Arg2> -struct _Constant_binary_fun { - typedef _Arg1 first_argument_type; - typedef _Arg2 second_argument_type; - typedef _Result result_type; - _Result _M_val; - - _Constant_binary_fun(const _Result& __v) : _M_val(__v) {} - const result_type& operator()(const _Arg1&, const _Arg2&) const { - return _M_val; - } -}; - -// identity_element (not part of the C++ standard). -template <class _Tp> inline _Tp __identity_element(plus<_Tp>) { return _Tp(0); } -template <class _Tp> inline _Tp __identity_element(multiplies<_Tp>) { return _Tp(1); } - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_FUNCTION_BASE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_hash_fun.h b/WebKit/android/stlport/stl/_hash_fun.h deleted file mode 100644 index b069ff0..0000000 --- a/WebKit/android/stlport/stl/_hash_fun.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_HASH_FUN_H -#define _STLP_HASH_FUN_H - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Key> struct hash { }; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -inline size_t __stl_hash_string(const char* __s) { - _STLP_FIX_LITERAL_BUG(__s) - unsigned long __h = 0; - for ( ; *__s; ++__s) - __h = 5*__h + *__s; - - return size_t(__h); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_TEMPLATE_NULL -struct hash<char*> { - size_t operator()(const char* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - return _STLP_PRIV __stl_hash_string(__s); - } -}; - -_STLP_TEMPLATE_NULL -struct hash<const char*> { - size_t operator()(const char* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - return _STLP_PRIV __stl_hash_string(__s); - } -}; - -_STLP_TEMPLATE_NULL struct hash<char> { - size_t operator()(char __x) const { return __x; } -}; -_STLP_TEMPLATE_NULL struct hash<unsigned char> { - size_t operator()(unsigned char __x) const { return __x; } -}; -#if !defined (_STLP_NO_SIGNED_BUILTINS) -_STLP_TEMPLATE_NULL struct hash<signed char> { - size_t operator()(unsigned char __x) const { return __x; } -}; -#endif -_STLP_TEMPLATE_NULL struct hash<short> { - size_t operator()(short __x) const { return __x; } -}; -_STLP_TEMPLATE_NULL struct hash<unsigned short> { - size_t operator()(unsigned short __x) const { return __x; } -}; -_STLP_TEMPLATE_NULL struct hash<int> { - size_t operator()(int __x) const { return __x; } -}; - -#if defined (_WIN64) || !defined (_STLP_MSVC) || (_STLP_MSVC < 1300) -_STLP_TEMPLATE_NULL struct hash<unsigned int> { - size_t operator()(unsigned int __x) const { return __x; } -}; -#else -/* MSVC .Net since 2002 has a 64 bits portability warning feature. typedef - * like size_t are tagged as potential 64 bits variables making them different from - * unsigned int. To avoid the warning when a hash container is instanciated with - * the size_t key we prefer to grant the size_t specialization rather than the - * unsigned int one. - */ -_STLP_TEMPLATE_NULL struct hash<size_t> { - size_t operator()(size_t __x) const { return __x; } -}; -#endif - -_STLP_TEMPLATE_NULL struct hash<long> { - size_t operator()(long __x) const { return __x; } -}; -_STLP_TEMPLATE_NULL struct hash<unsigned long> { - size_t operator()(unsigned long __x) const { return __x; } -}; - -#if defined (_STLP_LONG_LONG) -_STLP_TEMPLATE_NULL struct hash<_STLP_LONG_LONG> { - size_t operator()(_STLP_LONG_LONG x) const { return (size_t)x; } -}; -_STLP_TEMPLATE_NULL struct hash<unsigned _STLP_LONG_LONG> { - size_t operator()(unsigned _STLP_LONG_LONG x) const { return (size_t)x; } -}; -#endif - -_STLP_TEMPLATE_NULL -struct hash<void *> -{ - union __vp { - size_t s; - void *p; - }; - - size_t operator()(void *__x) const - { - __vp vp; - vp.p = __x; - return vp.s; - } -}; - -_STLP_END_NAMESPACE - -#endif /* _STLP_HASH_FUN_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_hash_map.h b/WebKit/android/stlport/stl/_hash_map.h deleted file mode 100644 index accf3e5..0000000 --- a/WebKit/android/stlport/stl/_hash_map.h +++ /dev/null @@ -1,500 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_HASH_MAP_H -#define _STLP_INTERNAL_HASH_MAP_H - -#ifndef _STLP_INTERNAL_HASHTABLE_H -# include <stl/_hashtable.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(HashMapTraitsT, traits) - -template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>), - _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > -class hash_map -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<hash_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> > -#endif -{ -private: - typedef hash_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self; -public: - typedef _Key key_type; - typedef _Tp data_type; - typedef _Tp mapped_type; -#if !defined (__DMC__) - typedef pair<const key_type, data_type> value_type; -#else - /* DMC goes too far in template instanciation and tries to fully instanciate - * slist<pair<const int, string> > for instance. The generation of assignment - * operator fails of course so we are force to use mutable key for this compiler. - */ - typedef pair<key_type, data_type> value_type; -#endif -private: - //Specific iterator traits creation - typedef _STLP_PRIV _HashMapTraitsT<value_type> _HashMapTraits; - -public: - typedef hashtable<value_type, key_type, _HashFcn, _HashMapTraits, - _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht; - - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_funct() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) -public: - hash_map() : _M_ht(100, hasher(), key_equal(), allocator_type()) {} - explicit hash_map(size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} - hash_map(size_type __n, const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) {} - hash_map(size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} - - hash_map(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) { - } - -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - hash_map(_InputIterator __f, _InputIterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - template <class _InputIterator> - hash_map(_InputIterator __f, _InputIterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - template <class _InputIterator> - hash_map(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } -# ifdef _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS - template <class _InputIterator> - hash_map(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql) - : _M_ht(__n, __hf, __eql, allocator_type()) - { _M_ht.insert_unique(__f, __l); } -# endif - template <class _InputIterator> - hash_map(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } - -#else - hash_map(const value_type* __f, const value_type* __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_map(const value_type* __f, const value_type* __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_map(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_map(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } - - hash_map(const_iterator __f, const_iterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_map(const_iterator __f, const_iterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_map(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_map(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - -public: - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); } - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - -public: - pair<iterator,bool> insert(const value_type& __obj) - { return _M_ht.insert_unique(__obj); } -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) - { _M_ht.insert_unique(__f,__l); } -#else - void insert(const value_type* __f, const value_type* __l) - { _M_ht.insert_unique(__f,__l); } - void insert(const_iterator __f, const_iterator __l) - { _M_ht.insert_unique(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - pair<iterator,bool> insert_noresize(const value_type& __obj) - { return _M_ht.insert_unique_noresize(__obj); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - _Tp& operator[](const _KT& __key) { - iterator __it = _M_ht.find(__key); - return (__it == _M_ht.end() ? - _M_ht._M_insert(value_type(__key, _STLP_DEFAULT_CONSTRUCTED(_Tp))).second : - (*__it).second ); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type erase(const _KT& __key) {return _M_ht.erase(__key); } - void erase(iterator __it) { _M_ht.erase(__it); } - void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - - void resize(size_type __hint) { _M_ht.resize(__hint); } - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type elems_in_bucket(size_type __n) const - { return _M_ht.elems_in_bucket(__n); } -}; - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(HashMultimapTraitsT, traits) - -template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>), - _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > -class hash_multimap -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<hash_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> > -#endif -{ -private: - typedef hash_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self; -public: - typedef _Key key_type; - typedef _Tp data_type; - typedef _Tp mapped_type; -#if !defined (__DMC__) - typedef pair<const key_type, data_type> value_type; -#else - typedef pair<key_type, data_type> value_type; -#endif -private: - //Specific iterator traits creation - typedef _STLP_PRIV _HashMultimapTraitsT<value_type> _HashMultimapTraits; - -public: - typedef hashtable<value_type, key_type, _HashFcn, _HashMultimapTraits, - _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht; - - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_funct() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) -public: - hash_multimap() : _M_ht(100, hasher(), key_equal(), allocator_type()) {} - explicit hash_multimap(size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} - hash_multimap(size_type __n, const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) {} - hash_multimap(size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} - - hash_multimap(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) { - } - -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - hash_multimap(_InputIterator __f, _InputIterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - template <class _InputIterator> - hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - template <class _InputIterator> - hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } -# ifdef _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS - template <class _InputIterator> - hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql) - : _M_ht(__n, __hf, __eql, allocator_type()) - { _M_ht.insert_equal(__f, __l); } -# endif - template <class _InputIterator> - hash_multimap(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } - -#else - hash_multimap(const value_type* __f, const value_type* __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multimap(const value_type* __f, const value_type* __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multimap(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multimap(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } - - hash_multimap(const_iterator __f, const_iterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multimap(const_iterator __f, const_iterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multimap(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multimap(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - -public: - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - -public: - iterator insert(const value_type& __obj) - { return _M_ht.insert_equal(__obj); } -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) - { _M_ht.insert_equal(__f,__l); } -#else - void insert(const value_type* __f, const value_type* __l) { - _M_ht.insert_equal(__f,__l); - } - void insert(const_iterator __f, const_iterator __l) - { _M_ht.insert_equal(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - iterator insert_noresize(const value_type& __obj) - { return _M_ht.insert_equal_noresize(__obj); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> - equal_range(const _KT& __key) { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> - equal_range(const _KT& __key) const { return _M_ht.equal_range(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type erase(const _KT& __key) {return _M_ht.erase(__key); } - void erase(iterator __it) { _M_ht.erase(__it); } - void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - -public: - void resize(size_type __hint) { _M_ht.resize(__hint); } - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type elems_in_bucket(size_type __n) const - { return _M_ht.elems_in_bucket(__n); } -}; - -#define _STLP_TEMPLATE_HEADER template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER hash_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc> -#include <stl/_relops_hash_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#define _STLP_TEMPLATE_CONTAINER hash_multimap<_Key,_Tp,_HashFcn,_EqlKey,_Alloc> -#include <stl/_relops_hash_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -struct __move_traits<hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > : - _STLP_PRIV __move_traits_help<typename hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht> -{}; - -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -struct __move_traits<hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > : - _STLP_PRIV __move_traits_help<typename hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht> -{}; - -// Specialization of insert_iterator so that it will work for hash_map -// and hash_multimap. -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -class insert_iterator<hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > { -protected: - typedef hash_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container; - _Container* container; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; - -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -class insert_iterator<hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > { -protected: - typedef hash_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container; - _Container* container; - typename _Container::iterator iter; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_HASH_MAP_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_hash_set.h b/WebKit/android/stlport/stl/_hash_set.h deleted file mode 100644 index b800dc1..0000000 --- a/WebKit/android/stlport/stl/_hash_set.h +++ /dev/null @@ -1,483 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_HASH_SET_H -#define _STLP_INTERNAL_HASH_SET_H - -#ifndef _STLP_INTERNAL_HASHTABLE_H -# include <stl/_hashtable.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(HashSetTraitsT, Const_traits) - -template <class _Value, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Value>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Value>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Value) > -class hash_set -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > -#endif -{ - typedef hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Self; - //Specific iterator traits creation - typedef _STLP_PRIV _HashSetTraitsT<_Value> _HashSetTraits; -public: - typedef hashtable<_Value, _Value, _HashFcn, - _HashSetTraits, _STLP_PRIV _Identity<_Value>, _EqualKey, _Alloc> _Ht; -public: - typedef typename _Ht::key_type key_type; - typedef typename _Ht::value_type value_type; - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_funct() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - hash_set() - : _M_ht(100, hasher(), key_equal(), allocator_type()) {} - explicit hash_set(size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} - hash_set(size_type __n, const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) {} -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - hash_set(size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) -#else - hash_set(size_type __n, const hasher& __hf, const key_equal& __eql) - : _M_ht(__n, __hf, __eql, allocator_type()) {} - hash_set(size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a) -#endif - : _M_ht(__n, __hf, __eql, __a) {} - - hash_set(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - hash_set(_InputIterator __f, _InputIterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - template <class _InputIterator> - hash_set(_InputIterator __f, _InputIterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - template <class _InputIterator> - hash_set(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - template <class _InputIterator> - hash_set(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - hash_set(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql) - : _M_ht(__n, __hf, __eql, allocator_type()) - { _M_ht.insert_unique(__f, __l); } -# endif -#else - hash_set(const value_type* __f, const value_type* __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_set(const value_type* __f, const value_type* __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_set(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_set(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } - - hash_set(const_iterator __f, const_iterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_set(const_iterator __f, const_iterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_set(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_unique(__f, __l); } - hash_set(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - -public: - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - -public: - pair<iterator, bool> insert(const value_type& __obj) - { return _M_ht.insert_unique(__obj); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) -#else - void insert(const_iterator __f, const_iterator __l) - {_M_ht.insert_unique(__f, __l); } - void insert(const value_type* __f, const value_type* __l) -#endif - { _M_ht.insert_unique(__f,__l); } - - pair<iterator, bool> insert_noresize(const value_type& __obj) - { return _M_ht.insert_unique_noresize(__obj); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type erase(const _KT& __key) {return _M_ht.erase(__key); } - void erase(iterator __it) { _M_ht.erase(__it); } - void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - -public: - void resize(size_type __hint) { _M_ht.resize(__hint); } - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type elems_in_bucket(size_type __n) const - { return _M_ht.elems_in_bucket(__n); } -}; - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(HashMultisetTraitsT, Const_traits) - -template <class _Value, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Value>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Value>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Value) > -class hash_multiset -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > -#endif -{ - typedef hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Self; - //Specific iterator traits creation - typedef _STLP_PRIV _HashMultisetTraitsT<_Value> _HashMultisetTraits; -public: - typedef hashtable<_Value, _Value, _HashFcn, - _HashMultisetTraits, _STLP_PRIV _Identity<_Value>, _EqualKey, _Alloc> _Ht; - - typedef typename _Ht::key_type key_type; - typedef typename _Ht::value_type value_type; - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_funct() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - hash_multiset() - : _M_ht(100, hasher(), key_equal(), allocator_type()) {} - explicit hash_multiset(size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) {} - hash_multiset(size_type __n, const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) {} - hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql) - : _M_ht(__n, __hf, __eql, allocator_type()) {} - hash_multiset(size_type __n, const hasher& __hf, const key_equal& __eql, - const allocator_type& __a) - : _M_ht(__n, __hf, __eql, __a) {} - - hash_multiset(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - hash_multiset(_InputIterator __f, _InputIterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - template <class _InputIterator> - hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - template <class _InputIterator> - hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - - template <class _InputIterator> - hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - hash_multiset(_InputIterator __f, _InputIterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql) - : _M_ht(__n, __hf, __eql, allocator_type()) - { _M_ht.insert_equal(__f, __l); } -# endif -#else - hash_multiset(const value_type* __f, const value_type* __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multiset(const value_type* __f, const value_type* __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multiset(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multiset(const value_type* __f, const value_type* __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } - - hash_multiset(const_iterator __f, const_iterator __l) - : _M_ht(100, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multiset(const_iterator __f, const_iterator __l, size_type __n) - : _M_ht(__n, hasher(), key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multiset(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf) - : _M_ht(__n, __hf, key_equal(), allocator_type()) - { _M_ht.insert_equal(__f, __l); } - hash_multiset(const_iterator __f, const_iterator __l, size_type __n, - const hasher& __hf, const key_equal& __eql, - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - -public: - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& hs) { _M_ht.swap(hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - -public: - iterator insert(const value_type& __obj) { return _M_ht.insert_equal(__obj); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) - { _M_ht.insert_equal(__f,__l); } -#else - void insert(const value_type* __f, const value_type* __l) - { _M_ht.insert_equal(__f,__l); } - void insert(const_iterator __f, const_iterator __l) - { _M_ht.insert_equal(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - iterator insert_noresize(const value_type& __obj) - { return _M_ht.insert_equal_noresize(__obj); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type erase(const _KT& __key) {return _M_ht.erase(__key); } - void erase(iterator __it) { _M_ht.erase(__it); } - void erase(iterator __f, iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - -public: - void resize(size_type __hint) { _M_ht.resize(__hint); } - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type elems_in_bucket(size_type __n) const - { return _M_ht.elems_in_bucket(__n); } -}; - -#define _STLP_TEMPLATE_HEADER template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER hash_set<_Value,_HashFcn,_EqualKey,_Alloc> - -#include <stl/_relops_hash_cont.h> - -#undef _STLP_TEMPLATE_CONTAINER -#define _STLP_TEMPLATE_CONTAINER hash_multiset<_Value,_HashFcn,_EqualKey,_Alloc> -#include <stl/_relops_hash_cont.h> - -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -// Specialization of insert_iterator so that it will work for hash_set -// and hash_multiset. - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -struct __move_traits<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > : - _STLP_PRIV __move_traits_aux<typename hash_set<_Value, _HashFcn, _EqualKey, _Alloc>::_Ht> -{}; - -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -struct __move_traits<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > : - _STLP_PRIV __move_traits_aux<typename hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc>::_Ht> -{}; - -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -class insert_iterator<hash_set<_Value, _HashFcn, _EqualKey, _Alloc> > { -protected: - typedef hash_set<_Value, _HashFcn, _EqualKey, _Alloc> _Container; - _Container* container; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; - -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -class insert_iterator<hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > { -protected: - typedef hash_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Container; - _Container* container; - typename _Container::iterator iter; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_HASH_SET_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_hashtable.c b/WebKit/android/stlport/stl/_hashtable.c deleted file mode 100644 index c9dafa2..0000000 --- a/WebKit/android/stlport/stl/_hashtable.c +++ /dev/null @@ -1,478 +0,0 @@ -/* - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_HASHTABLE_C -#define _STLP_HASHTABLE_C - -#ifndef _STLP_INTERNAL_HASHTABLE_H -# include <stl/_hashtable.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) - -_STLP_MOVE_TO_PRIV_NAMESPACE - -# define __PRIME_LIST_BODY { \ - 7ul, 23ul, \ - 53ul, 97ul, 193ul, 389ul, 769ul, \ - 1543ul, 3079ul, 6151ul, 12289ul, 24593ul, \ - 49157ul, 98317ul, 196613ul, 393241ul, 786433ul, \ - 1572869ul, 3145739ul, 6291469ul, 12582917ul, 25165843ul, \ - 50331653ul, 100663319ul, 201326611ul, 402653189ul, 805306457ul,\ - 1610612741ul, 3221225473ul, 4294967291ul \ -} - -template <class _Dummy> -size_t _STLP_CALL -_Stl_prime<_Dummy>::_S_max_nb_buckets() { - const size_t _list[] = __PRIME_LIST_BODY; -# ifndef __MWERKS__ - return _list[(sizeof(_list)/sizeof(_list[0])) - 1]; -# else - return _list[30/sizeof(size_t) - 1]; // stupid MWERKS! -# endif -} - -template <class _Dummy> -size_t _STLP_CALL -_Stl_prime<_Dummy>::_S_next_size(size_t __n) { - static const size_t _list[] = __PRIME_LIST_BODY; - const size_t* __first = _list; -# ifndef __MWERKS__ - const size_t* __last = _list + (sizeof(_list)/sizeof(_list[0])); -# else - const size_t* __last = _list + (30/sizeof(size_t)); // stupid MWERKS -# endif - const size_t* pos = __lower_bound(__first, __last, __n, - __less((size_t*)0), __less((size_t*)0), (ptrdiff_t*)0); - return (pos == __last ? *(__last - 1) : *pos); -} - -# undef __PRIME_LIST_BODY - -_STLP_MOVE_TO_STD_NAMESPACE - -#endif - -#if defined (_STLP_DEBUG) -# define hashtable _STLP_NON_DBG_NAME(hashtable) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -// fbp: these defines are for outline methods definitions. -// needed to definitions to be portable. Should not be used in method bodies. - -#if defined ( _STLP_NESTED_TYPE_PARAM_BUG ) -# define __size_type__ size_t -# define size_type size_t -# define value_type _Val -# define key_type _Key -# define __reference__ _Val& - -# define __iterator__ _Ht_iterator<_Val, _STLP_HEADER_TYPENAME _Traits::_NonConstTraits, \ - _Key, _HF, _ExK, _EqK, _All> -# define __const_iterator__ _Ht_iterator<_Val, _STLP_HEADER_TYPENAME _Traits::_ConstTraits, \ - _Key, _HF, _ExK, _EqK, _All> -#else -# define __size_type__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::size_type -# define __reference__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::reference -# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::iterator -# define __const_iterator__ _STLP_TYPENAME_ON_RETURN_TYPE hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All>::const_iterator -#endif - -/* - * This method is too difficult to implement for hashtable that do not - * require a sorted operation on the stored type. -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -bool hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>::_M_equal( - const hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>& __ht1, - const hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>& __ht2) { - return __ht1._M_buckets == __ht2._M_buckets && - __ht1._M_elems == __ht2._M_elems; -} -*/ - -/* Returns the iterator before the first iterator of the bucket __n and set - * __n to the first previous bucket having the same first iterator as bucket - * __n. - */ -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__iterator__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::_M_before_begin(size_type &__n) const { - return _S_before_begin(_M_elems, _M_buckets, __n); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__iterator__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::_S_before_begin(const _ElemsCont& __elems, const _BucketVector& __buckets, - size_type &__n) { - _ElemsCont &__mutable_elems = __CONST_CAST(_ElemsCont&, __elems); - typename _BucketVector::const_iterator __bpos(__buckets.begin() + __n); - - _ElemsIte __pos(*__bpos); - if (__pos == __mutable_elems.begin()) { - __n = 0; - return __mutable_elems.before_begin(); - } - - typename _BucketVector::const_iterator __bcur(__bpos); - _BucketType *__pos_node = __pos._M_node; - for (--__bcur; __pos_node == *__bcur; --__bcur); - - __n = __bcur - __buckets.begin() + 1; - _ElemsIte __cur(*__bcur); - _ElemsIte __prev = __cur++; - for (; __cur != __pos; ++__prev, ++__cur); - return __prev; -} - - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__iterator__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::_M_insert_noresize(size_type __n, const value_type& __obj) { - //We always insert this element as 1st in the bucket to not break - //the elements order as equal elements must be kept next to each other. - size_type __prev = __n; - _ElemsIte __pos = _M_before_begin(__prev)._M_ite; - - fill(_M_buckets.begin() + __prev, _M_buckets.begin() + __n + 1, - _M_elems.insert_after(__pos, __obj)._M_node); - ++_M_num_elements; - return iterator(_ElemsIte(_M_buckets[__n])); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -pair<__iterator__, bool> -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::insert_unique_noresize(const value_type& __obj) { - const size_type __n = _M_bkt_num(__obj); - _ElemsIte __cur(_M_buckets[__n]); - _ElemsIte __last(_M_buckets[__n + 1]); - - if (__cur != __last) { - for (; __cur != __last; ++__cur) { - if (_M_equals(_M_get_key(*__cur), _M_get_key(__obj))) { - //We check that equivalent keys have equals hash code as otherwise, on resize, - //equivalent value might not be in the same bucket - _STLP_ASSERT(_M_hash(_M_get_key(*__cur)) == _M_hash(_M_get_key(__obj))) - return pair<iterator, bool>(iterator(__cur), false); - } - } - /* Here we do not rely on the _M_insert_noresize method as we know - * that we cannot break element orders, elements are unique, and - * insertion after the first bucket element is faster than what is - * done in _M_insert_noresize. - */ - __cur = _M_elems.insert_after(_ElemsIte(_M_buckets[__n]), __obj); - ++_M_num_elements; - return pair<iterator, bool>(iterator(__cur), true); - } - - return pair<iterator, bool>(_M_insert_noresize(__n, __obj), true); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__iterator__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::insert_equal_noresize(const value_type& __obj) { - const size_type __n = _M_bkt_num(__obj); - { - _ElemsIte __cur(_M_buckets[__n]); - _ElemsIte __last(_M_buckets[__n + 1]); - - for (; __cur != __last; ++__cur) { - if (_M_equals(_M_get_key(*__cur), _M_get_key(__obj))) { - //We check that equivalent keys have equals hash code as otherwise, on resize, - //equivalent value might not be in the same bucket - _STLP_ASSERT(_M_hash(_M_get_key(*__cur)) == _M_hash(_M_get_key(__obj))) - ++_M_num_elements; - return _M_elems.insert_after(__cur, __obj); - } - } - } - - return _M_insert_noresize(__n, __obj); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__reference__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::_M_insert(const value_type& __obj) { - resize(_M_num_elements + 1); - return *insert_unique_noresize(__obj).first; -} - -/* -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__reference__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::find_or_insert(const value_type& __obj) { - _Node* __first = _M_find(_M_get_key(__obj)); - if (__first) - return __first->_M_val; - else - return _M_insert(__obj); -} -*/ - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -__size_type__ -hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::erase(const key_type& __key) { - const size_type __n = _M_bkt_num_key(__key); - - _ElemsIte __cur(_M_buckets[__n]); - _ElemsIte __last(_M_buckets[__n + 1]); - if (__cur == __last) - return 0; - - size_type __erased = 0; - if (_M_equals(_M_get_key(*__cur), __key)) { - //We look for the pos before __cur: - size_type __prev_b = __n; - _ElemsIte __prev = _M_before_begin(__prev_b)._M_ite; - do { - __cur = _M_elems.erase_after(__prev); - ++__erased; - } while ((__cur != __last) && _M_equals(_M_get_key(*__cur), __key)); - fill(_M_buckets.begin() + __prev_b, _M_buckets.begin() + __n + 1, __cur._M_node); - } - else { - _ElemsIte __prev = __cur++; - for (; __cur != __last; ++__prev, ++__cur) { - if (_M_equals(_M_get_key(*__cur), __key)) { - do { - __cur = _M_elems.erase_after(__prev); - ++__erased; - } while ((__cur != __last) && _M_equals(_M_get_key(*__cur), __key)); - break; - } - } - } - - _M_num_elements -= __erased; - return __erased; -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::erase(const_iterator __it) { - const size_type __n = _M_bkt_num(*__it); - _ElemsIte __cur(_M_buckets[__n]); - - if (__cur == __it._M_ite) { - size_type __prev_b = __n; - _ElemsIte __prev = _M_before_begin(__prev_b)._M_ite; - fill(_M_buckets.begin() + __prev_b, _M_buckets.begin() + __n + 1, - _M_elems.erase_after(__prev)._M_node); - --_M_num_elements; - } - else { - _ElemsIte __prev = __cur++; - _ElemsIte __last(_M_buckets[__n + 1]); - for (; __cur != __last; ++__prev, ++__cur) { - if (__cur == __it._M_ite) { - _M_elems.erase_after(__prev); - --_M_num_elements; - break; - } - } - } -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::erase(const_iterator __first, const_iterator __last) { - if (__first == __last) - return; - size_type __f_bucket = _M_bkt_num(*__first); - size_type __l_bucket = __last != end() ? _M_bkt_num(*__last) : (_M_buckets.size() - 1); - - _ElemsIte __cur(_M_buckets[__f_bucket]); - _ElemsIte __prev; - if (__cur == __first._M_ite) { - __prev = _M_before_begin(__f_bucket)._M_ite; - } - else { - _ElemsIte __last(_M_buckets[++__f_bucket]); - __prev = __cur++; - for (; (__cur != __last) && (__cur != __first._M_ite); ++__prev, ++__cur); - } - //We do not use the slist::erase_after method taking a range to count the - //number of erased elements: - while (__cur != __last._M_ite) { - __cur = _M_elems.erase_after(__prev); - --_M_num_elements; - } - fill(_M_buckets.begin() + __f_bucket, _M_buckets.begin() + __l_bucket + 1, __cur._M_node); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::rehash(size_type __num_buckets_hint) { - if ((bucket_count() >= __num_buckets_hint) && - (max_load_factor() > load_factor())) - return; - - //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())); - size_type __num_buckets = _STLP_PRIV _Stl_prime_type::_S_next_size(__num_buckets_hint); - _M_rehash(__num_buckets); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::resize(size_type __num_elements_hint) { - if (((float)__num_elements_hint / (float)bucket_count() <= max_load_factor()) && - (max_load_factor() >= load_factor())) { - return; - } - - size_type __num_buckets_hint = (size_type)((float)(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(); -#endif - _M_rehash(__num_buckets); -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::_M_rehash(size_type __num_buckets) { - _ElemsCont __tmp_elems(_M_elems.get_allocator()); - _BucketVector __tmp(__num_buckets + 1, __STATIC_CAST(_BucketType*, 0), _M_buckets.get_allocator()); - _ElemsIte __cur, __last(_M_elems.end()); - while (!_M_elems.empty()) { - __cur = _M_elems.begin(); - size_type __new_bucket = _M_bkt_num(*__cur, __num_buckets); - _ElemsIte __ite(__cur), __before_ite(__cur); - for (++__ite; - __ite != __last && _M_equals(_M_get_key(*__cur), _M_get_key(*__ite)); - ++__ite, ++__before_ite); - size_type __prev_bucket = __new_bucket; - _ElemsIte __prev = _S_before_begin(__tmp_elems, __tmp, __prev_bucket)._M_ite; - __tmp_elems.splice_after(__prev, _M_elems, _M_elems.before_begin(), __before_ite); - fill(__tmp.begin() + __prev_bucket, __tmp.begin() + __new_bucket + 1, __cur._M_node); - } - _M_elems.swap(__tmp_elems); - _M_buckets.swap(__tmp); -} - -#if defined (_STLP_DEBUG) -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>::_M_check() const { - //We check that hash code of stored keys haven't change and also that equivalent - //relation hasn't been modified - size_t __num_buckets = bucket_count(); - for (size_t __b = 0; __b < __num_buckets; ++__b) { - _ElemsIte __cur(_M_buckets[__b]), __last(_M_buckets[__b + 1]); - _ElemsIte __fst(__cur), __snd(__cur); - for (; __cur != __last; ++__cur) { - _STLP_ASSERT( _M_bkt_num(*__cur, __num_buckets) == __b ) - _STLP_ASSERT( !_M_equals(_M_get_key(*__fst), _M_get_key(*__cur)) || _M_equals(_M_get_key(*__snd), _M_get_key(*__cur)) ) - if (__fst != __snd) - ++__fst; - if (__snd != __cur) - ++__snd; - } - } -} -#endif - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>::clear() { - _M_elems.clear(); - _M_buckets.assign(_M_buckets.size(), __STATIC_CAST(_BucketType*, 0)); - _M_num_elements = 0; -} - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -void hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> - ::_M_copy_from(const hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All>& __ht) { - _M_elems.clear(); - _M_elems.insert(_M_elems.end(), __ht._M_elems.begin(), __ht._M_elems.end()); - _M_buckets.resize(__ht._M_buckets.size()); - _ElemsConstIte __src(__ht._M_elems.begin()), __src_end(__ht._M_elems.end()); - _ElemsIte __dst(_M_elems.begin()); - typename _BucketVector::const_iterator __src_b(__ht._M_buckets.begin()), - __src_end_b(__ht._M_buckets.end()); - typename _BucketVector::iterator __dst_b(_M_buckets.begin()), __dst_end_b(_M_buckets.end()); - for (; __src != __src_end; ++__src, ++__dst) { - for (; __src_b != __src_end_b; ++__src_b, ++__dst_b) { - if (*__src_b == __src._M_node) { - *__dst_b = __dst._M_node; - } - else - break; - } - } - fill(__dst_b, __dst_end_b, __STATIC_CAST(_BucketType*, 0)); - _M_num_elements = __ht._M_num_elements; - _M_max_load_factor = __ht._M_max_load_factor; -} - -#undef __iterator__ -#undef const_iterator -#undef __size_type__ -#undef __reference__ -#undef size_type -#undef value_type -#undef key_type -#undef __stl_num_primes - -#if defined (_STLP_DEBUG) -# undef hashtable -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_HASHTABLE_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_hashtable.h b/WebKit/android/stlport/stl/_hashtable.h deleted file mode 100644 index 6653931..0000000 --- a/WebKit/android/stlport/stl/_hashtable.h +++ /dev/null @@ -1,682 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_HASHTABLE_H -#define _STLP_INTERNAL_HASHTABLE_H - -#ifndef _STLP_INTERNAL_VECTOR_H -# include <stl/_vector.h> -#endif - -#ifndef _STLP_INTERNAL_SLIST_H -# include <stl/_slist.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_HASH_FUN_H -# include <stl/_hash_fun.h> -#endif - -/* - * Hashtable class, used to implement the hashed associative containers - * hash_set, hash_map, hash_multiset, hash_multimap, - * unordered_set, unordered_map, unordered_multiset, unordered_multimap. - */ - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -//Export of the classes used to represent buckets in the hashtable implementation. -# if !defined (_STLP_USE_PTR_SPECIALIZATIONS) -//If pointer specialization is enabled vector<_Slist_node_base*> will use the void* -//storage type for which internal classes have already been exported. -_STLP_EXPORT_TEMPLATE_CLASS allocator<_STLP_PRIV _Slist_node_base*>; - -_STLP_MOVE_TO_PRIV_NAMESPACE -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<_Slist_node_base**, _Slist_node_base*, - allocator<_Slist_node_base*> >; -_STLP_EXPORT_TEMPLATE_CLASS _Vector_base<_Slist_node_base*, - allocator<_Slist_node_base*> >; -_STLP_MOVE_TO_STD_NAMESPACE -# endif - -# if defined (_STLP_DEBUG) -_STLP_MOVE_TO_PRIV_NAMESPACE -# define _STLP_NON_DBG_VECTOR _STLP_NON_DBG_NAME(vector) -_STLP_EXPORT_TEMPLATE_CLASS __construct_checker<_STLP_NON_DBG_VECTOR<_Slist_node_base*, allocator<_Slist_node_base*> > >; -_STLP_EXPORT_TEMPLATE_CLASS _STLP_NON_DBG_VECTOR<_Slist_node_base*, allocator<_Slist_node_base*> >; -# undef _STLP_NON_DBG_VECTOR -_STLP_MOVE_TO_STD_NAMESPACE -# endif - -_STLP_EXPORT_TEMPLATE_CLASS vector<_STLP_PRIV _Slist_node_base*, - allocator<_STLP_PRIV _Slist_node_base*> >; -#endif - -#if defined (_STLP_DEBUG) -# define hashtable _STLP_NON_DBG_NAME(hashtable) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -// some compilers require the names of template parameters to be the same -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -class hashtable; - -#if !defined (_STLP_DEBUG) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _BaseIte, class _Traits> -struct _Ht_iterator { - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef typename _Traits::_NonConstTraits _NonConstTraits; - - typedef _Ht_iterator<_BaseIte,_Traits> _Self; - - typedef typename _Traits::value_type value_type; - typedef typename _Traits::pointer pointer; - typedef typename _Traits::reference reference; - typedef forward_iterator_tag iterator_category; - typedef ptrdiff_t difference_type; - typedef size_t size_type; - - typedef _Ht_iterator<_BaseIte, _NonConstTraits> iterator; - typedef _Ht_iterator<_BaseIte, _ConstTraits> const_iterator; - - _Ht_iterator() {} - //copy constructor for iterator and constructor from iterator for const_iterator - _Ht_iterator(const iterator& __it) : _M_ite(__it._M_ite) {} - _Ht_iterator(_BaseIte __it) : _M_ite(__it) {} - - reference operator*() const { - return *_M_ite; - } - _STLP_DEFINE_ARROW_OPERATOR - - _Self& operator++() { - ++_M_ite; - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - ++*this; - return __tmp; - } - - bool operator == (const_iterator __rhs) const { - return _M_ite == __rhs._M_ite; - } - bool operator != (const_iterator __rhs) const { - return _M_ite != __rhs._M_ite; - } - - _BaseIte _M_ite; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _BaseIte, class _Traits> -struct __type_traits<_STLP_PRIV _Ht_iterator<_BaseIte, _Traits> > { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -template <class _BaseIte, class _Traits> -inline -# if defined (_STLP_NESTED_TYPE_PARAM_BUG) -_STLP_TYPENAME_ON_RETURN_TYPE _Traits::value_type * -# else -_STLP_TYPENAME_ON_RETURN_TYPE _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>::value_type * -# endif -value_type(const _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>&) { - typedef typename _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>::value_type _Val; - return (_Val*) 0; -} -template <class _BaseIte, class _Traits> -inline forward_iterator_tag iterator_category(const _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>&) -{ return forward_iterator_tag(); } -template <class _BaseIte, class _Traits> -inline ptrdiff_t* distance_type(const _STLP_PRIV _Ht_iterator<_BaseIte,_Traits>&) -{ return (ptrdiff_t*) 0; } -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Dummy> -class _Stl_prime { -public: - //Returns the maximum number of buckets handled by the hashtable implementation - static size_t _STLP_CALL _S_max_nb_buckets(); - - //Returns the bucket size next to a required size - static size_t _STLP_CALL _S_next_size(size_t); -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _Stl_prime<bool>; -#endif - -typedef _Stl_prime<bool> _Stl_prime_type; - -#if !defined (_STLP_DEBUG) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -/* - * Hashtables handle allocators a bit differently than other containers - * do. If we're using standard-conforming allocators, then a hashtable - * unconditionally has a member variable to hold its allocator, even if - * it so happens that all instances of the allocator type are identical. - * This is because, for hashtables, this extra storage is negligible. - * Additionally, a base class wouldn't serve any other purposes; it - * wouldn't, for example, simplify the exception-handling code. - */ -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -class hashtable { - typedef hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All> _Self; - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef typename _Traits::_NonConstLocalTraits _NonConstLocalTraits; - typedef typename _Traits::_ConstLocalTraits _ConstLocalTraits; - -public: - typedef _Key key_type; - typedef _Val value_type; - typedef _HF hasher; - typedef _EqK key_equal; - - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef typename _NonConstTraits::pointer pointer; - typedef const value_type* const_pointer; - typedef typename _NonConstTraits::reference reference; - typedef const value_type& const_reference; - typedef forward_iterator_tag _Iterator_category; - - hasher hash_funct() const { return _M_hash; } - key_equal key_eq() const { return _M_equals; } - -private: - _STLP_FORCE_ALLOCATORS(_Val, _All) -#if defined (_STLP_DEBUG) - typedef _STLP_PRIV _STLP_NON_DBG_NAME(slist)<value_type, _All> _ElemsCont; -#else - typedef slist<value_type, _All> _ElemsCont; -#endif - typedef typename _ElemsCont::iterator _ElemsIte; - typedef typename _ElemsCont::const_iterator _ElemsConstIte; - typedef _STLP_PRIV _Slist_node_base _BucketType; - typedef typename _Alloc_traits<_BucketType*, _All>::allocator_type _M_bucket_allocator_type; - /* - * We are going to use vector of _Slist_node_base pointers for 2 reasons: - * - limit code bloat, all hashtable instanciation use the same buckets representation. - * - avoid _STLP_DEBUG performance trouble: with a vector of iterator on slist the resize - * method would be too slow because the slist::splice_after method become linear on - * the number of iterators in the buckets rather than constant in time as the iterator - * has to be move from a slist to the other. - */ -#if defined (_STLP_DEBUG) - typedef _STLP_PRIV _STLP_NON_DBG_NAME(vector)<_BucketType*, _M_bucket_allocator_type> _BucketVector; -#else - typedef vector<_BucketType*, _M_bucket_allocator_type> _BucketVector; -#endif - - hasher _M_hash; - key_equal _M_equals; - _ExK _M_get_key; - _ElemsCont _M_elems; - _BucketVector _M_buckets; - size_type _M_num_elements; - float _M_max_load_factor; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _NonConstTraits> iterator; - typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _ConstTraits> const_iterator; - //TODO: Avoids this debug check and make the local_iterator different from - //iterator in debug mode too. -#if !defined (_STLP_DEBUG) - typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _NonConstLocalTraits> local_iterator; - typedef _STLP_PRIV _Ht_iterator<_ElemsIte, _ConstLocalTraits> const_local_iterator; -#else - typedef iterator local_iterator; - typedef const_iterator const_local_iterator; -#endif - - typedef typename _Alloc_traits<_Val, _All>::allocator_type allocator_type; - allocator_type get_allocator() const { return _M_elems.get_allocator(); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const _ExK& __ext, - const allocator_type& __a = allocator_type()) -#else - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const _ExK& __ext) - : _M_hash(__hf), - _M_equals(__eql), - _M_get_key(__ext), - _M_elems(allocator_type()), - _M_buckets(_STLP_CONVERT_ALLOCATOR(__a, _BucketType*)), - _M_num_elements(0), - _M_max_load_factor(1.0f) - { _M_initialize_buckets(__n); } - - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const _ExK& __ext, - const allocator_type& __a) -#endif - : _M_hash(__hf), - _M_equals(__eql), - _M_get_key(__ext), - _M_elems(__a), - _M_buckets(_STLP_CONVERT_ALLOCATOR(__a, _BucketType*)), - _M_num_elements(0), - _M_max_load_factor(1.0f) - { _M_initialize_buckets(__n); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const allocator_type& __a = allocator_type()) -#else - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql) - : _M_hash(__hf), - _M_equals(__eql), - _M_get_key(_ExK()), - _M_elems(allocator_type()), - _M_buckets(_STLP_CONVERT_ALLOCATOR(__a, _BucketType*)), - _M_num_elements(0), - _M_max_load_factor(1.0f) - { _M_initialize_buckets(__n); } - - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const allocator_type& __a) -#endif - : _M_hash(__hf), - _M_equals(__eql), - _M_get_key(_ExK()), - _M_elems(__a), - _M_buckets(_STLP_CONVERT_ALLOCATOR(__a, _BucketType*)), - _M_num_elements(0), - _M_max_load_factor(1.0f) - { _M_initialize_buckets(__n); } - - hashtable(const _Self& __ht) - : _M_hash(__ht._M_hash), - _M_equals(__ht._M_equals), - _M_get_key(__ht._M_get_key), - _M_elems(__ht.get_allocator()), - _M_buckets(_STLP_CONVERT_ALLOCATOR(__ht.get_allocator(), _BucketType*)), - _M_num_elements(0), - _M_max_load_factor(1.0f) - { _M_copy_from(__ht); } - - hashtable(__move_source<_Self> src) - : _M_hash(_STLP_PRIV _AsMoveSource(src.get()._M_hash)), - _M_equals(_STLP_PRIV _AsMoveSource(src.get()._M_equals)), - _M_get_key(_STLP_PRIV _AsMoveSource(src.get()._M_get_key)), - _M_elems(__move_source<_ElemsCont>(src.get()._M_elems)), - _M_buckets(__move_source<_BucketVector>(src.get()._M_buckets)), - _M_num_elements(src.get()._M_num_elements), - _M_max_load_factor(src.get()._M_max_load_factor) {} - - _Self& operator= (const _Self& __ht) { - if (&__ht != this) { - clear(); - _M_hash = __ht._M_hash; - _M_equals = __ht._M_equals; - _M_get_key = __ht._M_get_key; - _M_copy_from(__ht); - } - return *this; - } - - ~hashtable() { clear(); } - - size_type size() const { return _M_num_elements; } - size_type max_size() const { return size_type(-1); } - bool empty() const { return size() == 0; } - - void swap(_Self& __ht) { - _STLP_STD::swap(_M_hash, __ht._M_hash); - _STLP_STD::swap(_M_equals, __ht._M_equals); - _STLP_STD::swap(_M_get_key, __ht._M_get_key); - _M_elems.swap(__ht._M_elems); - _M_buckets.swap(__ht._M_buckets); - _STLP_STD::swap(_M_num_elements, __ht._M_num_elements); - _STLP_STD::swap(_M_max_load_factor, __ht._M_max_load_factor); - } - - iterator begin() { return _M_elems.begin(); } - iterator end() { return _M_elems.end(); } - local_iterator begin(size_type __n) { return _ElemsIte(_M_buckets[__n]); } - local_iterator end(size_type __n) { return _ElemsIte(_M_buckets[__n + 1]); } - - const_iterator begin() const { return __CONST_CAST(_ElemsCont&, _M_elems).begin(); } - const_iterator end() const { return __CONST_CAST(_ElemsCont&, _M_elems).end(); } - const_local_iterator begin(size_type __n) const { return _ElemsIte(_M_buckets[__n]); } - const_local_iterator end(size_type __n) const { return _ElemsIte(_M_buckets[__n + 1]); } - - //static bool _STLP_CALL _M_equal (const _Self&, const _Self&); - -public: - //The number of buckets is size() - 1 because the last bucket always contains - //_M_elems.end() to make algo easier to implement. - size_type bucket_count() const { return _M_buckets.size() - 1; } - size_type max_bucket_count() const { return _STLP_PRIV _Stl_prime_type::_S_max_nb_buckets(); } - size_type elems_in_bucket(size_type __bucket) const - { return distance(_ElemsIte(_M_buckets[__bucket]), _ElemsIte(_M_buckets[__bucket + 1])); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type bucket(const _KT& __k) const { return _M_bkt_num_key(__k); } - - // hash policy - float load_factor() const { return (float)size() / (float)bucket_count(); } - float max_load_factor() const { return _M_max_load_factor; } - void max_load_factor(float __z) { _M_max_load_factor = __z;} - - pair<iterator, bool> insert_unique(const value_type& __obj) { - resize(_M_num_elements + 1); - return insert_unique_noresize(__obj); - } - - iterator insert_equal(const value_type& __obj) { - resize(_M_num_elements + 1); - return insert_equal_noresize(__obj); - } - -protected: - iterator _M_insert_noresize(size_type __n, const value_type& __obj); -public: - pair<iterator, bool> insert_unique_noresize(const value_type& __obj); - iterator insert_equal_noresize(const value_type& __obj); - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert_unique(_InputIterator __f, _InputIterator __l) - { insert_unique(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIterator)); } - - template <class _InputIterator> - void insert_equal(_InputIterator __f, _InputIterator __l) - { insert_equal(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIterator)); } - - template <class _InputIterator> - void insert_unique(_InputIterator __f, _InputIterator __l, - const input_iterator_tag &) { - for ( ; __f != __l; ++__f) - insert_unique(*__f); - } - - template <class _InputIterator> - void insert_equal(_InputIterator __f, _InputIterator __l, - const input_iterator_tag &) { - for ( ; __f != __l; ++__f) - insert_equal(*__f); - } - - template <class _ForwardIterator> - void insert_unique(_ForwardIterator __f, _ForwardIterator __l, - const forward_iterator_tag &) { - size_type __n = distance(__f, __l); - resize(_M_num_elements + __n); - for ( ; __n > 0; --__n, ++__f) - insert_unique_noresize(*__f); - } - - template <class _ForwardIterator> - void insert_equal(_ForwardIterator __f, _ForwardIterator __l, - const forward_iterator_tag &) { - size_type __n = distance(__f, __l); - resize(_M_num_elements + __n); - for ( ; __n > 0; --__n, ++__f) - insert_equal_noresize(*__f); - } - -#else /* _STLP_MEMBER_TEMPLATES */ - void insert_unique(const value_type* __f, const value_type* __l) { - size_type __n = __l - __f; - resize(_M_num_elements + __n); - for ( ; __n > 0; --__n, ++__f) - insert_unique_noresize(*__f); - } - - void insert_equal(const value_type* __f, const value_type* __l) { - size_type __n = __l - __f; - resize(_M_num_elements + __n); - for ( ; __n > 0; --__n, ++__f) - insert_equal_noresize(*__f); - } - - void insert_unique(const_iterator __f, const_iterator __l) { - size_type __n = distance(__f, __l); - resize(_M_num_elements + __n); - for ( ; __n > 0; --__n, ++__f) - insert_unique_noresize(*__f); - } - - void insert_equal(const_iterator __f, const_iterator __l) { - size_type __n = distance(__f, __l); - resize(_M_num_elements + __n); - for ( ; __n > 0; --__n, ++__f) - insert_equal_noresize(*__f); - } -#endif /*_STLP_MEMBER_TEMPLATES */ - - //reference find_or_insert(const value_type& __obj); - -private: - _STLP_TEMPLATE_FOR_CONT_EXT - _ElemsIte _M_find(const _KT& __key) const { - size_type __n = _M_bkt_num_key(__key); - _ElemsIte __first(_M_buckets[__n]); - _ElemsIte __last(_M_buckets[__n + 1]); - for ( ; (__first != __last) && !_M_equals(_M_get_key(*__first), __key); ++__first); - if (__first != __last) - return __first; - else - return __CONST_CAST(_ElemsCont&, _M_elems).end(); - } - -public: - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { - const size_type __n = _M_bkt_num_key(__key); - - _ElemsIte __cur(_M_buckets[__n]); - _ElemsIte __last(_M_buckets[__n + 1]); - for (; __cur != __last; ++__cur) { - if (_M_equals(_M_get_key(*__cur), __key)) { - size_type __result = 1; - for (++__cur; - __cur != __last && _M_equals(_M_get_key(*__cur), __key); - ++__result, ++__cur); - return __result; - } - } - return 0; - } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) { - typedef pair<iterator, iterator> _Pii; - const size_type __n = _M_bkt_num_key(__key); - - for (_ElemsIte __first(_M_buckets[__n]), __last(_M_buckets[__n + 1]); - __first != __last; ++__first) { - if (_M_equals(_M_get_key(*__first), __key)) { - _ElemsIte __cur(__first); - for (++__cur; (__cur != __last) && _M_equals(_M_get_key(*__cur), __key); ++__cur); - return _Pii(__first, __cur); - } - } - return _Pii(end(), end()); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const { - typedef pair<const_iterator, const_iterator> _Pii; - const size_type __n = _M_bkt_num_key(__key); - - for (_ElemsIte __first(_M_buckets[__n]), __last(_M_buckets[__n + 1]); - __first != __last; ++__first) { - if (_M_equals(_M_get_key(*__first), __key)) { - _ElemsIte __cur(__first); - for (++__cur; (__cur != __last) && _M_equals(_M_get_key(*__cur), __key); ++__cur); - return _Pii(__first, __cur); - } - } - return _Pii(end(), end()); - } - - size_type erase(const key_type& __key); - void erase(const_iterator __it); - void erase(const_iterator __first, const_iterator __last); - -private: - void _M_rehash(size_type __num_buckets); -#if defined (_STLP_DEBUG) - void _M_check() const; -#endif - -public: - void rehash(size_type __num_buckets_hint); - void resize(size_type __num_elements_hint); - void clear(); - - // this is for hash_map::operator[] - reference _M_insert(const value_type& __obj); - -private: - //__n is set to the first bucket that has to be modified if any - //erase/insert operation is done after the returned iterator. - iterator _M_before_begin(size_type &__n) const; - - static iterator _S_before_begin(const _ElemsCont& __elems, const _BucketVector& __buckets, - size_type &__n); - - void _M_initialize_buckets(size_type __n) { - const size_type __n_buckets = _STLP_PRIV _Stl_prime_type::_S_next_size(__n) + 1; - _M_buckets.reserve(__n_buckets); - _M_buckets.assign(__n_buckets, __STATIC_CAST(_BucketType*, 0)); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type _M_bkt_num_key(const _KT& __key) const - { return _M_bkt_num_key(__key, bucket_count()); } - - size_type _M_bkt_num(const value_type& __obj) const - { return _M_bkt_num_key(_M_get_key(__obj)); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type _M_bkt_num_key(const _KT& __key, size_type __n) const - { return _M_hash(__key) % __n; } - - size_type _M_bkt_num(const value_type& __obj, size_t __n) const - { return _M_bkt_num_key(_M_get_key(__obj), __n); } - - void _M_copy_from(const _Self& __ht); -}; - -#if defined (_STLP_DEBUG) -# undef hashtable -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_hashtable.c> -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_hashtable.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define _STLP_TEMPLATE_HEADER template <class _Val, class _Key, class _HF, class _Traits, class _ExK, class _EqK, class _All> -#define _STLP_TEMPLATE_CONTAINER hashtable<_Val,_Key,_HF,_Traits,_ExK,_EqK,_All> -#include <stl/_relops_hash_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Val, class _Key, class _HF, class _Traits, class _ExK, class _EqK, class _All> -struct __move_traits<hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All> > { - //Hashtables are movable: - typedef __stlp_movable implemented; - - //Completeness depends on many template parameters, for the moment we consider it not complete: - typedef __false_type complete; -}; -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_HASHTABLE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_heap.c b/WebKit/android/stlport/stl/_heap.c deleted file mode 100644 index a4ab049..0000000 --- a/WebKit/android/stlport/stl/_heap.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_HEAP_C -#define _STLP_HEAP_C - -#ifndef _STLP_INTERNAL_HEAP_H -# include <stl/_heap.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _RandomAccessIterator, class _Distance, class _Tp> -_STLP_INLINE_LOOP -void -__push_heap(_RandomAccessIterator __first, - _Distance __holeIndex, _Distance __topIndex, _Tp __val) -{ - _Distance __parent = (__holeIndex - 1) / 2; - while (__holeIndex > __topIndex && *(__first + __parent) < __val) { - *(__first + __holeIndex) = *(__first + __parent); - __holeIndex = __parent; - __parent = (__holeIndex - 1) / 2; - } - *(__first + __holeIndex) = __val; -} - -template <class _RandomAccessIterator, class _Distance, class _Tp> -inline void -__push_heap_aux(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Distance*, _Tp*) -{ - __push_heap(__first, _Distance((__last - __first) - 1), _Distance(0), - _Tp(*(__last - 1))); -} - -template <class _RandomAccessIterator> -void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - __push_heap_aux(__first, __last, - _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator), _STLP_VALUE_TYPE(__first, _RandomAccessIterator)); -} - - -template <class _RandomAccessIterator, class _Distance, class _Tp, - class _Compare> -_STLP_INLINE_LOOP -void -__push_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __topIndex, _Tp __val, _Compare __comp) -{ - _Distance __parent = (__holeIndex - 1) / 2; - while (__holeIndex > __topIndex && __comp(*(__first + __parent), __val)) { - _STLP_VERBOSE_ASSERT(!__comp(__val, *(__first + __parent)), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - *(__first + __holeIndex) = *(__first + __parent); - __holeIndex = __parent; - __parent = (__holeIndex - 1) / 2; - } - *(__first + __holeIndex) = __val; -} - -template <class _RandomAccessIterator, class _Compare, - class _Distance, class _Tp> -inline void -__push_heap_aux(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp, - _Distance*, _Tp*) -{ - __push_heap(__first, _Distance((__last - __first) - 1), _Distance(0), - _Tp(*(__last - 1)), __comp); -} - -template <class _RandomAccessIterator, class _Compare> -void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp) -{ - __push_heap_aux(__first, __last, __comp, - _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator), _STLP_VALUE_TYPE(__first, _RandomAccessIterator)); -} - -template <class _RandomAccessIterator, class _Distance, class _Tp> -void -__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __val) { - _Distance __topIndex = __holeIndex; - _Distance __secondChild = 2 * __holeIndex + 2; - while (__secondChild < __len) { - if (*(__first + __secondChild) < *(__first + (__secondChild - 1))) - __secondChild--; - *(__first + __holeIndex) = *(__first + __secondChild); - __holeIndex = __secondChild; - __secondChild = 2 * (__secondChild + 1); - } - if (__secondChild == __len) { - *(__first + __holeIndex) = *(__first + (__secondChild - 1)); - __holeIndex = __secondChild - 1; - } - __push_heap(__first, __holeIndex, __topIndex, __val); -} - - -template <class _RandomAccessIterator, class _Tp> -inline void -__pop_heap_aux(_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp*) { - __pop_heap(__first, __last - 1, __last - 1, - _Tp(*(__last - 1)), _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator)); -} - -template <class _RandomAccessIterator> -void pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last) { - __pop_heap_aux(__first, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIterator)); -} - -template <class _RandomAccessIterator, class _Distance, - class _Tp, class _Compare> -void -__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __val, _Compare __comp) -{ - _Distance __topIndex = __holeIndex; - _Distance __secondChild = 2 * __holeIndex + 2; - while (__secondChild < __len) { - if (__comp(*(__first + __secondChild), *(__first + (__secondChild - 1)))) { - _STLP_VERBOSE_ASSERT(!__comp(*(__first + (__secondChild - 1)), *(__first + __secondChild)), - _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __secondChild--; - } - *(__first + __holeIndex) = *(__first + __secondChild); - __holeIndex = __secondChild; - __secondChild = 2 * (__secondChild + 1); - } - if (__secondChild == __len) { - *(__first + __holeIndex) = *(__first + (__secondChild - 1)); - __holeIndex = __secondChild - 1; - } - __push_heap(__first, __holeIndex, __topIndex, __val, __comp); -} - - -template <class _RandomAccessIterator, class _Tp, class _Compare> -inline void -__pop_heap_aux(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Tp*, _Compare __comp) -{ - __pop_heap(__first, __last - 1, __last - 1, _Tp(*(__last - 1)), __comp, - _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator)); -} - - -template <class _RandomAccessIterator, class _Compare> -void -pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) -{ - __pop_heap_aux(__first, __last, _STLP_VALUE_TYPE(__first, _RandomAccessIterator), __comp); -} - -template <class _RandomAccessIterator, class _Tp, class _Distance> -_STLP_INLINE_LOOP -void -__make_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Tp*, _Distance*) -{ - if (__last - __first < 2) return; - _Distance __len = __last - __first; - _Distance __parent = (__len - 2)/2; - - for (;;) { - __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent))); - if (__parent == 0) return; - __parent--; - } -} - -template <class _RandomAccessIterator> -void -make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - __make_heap(__first, __last, - _STLP_VALUE_TYPE(__first, _RandomAccessIterator), _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator)); -} - -template <class _RandomAccessIterator, class _Compare, - class _Tp, class _Distance> -_STLP_INLINE_LOOP -void -__make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp, _Tp*, _Distance*) -{ - if (__last - __first < 2) return; - _Distance __len = __last - __first; - _Distance __parent = (__len - 2)/2; - - for (;;) { - __adjust_heap(__first, __parent, __len, _Tp(*(__first + __parent)), - __comp); - if (__parent == 0) return; - __parent--; - } -} - -template <class _RandomAccessIterator, class _Compare> -void -make_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) -{ - __make_heap(__first, __last, __comp, - _STLP_VALUE_TYPE(__first, _RandomAccessIterator), _STLP_DISTANCE_TYPE(__first, _RandomAccessIterator)); -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_HEAP_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_heap.h b/WebKit/android/stlport/stl/_heap.h deleted file mode 100644 index 016dc49..0000000 --- a/WebKit/android/stlport/stl/_heap.h +++ /dev/null @@ -1,125 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Hewlett-Packard Company makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - * Copyright (c) 1997 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_HEAP_H -#define _STLP_INTERNAL_HEAP_H - -_STLP_BEGIN_NAMESPACE - -// Heap-manipulation functions: push_heap, pop_heap, make_heap, sort_heap. - -template <class _RandomAccessIterator> -void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last); - - -template <class _RandomAccessIterator, class _Compare> -void -push_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _Compare __comp); - -template <class _RandomAccessIterator, class _Distance, class _Tp> -void -__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __val); - -template <class _RandomAccessIterator, class _Tp, class _Distance> -inline void -__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _RandomAccessIterator __result, _Tp __val, _Distance*) -{ - *__result = *__first; - __adjust_heap(__first, _Distance(0), _Distance(__last - __first), __val); -} - -template <class _RandomAccessIterator> -void pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last); - -template <class _RandomAccessIterator, class _Distance, - class _Tp, class _Compare> -void -__adjust_heap(_RandomAccessIterator __first, _Distance __holeIndex, - _Distance __len, _Tp __val, _Compare __comp); - -template <class _RandomAccessIterator, class _Tp, class _Compare, - class _Distance> -inline void -__pop_heap(_RandomAccessIterator __first, _RandomAccessIterator __last, - _RandomAccessIterator __result, _Tp __val, _Compare __comp, - _Distance*) -{ - *__result = *__first; - __adjust_heap(__first, _Distance(0), _Distance(__last - __first), - __val, __comp); -} - -template <class _RandomAccessIterator, class _Compare> -void -pop_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp); - -template <class _RandomAccessIterator> -void -make_heap(_RandomAccessIterator __first, _RandomAccessIterator __last); - -template <class _RandomAccessIterator, class _Compare> -void -make_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp); - -template <class _RandomAccessIterator> -_STLP_INLINE_LOOP -void sort_heap(_RandomAccessIterator __first, _RandomAccessIterator __last) -{ - while (__last - __first > 1) - pop_heap(__first, __last--); -} - -template <class _RandomAccessIterator, class _Compare> -_STLP_INLINE_LOOP -void -sort_heap(_RandomAccessIterator __first, - _RandomAccessIterator __last, _Compare __comp) -{ - while (__last - __first > 1) - pop_heap(__first, __last--, __comp); -} - -_STLP_END_NAMESPACE - -# if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_heap.c> -# endif - -#endif /* _STLP_INTERNAL_HEAP_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_ios.c b/WebKit/android/stlport/stl/_ios.c deleted file mode 100644 index 99e477b..0000000 --- a/WebKit/android/stlport/stl/_ios.c +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_IOS_C -#define _STLP_IOS_C - -#ifndef _STLP_INTERNAL_IOS_H -# include <stl/_ios.h> -#endif - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -#ifndef _STLP_INTERNAL_NUMPUNCT_H -# include <stl/_numpunct.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// basic_ios<>'s non-inline member functions - -// Public constructor, taking a streambuf. -template <class _CharT, class _Traits> -basic_ios<_CharT, _Traits> - ::basic_ios(basic_streambuf<_CharT, _Traits>* __streambuf) - : ios_base(), - _M_fill(_STLP_NULL_CHAR_INIT(_CharT)), _M_streambuf(0), _M_tied_ostream(0) { - basic_ios<_CharT, _Traits>::init(__streambuf); -} - -template <class _CharT, class _Traits> -basic_streambuf<_CharT, _Traits>* -basic_ios<_CharT, _Traits>::rdbuf(basic_streambuf<_CharT, _Traits>* __buf) { - basic_streambuf<_CharT, _Traits>* __tmp = _M_streambuf; - _M_streambuf = __buf; - this->clear(); - return __tmp; -} - -template <class _CharT, class _Traits> -basic_ios<_CharT, _Traits>& -basic_ios<_CharT, _Traits>::copyfmt(const basic_ios<_CharT, _Traits>& __x) { - _M_invoke_callbacks(erase_event); - _M_copy_state(__x); // Inherited from ios_base. - _M_fill = __x._M_fill; - _M_tied_ostream = __x._M_tied_ostream; - _M_invoke_callbacks(copyfmt_event); - this->_M_set_exception_mask(__x.exceptions()); - return *this; -} - -template <class _CharT, class _Traits> -locale basic_ios<_CharT, _Traits>::imbue(const locale& __loc) { - locale __tmp = ios_base::imbue(__loc); - _STLP_TRY { - if (_M_streambuf) - _M_streambuf->pubimbue(__loc); - - // no throwing here - this->_M_cached_ctype = __loc._M_get_facet(ctype<char_type>::id); - this->_M_cached_numpunct = __loc._M_get_facet(numpunct<char_type>::id); - this->_M_cached_grouping = ((numpunct<char_type>*)_M_cached_numpunct)->grouping(); - } - _STLP_CATCH_ALL { - __tmp = ios_base::imbue(__tmp); - _M_handle_exception(ios_base::failbit); - } - return __tmp; -} - -// Protected constructor and initialization functions. The default -// constructor creates an uninitialized basic_ios, and init() initializes -// all of the members to the values in Table 89 of the C++ standard. - -template <class _CharT, class _Traits> -basic_ios<_CharT, _Traits>::basic_ios() - : ios_base(), - _M_fill(_STLP_NULL_CHAR_INIT(_CharT)), _M_streambuf(0), _M_tied_ostream(0) -{} - -template <class _CharT, class _Traits> -void -basic_ios<_CharT, _Traits>::init(basic_streambuf<_CharT, _Traits>* __sb) -{ - this->rdbuf(__sb); - this->imbue(locale()); - this->tie(0); - this->_M_set_exception_mask(ios_base::goodbit); - this->_M_clear_nothrow(__sb != 0 ? ios_base::goodbit : ios_base::badbit); - ios_base::flags(ios_base::skipws | ios_base::dec); - ios_base::width(0); - ios_base::precision(6); - this->fill(widen(' ')); - // We don't need to worry about any of the three arrays: they are - // initialized correctly in ios_base's constructor. -} - -// This is never called except from within a catch clause. -template <class _CharT, class _Traits> -void basic_ios<_CharT, _Traits>::_M_handle_exception(ios_base::iostate __flag) -{ - this->_M_setstate_nothrow(__flag); - if (this->_M_get_exception_mask() & __flag) - _STLP_RETHROW; -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_IOS_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_ios.h b/WebKit/android/stlport/stl/_ios.h deleted file mode 100644 index 8e6da2d..0000000 --- a/WebKit/android/stlport/stl/_ios.h +++ /dev/null @@ -1,178 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_INTERNAL_IOS_H -#define _STLP_INTERNAL_IOS_H - - -#ifndef _STLP_IOS_BASE_H -# include <stl/_ios_base.h> -#endif - -#ifndef _STLP_INTERNAL_CTYPE_H -# include <stl/_ctype.h> -#endif -#ifndef _STLP_INTERNAL_NUMPUNCT_H -# include <stl/_numpunct.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// ---------------------------------------------------------------------- - -// Class basic_ios, a subclass of ios_base. The only important difference -// between the two is that basic_ios is a class template, parameterized -// by the character type. ios_base exists to factor out all of the -// common properties that don't depend on the character type. - -// The second template parameter, _Traits, defaults to char_traits<_CharT>. -// The default is declared in header <iosfwd>, and it isn't declared here -// because C++ language rules do not allow it to be declared twice. - -template <class _CharT, class _Traits> -class basic_ios : public ios_base { - friend class ios_base; -public: // Synonyms for types. - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - -public: // Constructor, destructor. - explicit basic_ios(basic_streambuf<_CharT, _Traits>* __streambuf); - virtual ~basic_ios() {} - -public: // Members from clause 27.4.4.2 - basic_ostream<_CharT, _Traits>* tie() const { - return _M_tied_ostream; - } - basic_ostream<_CharT, _Traits>* - tie(basic_ostream<char_type, traits_type>* __new_tied_ostream) { - basic_ostream<char_type, traits_type>* __tmp = _M_tied_ostream; - _M_tied_ostream = __new_tied_ostream; - return __tmp; - } - - basic_streambuf<_CharT, _Traits>* rdbuf() const - { return _M_streambuf; } - - basic_streambuf<_CharT, _Traits>* - rdbuf(basic_streambuf<char_type, traits_type>*); - - // Copies __x's state to *this. - basic_ios<_CharT, _Traits>& copyfmt(const basic_ios<_CharT, _Traits>& __x); - - char_type fill() const { return _M_fill; } - char_type fill(char_type __fill) { - char_type __tmp(_M_fill); - _M_fill = __fill; - return __tmp; - } - -public: // Members from 27.4.4.3. These four functions - // can almost be defined in ios_base. - - void clear(iostate __state = goodbit) { - _M_clear_nothrow(this->rdbuf() ? __state : iostate(__state|ios_base::badbit)); - _M_check_exception_mask(); - } - void setstate(iostate __state) { this->clear(rdstate() | __state); } - - iostate exceptions() const { return this->_M_get_exception_mask(); } - void exceptions(iostate __mask) { - this->_M_set_exception_mask(__mask); - this->clear(this->rdstate()); - } - -public: // Locale-related member functions. - locale imbue(const locale&); - - inline char narrow(_CharT, char) const ; - inline _CharT widen(char) const; - - // Helper function that makes testing for EOF more convenient. - static bool _STLP_CALL _S_eof(int_type __c) { - const int_type __eof = _Traits::eof(); - return _Traits::eq_int_type(__c, __eof); - } - -protected: - basic_ios(); - - void init(basic_streambuf<_CharT, _Traits>* __streambuf); - -public: - - // Helper function used in istream and ostream. It is called only from - // a catch clause. - void _M_handle_exception(ios_base::iostate __flag); - -private: // Data members - char_type _M_fill; // The fill character, used for padding. - - basic_streambuf<_CharT, _Traits>* _M_streambuf; - basic_ostream<_CharT, _Traits>* _M_tied_ostream; - -}; - - -template <class _CharT, class _Traits> -inline char -basic_ios<_CharT, _Traits>::narrow(_CharT __c, char __default) const -{ return __STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())->narrow(__c, __default); } - -template <class _CharT, class _Traits> -inline _CharT -basic_ios<_CharT, _Traits>::widen(char __c) const -{ return __STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())->widen(__c); } - -# if !defined (_STLP_NO_METHOD_SPECIALIZATION) -_STLP_TEMPLATE_NULL -inline char -basic_ios<char, char_traits<char> >::narrow(char __c, char) const -{ - return __c; -} - -_STLP_TEMPLATE_NULL -inline char -basic_ios<char, char_traits<char> >::widen(char __c) const -{ - return __c; -} -# endif /* _STLP_NO_METHOD_SPECIALIZATION */ - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_ios<char, char_traits<char> >; -# if ! defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_ios<wchar_t, char_traits<wchar_t> >; -# endif -# endif /* _STLP_USE_TEMPLATE_EXPORT */ - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_ios.c> -#endif - -#endif /* _STLP_IOS */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_ios_base.h b/WebKit/android/stlport/stl/_ios_base.h deleted file mode 100644 index b90606a..0000000 --- a/WebKit/android/stlport/stl/_ios_base.h +++ /dev/null @@ -1,368 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_IOS_BASE_H -#define _STLP_IOS_BASE_H - -#ifndef _STLP_INTERNAL_STDEXCEPT_BASE -# include <stl/_stdexcept_base.h> -#endif - -#ifndef _STLP_UTILITY -# include <utility> -#endif - -#ifndef _STLP_INTERNAL_LOCALE_H -# include <stl/_locale.h> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// ---------------------------------------------------------------------- - -// Class ios_base. This is the base class of the ios hierarchy, which -// includes basic_istream and basic_ostream. Classes in the ios -// hierarchy are actually quite simple: they are just glorified -// wrapper classes. They delegate buffering and physical character -// manipulation to the streambuf classes, and they delegate most -// formatting tasks to a locale. - -class _STLP_CLASS_DECLSPEC ios_base { -public: - - class _STLP_CLASS_DECLSPEC failure : public __Named_exception { - public: - explicit failure(const string&); - virtual ~failure() _STLP_NOTHROW_INHERENTLY; - }; - - typedef int fmtflags; - typedef int iostate; - typedef int openmode; - typedef int seekdir; - -# ifndef _STLP_NO_ANACHRONISMS - typedef fmtflags fmt_flags; -# endif - - // Formatting flags. -#if defined (_STLP_STATIC_CONST_INIT_BUG) - enum { -#else - // boris : type for all those constants is int - static const int -#endif - left = 0x0001, - right = 0x0002, - internal = 0x0004, - dec = 0x0008, - hex = 0x0010, - oct = 0x0020, - fixed = 0x0040, - scientific = 0x0080, - boolalpha = 0x0100, - showbase = 0x0200, - showpoint = 0x0400, - showpos = 0x0800, - skipws = 0x1000, - unitbuf = 0x2000, - uppercase = 0x4000, - adjustfield = left | right | internal, - basefield = dec | hex | oct, - floatfield = scientific | fixed, - - // State flags. - goodbit = 0x00, - badbit = 0x01, - eofbit = 0x02, - failbit = 0x04, - - // Openmode flags. - __default_mode = 0x0, /* implementation detail */ - app = 0x01, - ate = 0x02, - binary = 0x04, - in = 0x08, - out = 0x10, - trunc = 0x20, - - // Seekdir flags - - beg = 0x01, - cur = 0x02, - end = 0x04 -# ifdef _STLP_STATIC_CONST_INIT_BUG - } -# endif - ; - -public: // Flag-manipulation functions. - fmtflags flags() const { return _M_fmtflags; } - fmtflags flags(fmtflags __flags) { - fmtflags __tmp = _M_fmtflags; - _M_fmtflags = __flags; - return __tmp; - } - - fmtflags setf(fmtflags __flag) { - fmtflags __tmp = _M_fmtflags; - _M_fmtflags |= __flag; - return __tmp; - } - fmtflags setf(fmtflags __flag, fmtflags __mask) { - fmtflags __tmp = _M_fmtflags; - _M_fmtflags &= ~__mask; - _M_fmtflags |= __flag & __mask; - return __tmp; - } - void unsetf(fmtflags __mask) { _M_fmtflags &= ~__mask; } - - streamsize precision() const { return _M_precision; } - streamsize precision(streamsize __newprecision) { - streamsize __tmp = _M_precision; - _M_precision = __newprecision; - return __tmp; - } - - streamsize width() const { return _M_width; } - streamsize width(streamsize __newwidth) { - streamsize __tmp = _M_width; - _M_width = __newwidth; - return __tmp; - } - -public: // Locales - locale imbue(const locale&); - locale getloc() const { return _M_locale; } - -public: // Auxiliary storage. - static int _STLP_CALL xalloc(); - long& iword(int __index); - void*& pword(int __index); - -public: // Destructor. - virtual ~ios_base(); - -public: // Callbacks. - enum event { erase_event, imbue_event, copyfmt_event }; - typedef void (*event_callback)(event, ios_base&, int __index); - void register_callback(event_callback __fn, int __index); - -public: // This member function affects only - // the eight predefined ios objects: - // cin, cout, etc. - static bool _STLP_CALL sync_with_stdio(bool __sync = true); - -public: // The C++ standard requires only that these - // member functions be defined in basic_ios. - // We define them in the non-template - // base class to avoid code duplication. - operator void*() const { return !fail() ? (void*) __CONST_CAST(ios_base*,this) : (void*) 0; } - bool operator!() const { return fail(); } - - iostate rdstate() const { return _M_iostate; } - - bool good() const { return _M_iostate == 0; } - bool eof() const { return (_M_iostate & eofbit) != 0; } - bool fail() const { return (_M_iostate & (failbit | badbit)) != 0; } - bool bad() const { return (_M_iostate & badbit) != 0; } - -protected: // The functional protected interface. - - // Copies the state of __x to *this. This member function makes it - // possible to implement basic_ios::copyfmt without having to expose - // ios_base's private data members. Does not copy _M_exception_mask - // or _M_iostate. - void _M_copy_state(const ios_base& __x); - - void _M_setstate_nothrow(iostate __state) { _M_iostate |= __state; } - void _M_clear_nothrow(iostate __state) { _M_iostate = __state; } - iostate _M_get_exception_mask() const { return _M_exception_mask; } - void _M_set_exception_mask(iostate __mask) { _M_exception_mask = __mask; } - void _M_check_exception_mask() { - if (_M_iostate & _M_exception_mask) - _M_throw_failure(); - } - - void _M_invoke_callbacks(event); - void _STLP_FUNCTION_THROWS _M_throw_failure(); - - ios_base(); // Default constructor. - -protected: // Initialization of the I/O system - static void _STLP_CALL _S_initialize(); - static void _STLP_CALL _S_uninitialize(); - static bool _S_was_synced; - -private: // Invalidate the copy constructor and - // assignment operator. - ios_base(const ios_base&); - void operator=(const ios_base&); - -private: // Data members. - - fmtflags _M_fmtflags; // Flags - iostate _M_iostate; - openmode _M_openmode; - seekdir _M_seekdir; - iostate _M_exception_mask; - - streamsize _M_precision; - streamsize _M_width; - - locale _M_locale; - - pair<event_callback, int>* _M_callbacks; - size_t _M_num_callbacks; // Size of the callback array. - size_t _M_callback_index; // Index of the next available callback; - // initially zero. - - long* _M_iwords; // Auxiliary storage. The count is zero - size_t _M_num_iwords; // if and only if the pointer is null. - - void** _M_pwords; - size_t _M_num_pwords; - -protected: - // Cached copies of the curent locale's facets. Set by init() and imbue(). - locale::facet* _M_cached_ctype; - locale::facet* _M_cached_numpunct; - string _M_cached_grouping; -public: - // Equivalent to &use_facet< Facet >(getloc()), but faster. - const locale::facet* _M_ctype_facet() const { return _M_cached_ctype; } - const locale::facet* _M_numpunct_facet() const { return _M_cached_numpunct; } - const string& _M_grouping() const { return _M_cached_grouping; } -public: - - // ---------------------------------------------------------------------- - // Nested initializer class. This is an implementation detail, but it's - // prescribed by the standard. The static initializer object (on - // implementations where such a thing is required) is declared in - // <iostream> - - class _STLP_CLASS_DECLSPEC Init - { - public: - Init(); - ~Init(); - private: - static long _S_count; - friend class ios_base; - }; - - friend class Init; - -public: -# ifndef _STLP_NO_ANACHRONISMS - // 31.6 Old iostreams members [depr.ios.members] - typedef iostate io_state; - typedef openmode open_mode; - typedef seekdir seek_dir; - typedef _STLP_STD::streamoff streamoff; - typedef _STLP_STD::streampos streampos; -# endif -}; - -// ---------------------------------------------------------------------- -// ios_base manipulator functions, from section 27.4.5 of the C++ standard. -// All of them are trivial one-line wrapper functions. - -// fmtflag manipulators, section 27.4.5.1 -inline ios_base& _STLP_CALL boolalpha(ios_base& __s) - { __s.setf(ios_base::boolalpha); return __s;} - -inline ios_base& _STLP_CALL noboolalpha(ios_base& __s) - { __s.unsetf(ios_base::boolalpha); return __s;} - -inline ios_base& _STLP_CALL showbase(ios_base& __s) - { __s.setf(ios_base::showbase); return __s;} - -inline ios_base& _STLP_CALL noshowbase(ios_base& __s) - { __s.unsetf(ios_base::showbase); return __s;} - -inline ios_base& _STLP_CALL showpoint(ios_base& __s) - { __s.setf(ios_base::showpoint); return __s;} - -inline ios_base& _STLP_CALL noshowpoint(ios_base& __s) - { __s.unsetf(ios_base::showpoint); return __s;} - -inline ios_base& _STLP_CALL showpos(ios_base& __s) - { __s.setf(ios_base::showpos); return __s;} - -inline ios_base& _STLP_CALL noshowpos(ios_base& __s) - { __s.unsetf(ios_base::showpos); return __s;} - -inline ios_base& _STLP_CALL skipws(ios_base& __s) - { __s.setf(ios_base::skipws); return __s;} - -inline ios_base& _STLP_CALL noskipws(ios_base& __s) - { __s.unsetf(ios_base::skipws); return __s;} - -inline ios_base& _STLP_CALL uppercase(ios_base& __s) - { __s.setf(ios_base::uppercase); return __s;} - -inline ios_base& _STLP_CALL nouppercase(ios_base& __s) - { __s.unsetf(ios_base::uppercase); return __s;} - -inline ios_base& _STLP_CALL unitbuf(ios_base& __s) - { __s.setf(ios_base::unitbuf); return __s;} - -inline ios_base& _STLP_CALL nounitbuf(ios_base& __s) - { __s.unsetf(ios_base::unitbuf); return __s;} - - -// adjustfield manipulators, section 27.4.5.2 -inline ios_base& _STLP_CALL internal(ios_base& __s) - { __s.setf(ios_base::internal, ios_base::adjustfield); return __s; } - -inline ios_base& _STLP_CALL left(ios_base& __s) - { __s.setf(ios_base::left, ios_base::adjustfield); return __s; } - -inline ios_base& _STLP_CALL right(ios_base& __s) - { __s.setf(ios_base::right, ios_base::adjustfield); return __s; } - -// basefield manipulators, section 27.4.5.3 -inline ios_base& _STLP_CALL dec(ios_base& __s) - { __s.setf(ios_base::dec, ios_base::basefield); return __s; } - -inline ios_base& _STLP_CALL hex(ios_base& __s) - { __s.setf(ios_base::hex, ios_base::basefield); return __s; } - -inline ios_base& _STLP_CALL oct(ios_base& __s) - { __s.setf(ios_base::oct, ios_base::basefield); return __s; } - - -// floatfield manipulators, section 27.4.5.3 -inline ios_base& _STLP_CALL fixed(ios_base& __s) - { __s.setf(ios_base::fixed, ios_base::floatfield); return __s; } - -inline ios_base& _STLP_CALL scientific(ios_base& __s) - { __s.setf(ios_base::scientific, ios_base::floatfield); return __s; } - -_STLP_END_NAMESPACE - -#endif /* _STLP_IOS_BASE */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_ioserr.h b/WebKit/android/stlport/stl/_ioserr.h deleted file mode 100644 index 83ba877..0000000 --- a/WebKit/android/stlport/stl/_ioserr.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * This file is included in every header that needs the STLport library to be - * built; the header files mostly are the iostreams-headers. The file checks for - * _STLP_USE_NO_IOSTREAMS or _STLP_NO_IOSTREAMS being not defined, so that the - * iostreams part of STLport cannot be used when the symbols were defined - * accidentally. - */ -#if defined (_STLP_NO_IOSTREAMS) -# error STLport iostreams header cannot be used; you chose not to use iostreams in the STLport configuration file (stlport/stl/config/user_config.h). -#elif defined (_STLP_USE_NO_IOSTREAMS ) -# error STLport iostreams header cannot be used; your compiler do not support it. -#endif diff --git a/WebKit/android/stlport/stl/_iosfwd.h b/WebKit/android/stlport/stl/_iosfwd.h deleted file mode 100644 index 64c6430..0000000 --- a/WebKit/android/stlport/stl/_iosfwd.h +++ /dev/null @@ -1,159 +0,0 @@ -#ifndef _STLP_INTERNAL_IOSFWD -#define _STLP_INTERNAL_IOSFWD - -#if defined (__sgi) && !defined (__GNUC__) && !defined (_STANDARD_C_PLUS_PLUS) -# error This header file requires the -LANG:std option -#endif - -// This file provides forward declarations of the most important I/O -// classes. Note that almost all of those classes are class templates, -// with default template arguments. According to the C++ standard, -// if a class template is declared more than once in the same scope -// then only one of those declarations may have default arguments. - -// <iosfwd> contains the same declarations as other headers, and including -// both <iosfwd> and (say) <iostream> is permitted. This means that only -// one header may contain those default template arguments. - -// In this implementation, the declarations in <iosfwd> contain default -// template arguments. All of the other I/O headers include <iosfwd>. - -#ifndef _STLP_CHAR_TRAITS_H -# include <stl/char_traits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -class ios_base; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_ios; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_streambuf; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_istream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_ostream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_iostream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM( _Traits , char_traits<_CharT>), - _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > -class basic_stringbuf; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), - _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > -class basic_istringstream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), - _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > -class basic_ostringstream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), - _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > -class basic_stringstream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_filebuf; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_ifstream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_ofstream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class basic_fstream; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class istreambuf_iterator; - -template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > -class ostreambuf_iterator; - -typedef basic_ios<char, char_traits<char> > ios; - -#if !defined (_STLP_NO_WCHAR_T) -typedef basic_ios<wchar_t, char_traits<wchar_t> > wios; -#endif - -// Forward declaration of class locale, and of the most important facets. -class locale; -#if defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) -template <class _Facet> -struct _Use_facet { - const locale& __loc; - _Use_facet(const locale& __p_loc) : __loc(__p_loc) {} - inline const _Facet& operator *() const; -}; -# define use_facet *_Use_facet -#else -template <class _Facet> inline const _Facet& use_facet(const locale&); -#endif - -template <class _CharT> class ctype; -template <class _CharT> class ctype_byname; -template <class _CharT> class collate; -template <class _CharT> class collate_byname; - -_STLP_TEMPLATE_NULL class ctype<char>; -_STLP_TEMPLATE_NULL class ctype_byname<char>; -_STLP_TEMPLATE_NULL class collate<char>; -_STLP_TEMPLATE_NULL class collate_byname<char>; - -#if !defined (_STLP_NO_WCHAR_T) -_STLP_TEMPLATE_NULL class ctype<wchar_t>; -_STLP_TEMPLATE_NULL class ctype_byname<wchar_t>; -_STLP_TEMPLATE_NULL class collate<wchar_t>; -_STLP_TEMPLATE_NULL class collate_byname<wchar_t>; -#endif - -#if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 ) -// Typedefs for ordinary (narrow-character) streams. -//_STLP_TEMPLATE_NULL class basic_streambuf<char, char_traits<char> >; -#endif - -typedef basic_istream<char, char_traits<char> > istream; -typedef basic_ostream<char, char_traits<char> > ostream; -typedef basic_iostream<char, char_traits<char> > iostream; -typedef basic_streambuf<char,char_traits<char> > streambuf; - -typedef basic_stringbuf<char, char_traits<char>, allocator<char> > stringbuf; -typedef basic_istringstream<char, char_traits<char>, allocator<char> > istringstream; -typedef basic_ostringstream<char, char_traits<char>, allocator<char> > ostringstream; -typedef basic_stringstream<char, char_traits<char>, allocator<char> > stringstream; - -typedef basic_filebuf<char, char_traits<char> > filebuf; -typedef basic_ifstream<char, char_traits<char> > ifstream; -typedef basic_ofstream<char, char_traits<char> > ofstream; -typedef basic_fstream<char, char_traits<char> > fstream; - -#if !defined (_STLP_NO_WCHAR_T) -// Typedefs for wide-character streams. -typedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf; -typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream; -typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream; -typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream; - -typedef basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringbuf; -typedef basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wistringstream; -typedef basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wostringstream; -typedef basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringstream; - -typedef basic_filebuf<wchar_t, char_traits<wchar_t> > wfilebuf; -typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream; -typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream; -typedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream; -#endif - -_STLP_END_NAMESPACE - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_iostream_string.h b/WebKit/android/stlport/stl/_iostream_string.h deleted file mode 100644 index 87656a4..0000000 --- a/WebKit/android/stlport/stl/_iostream_string.h +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Copyright (c) 2004 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - /* - * This is an internal string for the STLport own iostream implementation. - * The only diference rely on the allocator used to instanciate the basic_string. - * Its goals is to improve performance limitating the number of dynamic allocation - * that could occur when requesting a big float ouput for instance. This allocator - * is not standard conformant as it has an internal state (the static buffer) - */ - - -#ifndef _STLP_INTERNAL_IOSTREAM_STRING_H -#define _STLP_INTERNAL_IOSTREAM_STRING_H - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif /* _STLP_INTERNAL_ALLOC_H */ - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif /* _STLP_INTERNAL_STRING_H */ - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _CharT> -class __iostring_allocator : public allocator<_CharT> { -public: - enum { _STR_SIZE = 256 }; - -private: - enum { _BUF_SIZE = _STR_SIZE + 1 }; - typedef allocator<_CharT> _Base; - _CharT _M_static_buf[_BUF_SIZE]; - -public: - typedef typename _Base::size_type size_type; - typedef typename _Base::pointer pointer; -#if defined (_STLP_MEMBER_TEMPLATE_CLASSES) - template <class _Tp1> struct rebind { -# if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1300) - typedef __iostring_allocator<_Tp1> other; -# else - typedef _STLP_PRIV __iostring_allocator<_Tp1> other; -# endif - }; -#endif - - _CharT* allocate(size_type __n, const void* __ptr = 0) { - if (__n > _BUF_SIZE) { - return _Base::allocate(__n, __ptr); - } - return _M_static_buf; - } - void deallocate(pointer __p, size_type __n) { - if (__p != _M_static_buf) _Base::deallocate(__p, __n); - } -}; - -#if defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) || !defined (_STLP_MEMBER_TEMPLATES) -/* - * As the __iostring_allocator allocator will only be used in the basic_string implementation - * we known that it is never going to be bound to another type that the one used to instantiate - * the basic_string. This is why the associated __stl_alloc_rebind has only one template - * parameter. - */ -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Tp> -inline _STLP_PRIV __iostring_allocator<_Tp>& _STLP_CALL -__stl_alloc_rebind(_STLP_PRIV __iostring_allocator<_Tp>& __a, const _Tp*) -{ return __a; } -template <class _Tp> -inline _STLP_PRIV __iostring_allocator<_Tp> _STLP_CALL -__stl_alloc_create(const _STLP_PRIV __iostring_allocator<_Tp>&, const _Tp*) -{ return _STLP_PRIV __iostring_allocator<_Tp>(); } - -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE */ - -#if !defined (_STLP_DEBUG) -template <class _CharT> -struct __basic_iostring : public basic_string<_CharT, char_traits<_CharT>, __iostring_allocator<_CharT> > { - /* - * A consequence of the non standard conformant allocator is that a string using it - * must always be presized to the allocator static buffer size because the basic_string implementation - * do not manage an allocator returning always the same memory adress as long as the - * requested memory block size is under a certain value. - */ - typedef __basic_iostring<_CharT> _Self; - typedef basic_string<_CharT, char_traits<_CharT>, __iostring_allocator<_CharT> > _Base; - typedef typename _Base::_Reserve_t _Reserve_t; - - __basic_iostring() : _Base(_Reserve_t(), __iostring_allocator<_CharT>::_STR_SIZE) - {} - - _Self& operator=(const _CharT* __s) { - _Base::operator=(__s); - return *this; - } -}; - -typedef __basic_iostring<char> __iostring; - -# if !defined (_STLP_NO_WCHAR_T) -typedef __basic_iostring<wchar_t> __iowstring; -# endif - -# define _STLP_BASIC_IOSTRING(_CharT) _STLP_PRIV __basic_iostring<_CharT> - -#else - -typedef string __iostring; -# if !defined (_STLP_NO_WCHAR_T) -typedef wstring __iowstring; -# endif - -# define _STLP_BASIC_IOSTRING(_CharT) basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > - -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_IOSTREAM_STRING_H */ diff --git a/WebKit/android/stlport/stl/_istream.c b/WebKit/android/stlport/stl/_istream.c deleted file mode 100644 index 292cab1..0000000 --- a/WebKit/android/stlport/stl/_istream.c +++ /dev/null @@ -1,1429 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_ISTREAM_C -#define _STLP_ISTREAM_C - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> -#endif - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_GET_H -# include <stl/_num_get.h> -#endif - -#if defined ( _STLP_NESTED_TYPE_PARAM_BUG ) -// no wchar_t is supported for this mode -# define __BIS_int_type__ int -# define __BIS_pos_type__ streampos -# define __BIS_off_type__ streamoff -#else -# define __BIS_int_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_istream<_CharT, _Traits>::int_type -# define __BIS_pos_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_istream<_CharT, _Traits>::pos_type -# define __BIS_off_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_istream<_CharT, _Traits>::off_type -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Function object structs used by some member functions. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Traits> -struct _Is_not_wspace { - typedef typename _Traits::char_type argument_type; - typedef bool result_type; - - const ctype<argument_type>* _M_ctype; - - _Is_not_wspace(const ctype<argument_type>* __c_type) : _M_ctype(__c_type) {} - bool operator()(argument_type __c) const - { return !_M_ctype->is(ctype_base::space, __c); } -}; - -template <class _Traits> -struct _Is_wspace_null { - typedef typename _Traits::char_type argument_type; - typedef bool result_type; - - const ctype<argument_type>* _M_ctype; - - _Is_wspace_null(const ctype<argument_type>* __c_type) : _M_ctype(__c_type) {} - bool operator()(argument_type __c) const { - return _Traits::eq(__c, argument_type()) || - _M_ctype->is(ctype_base::space, __c); - } -}; - -template <class _Traits> -struct _Scan_for_wspace { - typedef typename _Traits::char_type char_type; - typedef char_type* first_argument_type; - typedef char_type* second_argument_type; - typedef char_type* result_type; - - const ctype<char_type>* _M_ctype; - - _Scan_for_wspace(const ctype<char_type>* __ctype) : _M_ctype(__ctype) {} - const char_type* - operator()(const char_type* __first, const char_type* __last) const { - return _M_ctype->scan_is(ctype_base::space, __first, __last); - } -}; - -template <class _Traits> -struct _Scan_wspace_null { - typedef typename _Traits::char_type char_type; - typedef char_type* first_argument_type; - typedef char_type* second_argument_type; - typedef char_type* result_type; - - const ctype<char_type>* _M_ctype; - - _Scan_wspace_null(const ctype<char_type>* __c_type) : _M_ctype(__c_type) {} - const char_type* - operator()(const char_type* __first, const char_type* __last) const { - __last = find_if(__first, __last, - _Eq_char_bound<_Traits>(char_type())); - return _M_ctype->scan_is(ctype_base::space, __first, __last); - } -}; - -template <class _Traits> -struct _Scan_for_not_wspace { - typedef typename _Traits::char_type char_type; - typedef char_type* first_argument_type; - typedef char_type* second_argument_type; - typedef char_type* result_type; - - const ctype<char_type>* _M_ctype; - - _Scan_for_not_wspace(const ctype<char_type>* __c_type) : _M_ctype(__c_type) {} - const char_type* - operator()(const char_type* __first, const char_type* __last) const { - return _M_ctype->scan_not(ctype_base::space, __first, __last); - } -}; - -template <class _Traits> -struct _Scan_for_char_val { - typedef typename _Traits::char_type char_type; - typedef char_type* first_argument_type; - typedef char_type* second_argument_type; - typedef char_type* result_type; - - char_type _M_val; - - _Scan_for_char_val(char_type __val) : _M_val(__val) {} - - const char_type* - operator()(const char_type* __first, const char_type* __last) const { - return find_if(__first, __last, _Eq_char_bound<_Traits>(_M_val)); - } -}; - -template <class _Traits> -struct _Scan_for_int_val { - typedef typename _Traits::char_type char_type; - typedef typename _Traits::int_type int_type; - typedef char_type* first_argument_type; - typedef char_type* second_argument_type; - typedef char_type* result_type; - - int_type _M_val; - - _Scan_for_int_val(int_type __val) : _M_val(__val) {} - - const char_type* - operator()(const char_type* __first, const char_type* __last) const { - return find_if(__first, __last, - _Eq_int_bound<_Traits>(_M_val)); - } -}; - -// Helper function: try to push back a character to a streambuf, -// return true if the pushback succeeded. Does not throw. - -template <class _CharT, class _Traits> -bool _STLP_CALL -__pushback(basic_streambuf<_CharT, _Traits>* __buf, _CharT __c) { - bool ret; - _STLP_TRY { - const typename _Traits::int_type __eof = _Traits::eof(); - ret = !_Traits::eq_int_type(__buf->sputbackc(__c), __eof); - } - _STLP_CATCH_ALL { - ret = false; - } - return ret; -} - -//---------------------------------------------------------------------- -// Definitions of basic_istream<>'s noninline member functions. - -// Helper function for formatted input of numbers. -template <class _CharT, class _Traits, class _Number> -ios_base::iostate _STLP_CALL -__get_num(basic_istream<_CharT, _Traits>& __that, _Number& __val) { - typedef typename basic_istream<_CharT, _Traits>::sentry _Sentry; - ios_base::iostate __err = 0; - _Sentry __sentry( __that ); // Skip whitespace. - if (__sentry) { - typedef num_get<_CharT, istreambuf_iterator<_CharT, _Traits> > _Num_get; - _STLP_TRY { - ((const _Num_get&)use_facet<_Num_get>(__that.getloc())).get(istreambuf_iterator<_CharT, _Traits>(__that.rdbuf()), - 0, __that, __err, __val); - } - _STLP_CATCH_ALL { - __that._M_handle_exception(ios_base::badbit); - } - if (__err) __that.setstate(__err); - } - return __err; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (short& __val) { - long __lval; - _STLP_PRIV __get_num(*this, __lval); - if ( this->fail() ) { - return *this; - } - short __tmp = __STATIC_CAST(short, __lval); - unsigned short __uval = __STATIC_CAST(unsigned short, __lval); - // check if we lose digits - // if ((__val != __lval) && ((unsigned short)__val != __lval)) - if ((__tmp != __lval) && ((long)__uval != __lval)) - this->setstate(ios_base::failbit); - else - __val = __tmp; - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (int& __val) { - long __lval; - _STLP_PRIV __get_num(*this, __lval); - if ( this->fail() ) { - return *this; - } - int __tmp = __lval; - unsigned int __uval = __lval; - // check if we lose digits - // if ((__val != __lval) && ((unsigned int)__val != __lval)) - if ((__tmp != __lval) && ((long)__uval != __lval)) - this->setstate(ios_base::failbit); - else - __val = __tmp; - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (unsigned short& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (unsigned int& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (long& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (unsigned long& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} - -#if defined (_STLP_LONG_LONG) -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (_STLP_LONG_LONG& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (unsigned _STLP_LONG_LONG& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} -#endif -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (float& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (double& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} -#if !defined (_STLP_NO_LONG_DOUBLE) -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (long double& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} -#endif -#if !defined (_STLP_NO_BOOL) -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (bool& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} -#endif - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::operator>> (void*& __val) { - _STLP_PRIV __get_num(*this, __val); - return *this; -} - -// Unformatted input - -template <class _CharT, class _Traits> -__BIS_int_type__ -basic_istream<_CharT, _Traits>::peek() { - typename _Traits::int_type __tmp = _Traits::eof(); - - this->_M_gcount = 0; - sentry __sentry(*this, _No_Skip_WS()); - - if (__sentry) { - _STLP_TRY { - __tmp = this->rdbuf()->sgetc(); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - if (this->_S_eof(__tmp)) - this->setstate(ios_base::eofbit); - } - - return __tmp; -} - - -template <class _CharT, class _Traits> -__BIS_int_type__ -basic_istream<_CharT, _Traits>::get() { - typename _Traits::int_type __tmp = _Traits::eof(); - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - _STLP_TRY { - __tmp = this->rdbuf()->sbumpc(); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - - if (!this->_S_eof(__tmp)) - this->_M_gcount = 1; - } - - if (_M_gcount == 0) - this->setstate(ios_base::eofbit | ios_base::failbit); - - return __tmp; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(_CharT& __c) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - typename _Traits::int_type __tmp = _Traits::eof(); - _STLP_TRY { - __tmp = this->rdbuf()->sbumpc(); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - - if (!this->_S_eof(__tmp)) { - this->_M_gcount = 1; - __c = _Traits::to_char_type(__tmp); - } - } - - if (this->_M_gcount == 0) - this->setstate(ios_base::eofbit | ios_base::failbit); - - return *this; -} - - -// Read characters and discard them. The standard specifies a single -// function with two arguments, each with a default. We instead use -// three overloded functions, because it's possible to implement the -// first two more efficiently than the fully general third version. -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::ignore() { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - int_type __c; - _STLP_TRY { - __c = this->rdbuf()->sbumpc(); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - return *this; - } - - if (!this->_S_eof(__c)) - this->_M_gcount = 1; - else - this->setstate(ios_base::eofbit); - } - - return *this; -} - -// Putback - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::putback(_CharT __c) { - this->_M_gcount = 0; - sentry __sentry(*this, _No_Skip_WS()); - - if (__sentry) { - typename _Traits::int_type __tmp = _Traits::eof(); - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); -// if (!__buf || this->_S_eof(__buf->sputbackc(__c))) - if (__buf) { - _STLP_TRY { - __tmp = __buf->sputbackc(__c); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - } - if (this->_S_eof(__tmp)) - this->setstate(ios_base::badbit); - } - else - this->setstate(ios_base::failbit); - - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& basic_istream<_CharT, _Traits>::unget() { - this->_M_gcount = 0; - - sentry __sentry(*this, _No_Skip_WS()); - - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - // if (!__buf || _Traits::eq_int_type(__buf->sungetc(), _Traits::eof())) - if (__buf) { - _STLP_TRY { - if (this->_S_eof(__buf->sungetc())) - this->setstate(ios_base::badbit); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - } else - this->setstate(ios_base::badbit); - } - else - this->setstate(ios_base::failbit); - - return *this; -} - -// Positioning and buffer control. - -template <class _CharT, class _Traits> -int basic_istream<_CharT, _Traits>::sync() { - sentry __sentry(*this, _No_Skip_WS()); - - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - if (__buf) { - if (__buf->pubsync() == -1) { - this->setstate(ios_base::badbit); - return -1; - } - else - return 0; - } - else - return -1; -} - -template <class _CharT, class _Traits> -__BIS_pos_type__ -basic_istream<_CharT, _Traits>::tellg() { - sentry __sentry(*this, _No_Skip_WS()); - - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - return (__buf && !this->fail()) ? __buf->pubseekoff(0, ios_base::cur, ios_base::in) - : pos_type(-1); -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::seekg(pos_type __pos) { - sentry __sentry(*this, _No_Skip_WS()); - - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - if (!this->fail() && __buf) { - if (__buf->pubseekpos(__pos) == pos_type(-1)) { - this->setstate(ios_base::failbit); - } - } - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::seekg(off_type __off, ios_base::seekdir __dir) { - sentry __sentry(*this, _No_Skip_WS()); - - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - if (!this->fail() && __buf) - __buf->pubseekoff(__off, __dir); - return *this; -} - -// Formatted input of characters and character arrays. - -template <class _CharT, class _Traits> -void basic_istream<_CharT, _Traits>::_M_formatted_get(_CharT& __c) { -// typename _Traits::int_type __tmp = _Traits::eof(); - - sentry __sentry(*this); // Skip whitespace. - - if (__sentry) { - typename _Traits::int_type __tmp;// = _Traits::eof(); - - _STLP_TRY { - __tmp = this->rdbuf()->sbumpc(); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - return; - } - - if (!this->_S_eof(__tmp)) - __c = _Traits::to_char_type(__tmp); - else - this->setstate(ios_base::eofbit | ios_base::failbit); - } -} - - -//--------------------------------------------------------------------------- -// istream's helper functions. - -// A generic function for unbuffered input. We stop when we reach EOF, -// or when we have extracted _Num characters, or when the function object -// __is_delim return true. In the last case, it extracts the character -// for which __is_delim is true, if and only if __extract_delim is true. -// It appends a null character to the end of the string; this means that -// it may store up to _Num + 1 characters. -// -// __is_getline governs two corner cases: reading _Num characters without -// encountering delim or eof (in which case failbit is set if __is_getline -// is true); and reading _Num characters where the _Num+1'st character is -// eof (in which case eofbit is set if __is_getline is true). -// -// It is assumed that __is_delim never throws. -// -// Return value is the number of characters extracted, including the -// delimiter if it is extracted. Note that the number of characaters -// extracted isn't necessarily the same as the number stored. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template < class _CharT, class _Traits, class _Is_Delim> -streamsize _STLP_CALL -__read_unbuffered(basic_istream<_CharT, _Traits>* __that, basic_streambuf<_CharT, _Traits>* __buf, - streamsize _Num, _CharT* __s, - _Is_Delim __is_delim, - bool __extract_delim, bool __append_null, - bool __is_getline) { - streamsize __n = 0; - ios_base::iostate __status = 0; - - typedef typename basic_istream<_CharT, _Traits>::int_type int_type; - // The operations that can potentially throw are sbumpc, snextc, and sgetc. - _STLP_TRY { - for (;;) { - int_type __c = __buf->sbumpc(); // sschwarz - - if (__that->_S_eof(__c)) { - if (__n < _Num || __is_getline) - __status |= ios_base::eofbit; - break; - } - else if (__is_delim(_Traits::to_char_type(__c))) { - if (__extract_delim) { // Extract and discard current character. - ++__n; - } else if ( !__pushback(__buf, _Traits::to_char_type(__c)) ) { // leave delimiter - __status |= ios_base::failbit; - } - break; - } - else { // regular character - *__s++ = _Traits::to_char_type(__c); - ++__n; - } - - if (__n == _Num) { - if (__is_getline) // didn't find delimiter as one of the _Num chars - __status |= ios_base::failbit; - break; - } - } - } - _STLP_CATCH_ALL { - __that->_M_handle_exception(ios_base::badbit); - *__s = _STLP_DEFAULT_CONSTRUCTED(_CharT); - return __n; - } - - if (__append_null) - *__s = _STLP_DEFAULT_CONSTRUCTED(_CharT); - if (__status) - __that->setstate(__status); // This might throw. - return __n; -} - -// Much like __read_unbuffered, but with one additional function object: -// __scan_delim(first, last) returns the first pointer p in [first, last) -// such that __is_delim(p) is true. - -template < class _CharT, class _Traits, class _Is_Delim, class _Scan_Delim> -streamsize _STLP_CALL -__read_buffered(basic_istream<_CharT, _Traits>* __that, basic_streambuf<_CharT, _Traits>* __buf, - streamsize _Num, _CharT* __s, - _Is_Delim __is_delim, _Scan_Delim __scan_delim, - bool __extract_delim, bool __append_null, - bool __is_getline) { - streamsize __n = 0; - ios_base::iostate __status = 0; - bool __done = false; - - _STLP_TRY { - while (__buf->_M_egptr() != __buf->_M_gptr() && !__done) { - const _CharT* __first = __buf->_M_gptr(); - const _CharT* __last = __buf->_M_egptr(); - //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation - //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)); - - const _CharT* __p = __scan_delim(__first, __last); - ptrdiff_t __chunk = (min) (ptrdiff_t(__p - __first), __request); - _Traits::copy(__s, __first, __chunk); - __s += __chunk; - __n += __chunk; - __buf->_M_gbump((int)__chunk); - - // We terminated by finding delim. - if (__p != __last && __p - __first <= __request) { - if (__extract_delim) { - __n += 1; - __buf->_M_gbump(1); - } - __done = true; - } - - // We terminated by reading all the characters we were asked for. - else if (__n == _Num) { - - // Find out if we have reached eof. This matters for getline. - if (__is_getline) { - if (__chunk == __last - __first) { - if (__that->_S_eof(__buf->sgetc())) - __status |= ios_base::eofbit; - } - else - __status |= ios_base::failbit; - } - __done = true; - } - - // The buffer contained fewer than _Num - __n characters. Either we're - // at eof, or we should refill the buffer and try again. - else { - if (__that->_S_eof(__buf->sgetc())) { - __status |= ios_base::eofbit; - __done = true; - } - } - } // Close the while loop. - } - _STLP_CATCH_ALL { - __that->_M_handle_exception(ios_base::badbit); - __done = true; - } - - if (__done) { - if (__append_null) - *__s = _STLP_DEFAULT_CONSTRUCTED(_CharT); - if (__status != 0) - __that->setstate(__status); // This might throw. - return __n; - } - - // If execution has reached this point, then we have an empty buffer but - // we have not reached eof. What that means is that the streambuf has - // decided to switch from buffered to unbuffered input. We switch to - // to __read_unbuffered. - - return __n + __read_unbuffered(__that, __buf, _Num - __n, __s, __is_delim, - __extract_delim,__append_null,__is_getline); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::get(_CharT* __s, streamsize __n, - _CharT __delim) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - if (__n > 0) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - - if (__buf->egptr() != __buf->gptr()) - this->_M_gcount = - _STLP_PRIV __read_buffered(this, __buf, __n - 1, __s, - _STLP_PRIV _Eq_char_bound<_Traits>(__delim), - _STLP_PRIV _Scan_for_char_val<_Traits>(__delim), - false, true, false); - else - this->_M_gcount = - _STLP_PRIV __read_unbuffered(this, __buf, __n - 1, __s, - _STLP_PRIV _Eq_char_bound<_Traits>(__delim), - false, true, false); - } - } - - if (this->_M_gcount == 0) - this->setstate(ios_base::failbit); - - return *this; -} - -// Getline is essentially identical to get, except that it extracts -// the delimiter. -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::getline(_CharT* __s, streamsize __n, - _CharT __delim) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - if (__n > 0) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - this->_M_gcount = __buf->egptr() != __buf->gptr() - ? _STLP_PRIV __read_buffered(this, __buf, __n - 1, __s, - _STLP_PRIV _Eq_char_bound<_Traits>(__delim), - _STLP_PRIV _Scan_for_char_val<_Traits>(__delim), - true, true, true) - : _STLP_PRIV __read_unbuffered(this, __buf, __n - 1, __s, - _STLP_PRIV _Eq_char_bound<_Traits>(__delim), - true, true, true); - } - } - - if (this->_M_gcount == 0) - this->setstate(ios_base::failbit); - - return *this; -} - -// Read n characters. We don't look for any delimiter, and we don't -// put in a terminating null character. -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::read(char_type* __s, streamsize __n) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry && !this->eof()) { - basic_streambuf<_CharT, _Traits>*__buf = this->rdbuf(); - if (__buf->gptr() != __buf->egptr()) - _M_gcount - = _STLP_PRIV __read_buffered(this, __buf, __n, __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, __n, __s, - _STLP_PRIV _Constant_unary_fun<bool, int_type>(false), - false, false, false); - } - else - this->setstate(ios_base::failbit); - - if (this->eof()) - this->setstate(ios_base::eofbit | ios_base::failbit); - - return *this; -} - - -// Read n or fewer characters. We don't look for any delimiter, and -// we don't put in a terminating null character. -template <class _CharT, class _Traits> -streamsize -basic_istream<_CharT, _Traits>::readsome(char_type* __s, streamsize __nmax) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry && !this->eof() && __nmax >= 0) { - - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - streamsize __avail = __buf->in_avail(); - - // fbp : isn't full-blown setstate required here ? - if (__avail == -1) - this->_M_setstate_nothrow(ios_base::eofbit); - - else if (__avail != 0) { - - if (__buf->gptr() != __buf->egptr()) - _M_gcount - = _STLP_PRIV __read_buffered(this, __buf, (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 _Constant_unary_fun<bool, int_type>(false), - false, false, false); - } - } - else { - // fbp : changed so that failbit is set only there, to pass Dietmar's test - if (this->eof()) - this->setstate(ios_base::eofbit | ios_base::failbit); - else - this->setstate(ios_base::failbit); - } - - // if (this->eof()) - // this->setstate(ios_base::eofbit | ios_base::failbit); - - return _M_gcount; -} - -template <class _CharT, class _Traits> -void basic_istream<_CharT, _Traits>::_M_formatted_get(_CharT* __s) { - sentry __sentry(*this); // Skip whitespace. - - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - streamsize __nmax = this->width() > 0 - ? this->width() - 1 - : ((numeric_limits<streamsize>::max)() / sizeof(_CharT)) - 1; - - streamsize __n = __buf->gptr() != __buf->egptr() - ? _STLP_PRIV __read_buffered(this, __buf, __nmax, __s, - _STLP_PRIV _Is_wspace_null<_Traits>(__STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())), - _STLP_PRIV _Scan_wspace_null<_Traits>(__STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())), - false, true, false) - : _STLP_PRIV __read_unbuffered(this, __buf, __nmax, __s, - _STLP_PRIV _Is_wspace_null<_Traits>(__STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())), - false, true, false); - if (__n == 0) - this->setstate(ios_base::failbit); - } - this->width(0); -} - -// A generic unbuffered function for ignoring characters. We stop -// when we reach EOF, or when the function object __is_delim returns -// true. In the last case, it extracts the character for which -// __is_delim is true, if and only if __extract_delim is true. - -template < class _CharT, class _Traits, class _Is_Delim> -void _STLP_CALL -_M_ignore_unbuffered(basic_istream<_CharT, _Traits>* __that, - basic_streambuf<_CharT, _Traits>* __buf, - _Is_Delim __is_delim, - bool __extract_delim, bool __set_failbit) { - bool __done = false; - ios_base::iostate __status = 0; - typedef typename basic_istream<_CharT, _Traits>::int_type int_type; - - _STLP_TRY { - while (!__done) { - int_type __c = __buf->sbumpc(); - - if (__that->_S_eof(__c)) { - __done = true; - __status |= __set_failbit ? ios_base::eofbit | ios_base::failbit - : ios_base::eofbit; - } - - else if (__is_delim(_Traits::to_char_type(__c))) { - __done = true; - if (!__extract_delim) - if (__that->_S_eof(__buf->sputbackc(_Traits::to_char_type(__c)))) - __status |= ios_base::failbit; - } - } - } - _STLP_CATCH_ALL { - __that->_M_handle_exception(ios_base::badbit); - } - - __that->setstate(__status); -} - -// A generic buffered function for ignoring characters. Much like -// _M_ignore_unbuffered, but with one additional function object: -// __scan_delim(first, last) returns the first pointer p in [first, -// last) such that __is_delim(p) is true. - -template < class _CharT, class _Traits, class _Is_Delim, class _Scan_Delim> -void _STLP_CALL -_M_ignore_buffered(basic_istream<_CharT, _Traits>* __that, - basic_streambuf<_CharT, _Traits>* __buf, - _Is_Delim __is_delim, _Scan_Delim __scan_delim, - bool __extract_delim, bool __set_failbit) { - bool __at_eof = false; - bool __found_delim = false; - - _STLP_TRY { - while (__buf->_M_egptr() != __buf->_M_gptr() && !__at_eof && !__found_delim) { - const _CharT* __p = __scan_delim(__buf->_M_gptr(), __buf->_M_egptr()); - __buf->_M_gbump((int)(__p - __buf->_M_gptr())); - - if (__p != __buf->_M_egptr()) { // We found delim, so we're done. - if (__extract_delim) - __buf->_M_gbump(1); - __found_delim = true; - } - - else // No delim. Try to refil the buffer. - __at_eof = __that->_S_eof(__buf->sgetc()); - } // Close the while loop. - } - _STLP_CATCH_ALL { - __that->_M_handle_exception(ios_base::badbit); - return; - } - - if (__at_eof) { - __that->setstate(__set_failbit ? ios_base::eofbit | ios_base::failbit - : ios_base::eofbit); - return; - } - if (__found_delim) - return; - - // If execution has reached this point, then we have an empty buffer but - // we have not reached eof. What that means is that the streambuf has - // decided to switch from a buffered to an unbuffered mode. We switch - // to _M_ignore_unbuffered. - _M_ignore_unbuffered(__that, __buf, __is_delim, __extract_delim, __set_failbit); -} - -// Overloaded versions of _M_ignore_unbuffered and _M_ignore_unbuffered -// with an explicit count _Num. Return value is the number of -// characters extracted. -// -// The function object __max_chars takes two arguments, _Num and __n -// (the latter being the number of characters we have already read), -// and returns the maximum number of characters to read from the buffer. -// We parameterize _M_ignore_buffered so that we can use it for both -// bounded and unbounded input; for the former the function object should -// be minus<>, and for the latter it should return a constant maximum value. - -template < class _CharT, class _Traits, class _Max_Chars, class _Is_Delim> -streamsize _STLP_CALL -_M_ignore_unbuffered(basic_istream<_CharT, _Traits>* __that, - basic_streambuf<_CharT, _Traits>* __buf, - streamsize _Num, _Max_Chars __max_chars, - _Is_Delim __is_delim, - bool __extract_delim, bool __set_failbit) { - streamsize __n = 0; - ios_base::iostate __status = 0; - typedef typename basic_istream<_CharT, _Traits>::int_type int_type; - - _STLP_TRY { - while (__max_chars(_Num, __n) > 0) { - int_type __c = __buf->sbumpc(); - - if (__that->_S_eof(__c)) { - __status |= __set_failbit ? ios_base::eofbit | ios_base::failbit - : ios_base::eofbit; - break; - } - - else if (__is_delim(_Traits::to_char_type(__c))) { - if (__extract_delim) - ++__n; - else if (__that->_S_eof(__buf->sputbackc(_Traits::to_char_type(__c)))) - __status |= ios_base::failbit; - - break; - } - // fbp : added counter increment to pass Dietmar's test - ++__n; - } - } - _STLP_CATCH_ALL { - __that->_M_handle_exception(ios_base::badbit); - } - - if (__status) - __that->setstate(__status); // This might throw. - return __n; -} - -template < class _CharT, class _Traits, class _Max_Chars, class _Is_Delim, class _Scan_Delim> -streamsize _STLP_CALL -_M_ignore_buffered(basic_istream<_CharT, _Traits>* __that, - basic_streambuf<_CharT, _Traits>* __buf, - streamsize _Num, - _Max_Chars __max_chars, - _Is_Delim __is_delim, _Scan_Delim __scan_delim, - bool __extract_delim, bool __set_failbit) { - streamsize __n = 0; - bool __at_eof = false; - bool __done = false; - - _STLP_TRY { - while (__buf->_M_egptr() != __buf->_M_gptr() && !__done) { - ptrdiff_t __avail = __buf->_M_egptr() - __buf->_M_gptr(); - streamsize __m = __max_chars(_Num, __n); - - if (__avail >= __m) { // We have more characters than we need. - const _CharT* __last = __buf->_M_gptr() + __STATIC_CAST(ptrdiff_t, __m); - const _CharT* __p = __scan_delim(__buf->_M_gptr(), __last); - ptrdiff_t __chunk = __p - __buf->_M_gptr(); - __n += __chunk; - __buf->_M_gbump((int)__chunk); - - if (__extract_delim && __p != __last) { - __n += 1; - __buf->_M_gbump(1); - } - - __done = true; - } - - else { - const _CharT* __p = __scan_delim(__buf->_M_gptr(), __buf->_M_egptr()); - ptrdiff_t __chunk = __p - __buf->_M_gptr(); - __n += __chunk; - __buf->_M_gbump((int)__chunk); - - if (__p != __buf->_M_egptr()) { // We found delim. - if (__extract_delim) { - __n += 1; - __buf->_M_gbump(1); - } - - __done = true; - } - - // We didn't find delim. Try to refill the buffer. - else if (__that->_S_eof(__buf->sgetc())) { - __done = true; - __at_eof = true; - } - } - } // Close the while loop. - } - _STLP_CATCH_ALL { - __that->_M_handle_exception(ios_base::badbit); - return __n; - } - - if (__at_eof) - __that->setstate(__set_failbit ? ios_base::eofbit | ios_base::failbit - : ios_base::eofbit); - - if (__done) - return __n; - - // If execution has reached this point, then we have an empty buffer but - // we have not reached eof. What that means is that the streambuf has - // decided to switch from buffered to unbuffered input. We switch to - // to _M_ignore_unbuffered. - - return __n + _M_ignore_unbuffered(__that, __buf, _Num, __max_chars, - __is_delim, __extract_delim, __set_failbit); -} - - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::ignore(streamsize __n) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - typedef _STLP_PRIV _Constant_unary_fun<bool, int_type> _Const_bool; - typedef _STLP_PRIV _Constant_binary_fun<streamsize, streamsize, streamsize> _Const_streamsize; - const streamsize __maxss = (numeric_limits<streamsize>::max)(); - - if (__n == (numeric_limits<int>::max)()) { - if (__buf->gptr() != __buf->egptr()) - _M_gcount = _M_ignore_buffered(this, __buf, - __maxss, _Const_streamsize(__maxss), - _Const_bool(false), - _STLP_PRIV _Project2nd<const _CharT*, const _CharT*>(), - false, false); - else - _M_gcount = _M_ignore_unbuffered(this, __buf, - __maxss, _Const_streamsize(__maxss), - _Const_bool(false), false, false); - } - else { - if (__buf->gptr() != __buf->egptr()) - _M_gcount = _M_ignore_buffered(this, __buf, - __n, minus<streamsize>(), - _Const_bool(false), - _STLP_PRIV _Project2nd<const _CharT*, const _CharT*>(), - false, false); - else - _M_gcount = _M_ignore_unbuffered(this, __buf, __n, minus<streamsize>(), - _Const_bool(false), false, false); - } - } - - return *this; -} - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits>::ignore(streamsize __n, int_type __delim) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - typedef _STLP_PRIV _Constant_unary_fun<bool, int_type> _Const_bool; - typedef _STLP_PRIV _Constant_binary_fun<streamsize, streamsize, streamsize> - _Const_streamsize; - const streamsize __maxss = (numeric_limits<streamsize>::max)(); - - if (__n == (numeric_limits<int>::max)()) { - if (__buf->gptr() != __buf->egptr()) - _M_gcount = _M_ignore_buffered(this, __buf, - __maxss, _Const_streamsize(__maxss), - _STLP_PRIV _Eq_int_bound<_Traits>(__delim), - _STLP_PRIV _Scan_for_int_val<_Traits>(__delim), - true, false); - else - _M_gcount = _M_ignore_unbuffered(this, __buf, - __maxss, _Const_streamsize(__maxss), - _STLP_PRIV _Eq_int_bound<_Traits>(__delim), - true, false); - } - else { - if (__buf->gptr() != __buf->egptr()) - _M_gcount = _M_ignore_buffered(this, __buf, - __n, minus<streamsize>(), - _STLP_PRIV _Eq_int_bound<_Traits>(__delim), - _STLP_PRIV _Scan_for_int_val<_Traits>(__delim), - true, false); - else - _M_gcount = _M_ignore_unbuffered(this, __buf, __n, minus<streamsize>(), - _STLP_PRIV _Eq_int_bound<_Traits>(__delim), - true, false); - } - } - - return *this; -} - -// This member function does not construct a sentry object, because -// it is called from sentry's constructor. -template <class _CharT, class _Traits> -void basic_istream<_CharT, _Traits>::_M_skip_whitespace(bool __set_failbit) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - if (!__buf) - this->setstate(ios_base::badbit); - else if (__buf->gptr() != __buf->egptr()) - _M_ignore_buffered(this, __buf, - _STLP_PRIV _Is_not_wspace<_Traits>(__STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())), - _STLP_PRIV _Scan_for_not_wspace<_Traits>(__STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())), - false, __set_failbit); - else - _M_ignore_unbuffered(this, __buf, - _STLP_PRIV _Is_not_wspace<_Traits>(__STATIC_CAST(const ctype<_CharT>*, this->_M_ctype_facet())), - false, __set_failbit); -} - - -// This is a very simple loop that reads characters from __src and puts -// them into __dest. It looks complicated because of the (standard- -// mandated) exception handling policy. -// -// We stop when we get an exception, when we fail to insert into the -// output streambuf, or when __is_delim is true. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template < class _CharT, class _Traits, class _Is_Delim> -streamsize _STLP_CALL -__copy_unbuffered(basic_istream<_CharT, _Traits>* __that, basic_streambuf<_CharT, _Traits>* __src, - basic_streambuf<_CharT, _Traits>* __dest, - _Is_Delim __is_delim, - bool __extract_delim, bool __rethrow) { - streamsize __extracted = 0; - ios_base::iostate __status = 0; - typedef typename basic_istream<_CharT, _Traits>::int_type int_type; - int_type __c; - - _STLP_TRY { - for (;;) { - // Get a character. If there's an exception, catch and (maybe) rethrow it. - __c = __src->sbumpc(); - - // If we failed to get a character, then quit. - if (__that->_S_eof(__c)) { - __status |= ios_base::eofbit; - break; - } - // If it's the delimiter, then quit. - else if (__is_delim(_Traits::to_char_type(__c))) { - if (!__extract_delim && !__pushback(__src, _Traits::to_char_type(__c))) - __status |= ios_base::failbit; - break; - } - else { - // Try to put the character in the output streambuf. - bool __failed = false; - _STLP_TRY { - if (!__that->_S_eof(__dest->sputc(_Traits::to_char_type(__c)))) - ++__extracted; - else - __failed = true; - } - _STLP_CATCH_ALL { - __failed = true; - } - - // If we failed to put the character in the output streambuf, then - // try to push it back to the input streambuf. - if (__failed && !__pushback(__src, _Traits::to_char_type(__c))) - __status |= ios_base::failbit; - - // fbp : avoiding infinite loop in io-27-6-1-2-3.exp - if (__failed) - break; - } - - } /* for (;;) */ - - } - // fbp : this try/catch moved here in reasonable assumption - // __is_delim never throw (__pushback is guaranteed not to) - _STLP_CATCH_ALL { - // See 27.6.1.2.3, paragraph 13. - if (__rethrow && __extracted == 0) - __that->_M_handle_exception(ios_base::failbit); - } - __that->setstate(__status); - return __extracted; -} - -// Buffered copying from one streambuf to another. We copy the characters -// in chunks, rather than one at a time. We still have to worry about all -// of the error conditions we checked in __copy_unbuffered, plus one more: -// the streambuf might decide to switch from a buffered to an unbuffered mode. - -template < class _CharT, class _Traits, class _Is_Delim, class _Scan_Delim> -streamsize _STLP_CALL -__copy_buffered(basic_istream<_CharT, _Traits>* __that, basic_streambuf<_CharT, _Traits>* __src, - basic_streambuf<_CharT, _Traits>* __dest, - _Scan_Delim __scan_delim, _Is_Delim __is_delim, - bool __extract_delim, bool __rethrow) { - streamsize __extracted = 0; - ios_base::iostate __status = 0; - typedef typename basic_istream<_CharT, _Traits>::int_type int_type; - //Borland compiler generates a warning if assignment because value is never used: - int_type __c /*= _Traits::eof()*/; - _CharT* __first = __src->_M_gptr(); - ptrdiff_t __avail = __src->_M_egptr() - __first; - // fbp : introduced to move catch/try blocks out of the loop - bool __do_handle_exceptions = false; - - _STLP_TRY { - for (;;) { - const _CharT* __last = __scan_delim(__first, __src->_M_egptr()); - - // Try to copy the entire input buffer to the output buffer. - streamsize __n = __dest->sputn(__first, __extract_delim && __last != __src->_M_egptr() - ? (__last - __first) + 1 - : (__last - __first)); - __src->_M_gbump((int)__n); - __extracted += __n; - - // from this on, catch() will call _M_handle_exceptions() - __do_handle_exceptions = true; - - if (__n < __avail) // We found the delimiter, or else failed to - break; // copy some characters. - - __c = __src->sgetc(); - - // Three possibilities: we succeeded in refilling the buffer, or - // we got EOF, or the streambuf has switched to unbuffered mode. - __first = __src->_M_gptr(); - __avail = __src->_M_egptr() - __first; - - if (__avail > 0) - {} // dwa 1/16/00 -- suppress a Metrowerks warning - else if (__that->_S_eof(__c)) { - __status |= ios_base::eofbit; - break; - } - else { - return __extracted + __copy_unbuffered(__that, __src, __dest, __is_delim, - __extract_delim, __rethrow); - } - - __do_handle_exceptions = false; - } - } - - _STLP_CATCH_ALL { - // See 27.6.1.2.3, paragraph 13. - if (__rethrow && __do_handle_exceptions && __extracted == 0) - __that->_M_handle_exception(ios_base::failbit); - } - - if (__status) - __that->setstate(__status); // This might throw. - return __extracted; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits> - ::get(basic_streambuf<_CharT, _Traits>& __dest, _CharT __delim) { - sentry __sentry(*this, _No_Skip_WS()); - this->_M_gcount = 0; - - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __src = this->rdbuf(); - - if (__src) - this->_M_gcount = __src->egptr() != __src->gptr() - ? _STLP_PRIV __copy_buffered(this, __src, &__dest, - _STLP_PRIV _Scan_for_char_val<_Traits>(__delim), - _STLP_PRIV _Eq_char_bound<_Traits>(__delim), - false, false) - : _STLP_PRIV __copy_unbuffered(this, __src, &__dest, - _STLP_PRIV _Eq_char_bound<_Traits>(__delim), - false, false); - } - - if (this->_M_gcount == 0) - this->setstate(ios_base::failbit); - - return *this; -} - -// Copying characters into a streambuf. -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& -basic_istream<_CharT, _Traits> - ::operator>>(basic_streambuf<_CharT, _Traits>* __dest) { - streamsize __n = 0; - typedef typename basic_istream<_CharT, _Traits>::sentry _Sentry; - _Sentry __sentry(*this); - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __src = this->rdbuf(); - if (__src && __dest) - __n = __src->egptr() != __src->gptr() - ? _STLP_PRIV __copy_buffered(this, __src, __dest, - _STLP_PRIV _Project2nd<const _CharT*, const _CharT*>(), - _STLP_PRIV _Constant_unary_fun<bool, int_type>(false), - false, true) - : _STLP_PRIV __copy_unbuffered(this, __src, __dest, - _STLP_PRIV _Constant_unary_fun<bool, int_type>(false), - false, true); - } - - if (__n == 0) - this->setstate(ios_base::failbit); - - return *this; -} - -// ---------------------------------------------------------------- -// basic_iostream<> class -// ---------------------------------------------------------------- - -template <class _CharT, class _Traits> -basic_iostream<_CharT, _Traits> - ::basic_iostream(basic_streambuf<_CharT, _Traits>* __buf) - : basic_ios<_CharT, _Traits>(), - basic_istream<_CharT, _Traits>(__buf), - basic_ostream<_CharT, _Traits>(__buf) { - this->init(__buf); -} - -template <class _CharT, class _Traits> -basic_iostream<_CharT, _Traits>::~basic_iostream() -{} - -_STLP_END_NAMESPACE - -#undef __BIS_int_type__ -#undef __BIS_pos_type__ -#undef __BIS_off_type__ - -#endif /* _STLP_ISTREAM_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_istream.h b/WebKit/android/stlport/stl/_istream.h deleted file mode 100644 index 9292cce..0000000 --- a/WebKit/android/stlport/stl/_istream.h +++ /dev/null @@ -1,362 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_INTERNAL_ISTREAM -#define _STLP_INTERNAL_ISTREAM - -// this block is included by _ostream.h, we include it here to lower #include level -#if defined (_STLP_HAS_WCHAR_T) && !defined (_STLP_INTERNAL_CWCHAR) -# include <stl/_cwchar.h> -#endif - -#ifndef _STLP_INTERNAL_IOS_H -# include <stl/_ios.h> // For basic_ios<>. Includes <iosfwd>. -#endif - -#ifndef _STLP_INTERNAL_OSTREAM_H -# include <stl/_ostream.h> // Needed as a base class of basic_iostream. -#endif - -#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H -# include <stl/_istreambuf_iterator.h> -#endif - -#include <stl/_ctraits_fns.h> // Helper functions that allow char traits - // to be used as function objects. -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -template <class _CharT, class _Traits> -class _Isentry; -#endif - -struct _No_Skip_WS {}; // Dummy class used by sentry. - -template <class _CharT, class _Traits> -bool _M_init_skip(basic_istream<_CharT, _Traits>& __istr); -template <class _CharT, class _Traits> -bool _M_init_noskip(basic_istream<_CharT, _Traits>& __istr); - -//---------------------------------------------------------------------- -// Class basic_istream, a class that performs formatted input through -// a stream buffer. - -// The second template parameter, _Traits, defaults to char_traits<_CharT>. -// The default is declared in header <iosfwd>, and it isn't declared here -// because C++ language rules do not allow it to be declared twice. - -template <class _CharT, class _Traits> -class basic_istream : virtual public basic_ios<_CharT, _Traits> { - typedef basic_istream<_CharT, _Traits> _Self; - -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1300 && _STLP_MSVC <= 1310) - //explicitely defined as private to avoid warnings: - basic_istream(_Self const&); - _Self& operator = (_Self const&); -#endif - -public: - // Types - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - typedef basic_ios<_CharT, _Traits> _Basic_ios; - - typedef basic_ios<_CharT, _Traits>& (_STLP_CALL *__ios_fn)(basic_ios<_CharT, _Traits>&); - typedef ios_base& (_STLP_CALL *__ios_base_fn)(ios_base&); - typedef _Self& (_STLP_CALL *__istream_fn)(_Self&); - -public: // Constructor and destructor. - explicit basic_istream(basic_streambuf<_CharT, _Traits>* __buf) : - basic_ios<_CharT, _Traits>(), _M_gcount(0) { - this->init(__buf); - } - ~basic_istream() {}; - -public: // Nested sentry class. - -public: // Hooks for manipulators. The arguments are - // function pointers. - _Self& operator>> (__istream_fn __f) { return __f(*this); } - _Self& operator>> (__ios_fn __f) { __f(*this); return *this; } - _Self& operator>> (__ios_base_fn __f) { __f(*this); return *this; } - -public: // Formatted input of numbers. - _Self& operator>> (short& __val); - _Self& operator>> (int& __val); - _Self& operator>> (unsigned short& __val); - _Self& operator>> (unsigned int& __val); - _Self& operator>> (long& __val); - _Self& operator>> (unsigned long& __val); -#ifdef _STLP_LONG_LONG - _Self& operator>> (_STLP_LONG_LONG& __val); - _Self& operator>> (unsigned _STLP_LONG_LONG& __val); -#endif - _Self& operator>> (float& __val); - _Self& operator>> (double& __val); -# ifndef _STLP_NO_LONG_DOUBLE - _Self& operator>> (long double& __val); -# endif -# ifndef _STLP_NO_BOOL - _Self& operator>> (bool& __val); -# endif - _Self& operator>> (void*& __val); - -public: // Copying characters into a streambuf. - _Self& operator>>(basic_streambuf<_CharT, _Traits>*); - -public: // Unformatted input. - streamsize gcount() const { return _M_gcount; } - int_type peek(); - -public: // get() for single characters - int_type get(); - _Self& get(char_type& __c); - -public: // get() for character arrays. - _Self& get(char_type* __s, streamsize __n, char_type __delim); - _Self& get(char_type* __s, streamsize __n) - { return get(__s, __n, this->widen('\n')); } - -public: // get() for streambufs - _Self& get(basic_streambuf<_CharT, _Traits>& __buf, - char_type __delim); - _Self& get(basic_streambuf<_CharT, _Traits>& __buf) - { return get(__buf, this->widen('\n')); } - -public: // getline() - _Self& getline(char_type* __s, streamsize __n, char_type delim); - _Self& getline(char_type* __s, streamsize __n) - { return getline(__s, __n, this->widen('\n')); } - -public: // read(), readsome(), ignore() - _Self& ignore(); - _Self& ignore(streamsize __n); -#if (defined (_STLP_MSVC) && _STLP_MSVC < 1200) - inline -#endif - _Self& ignore(streamsize __n, int_type __delim); - - _Self& read(char_type* __s, streamsize __n); - streamsize readsome(char_type* __s, streamsize __n); - -public: // putback - _Self& putback(char_type __c); - _Self& unget(); - -public: // Positioning and buffer control. - int sync(); - - pos_type tellg(); - _Self& seekg(pos_type __pos); - _Self& seekg(off_type, ios_base::seekdir); - -public: // Helper functions for non-member extractors. - void _M_formatted_get(_CharT& __c); - void _M_formatted_get(_CharT* __s); - void _M_skip_whitespace(bool __set_failbit); - -private: // Number of characters extracted by the - streamsize _M_gcount; // most recent unformatted input function. - -public: - -#if defined (_STLP_USE_TEMPLATE_EXPORT) - // If we are using DLL specs, we have not to use inner classes - // end class declaration here - typedef _Isentry<_CharT, _Traits> sentry; -}; -# define sentry _Isentry -template <class _CharT, class _Traits> -class _Isentry { - typedef _Isentry<_CharT, _Traits> _Self; -# else - class sentry { - typedef sentry _Self; -#endif - - private: - const bool _M_ok; - // basic_streambuf<_CharT, _Traits>* _M_buf; - - public: - typedef _Traits traits_type; - - explicit sentry(basic_istream<_CharT, _Traits>& __istr, - bool __noskipws = false) : - _M_ok((__noskipws || !(__istr.flags() & ios_base::skipws)) ? _M_init_noskip(__istr) : _M_init_skip(__istr) ) - /* , _M_buf(__istr.rdbuf()) */ - {} - - // Calling this constructor is the same as calling the previous one with - // __noskipws = true, except that it doesn't require a runtime test. - sentry(basic_istream<_CharT, _Traits>& __istr, _No_Skip_WS) : /* _M_buf(__istr.rdbuf()), */ - _M_ok(_M_init_noskip(__istr)) {} - - ~sentry() {} - - operator bool() const { return _M_ok; } - - private: // Disable assignment and copy constructor. - //Implementation is here only to avoid warning with some compilers. - sentry(const _Self&) : _M_ok(false) {} - _Self& operator=(const _Self&) { return *this; } - }; - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -# undef sentry -# else - // close basic_istream class definition here -}; -# endif - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _Isentry<char, char_traits<char> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_istream<char, char_traits<char> >; -# if ! defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS _Isentry<wchar_t, char_traits<wchar_t> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_istream<wchar_t, char_traits<wchar_t> >; -# endif -# endif /* _STLP_USE_TEMPLATE_EXPORT */ - -// Non-member character and string extractor functions. -template <class _CharT, class _Traits> -inline basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __in_str, _CharT& __c) { - __in_str._M_formatted_get(__c); - return __in_str; -} - -template <class _Traits> -inline basic_istream<char, _Traits>& _STLP_CALL -operator>>(basic_istream<char, _Traits>& __in_str, unsigned char& __c) { - __in_str._M_formatted_get(__REINTERPRET_CAST(char&,__c)); - return __in_str; -} - -template <class _Traits> -inline basic_istream<char, _Traits>& _STLP_CALL -operator>>(basic_istream<char, _Traits>& __in_str, signed char& __c) { - __in_str._M_formatted_get(__REINTERPRET_CAST(char&,__c)); - return __in_str; -} - -template <class _CharT, class _Traits> -inline basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __in_str, _CharT* __s) { - __in_str._M_formatted_get(__s); - return __in_str; -} - -template <class _Traits> -inline basic_istream<char, _Traits>& _STLP_CALL -operator>>(basic_istream<char, _Traits>& __in_str, unsigned char* __s) { - __in_str._M_formatted_get(__REINTERPRET_CAST(char*,__s)); - return __in_str; -} - -template <class _Traits> -inline basic_istream<char, _Traits>& _STLP_CALL -operator>>(basic_istream<char, _Traits>& __in_str, signed char* __s) { - __in_str._M_formatted_get(__REINTERPRET_CAST(char*,__s)); - return __in_str; -} - -//---------------------------------------------------------------------- -// istream manipulator. -template <class _CharT, class _Traits> -basic_istream<_CharT, _Traits>& _STLP_CALL -ws(basic_istream<_CharT, _Traits>& __istr) { - if (!__istr.eof()) { - typedef typename basic_istream<_CharT, _Traits>::sentry _Sentry; - _Sentry __sentry(__istr, _No_Skip_WS()); // Don't skip whitespace. - if (__sentry) - __istr._M_skip_whitespace(false); - } - return __istr; -} - -// Helper functions for istream<>::sentry constructor. -template <class _CharT, class _Traits> -inline bool _M_init_skip(basic_istream<_CharT, _Traits>& __istr) { - if (__istr.good()) { - if (__istr.tie()) - __istr.tie()->flush(); - - __istr._M_skip_whitespace(true); - } - - if (!__istr.good()) { - __istr.setstate(ios_base::failbit); - return false; - } else - return true; -} - -template <class _CharT, class _Traits> -inline bool _M_init_noskip(basic_istream<_CharT, _Traits>& __istr) { - if (__istr.good()) { - if (__istr.tie()) - __istr.tie()->flush(); - - if (!__istr.rdbuf()) - __istr.setstate(ios_base::badbit); - } - else - __istr.setstate(ios_base::failbit); - return __istr.good(); -} - -//---------------------------------------------------------------------- -// Class iostream. -template <class _CharT, class _Traits> -class basic_iostream - : public basic_istream<_CharT, _Traits>, - public basic_ostream<_CharT, _Traits> -{ -public: - typedef basic_ios<_CharT, _Traits> _Basic_ios; - - explicit basic_iostream(basic_streambuf<_CharT, _Traits>* __buf); - virtual ~basic_iostream(); -}; - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_iostream<char, char_traits<char> >; - -# if ! defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_iostream<wchar_t, char_traits<wchar_t> >; -# endif -# endif /* _STLP_USE_TEMPLATE_EXPORT */ - -template <class _CharT, class _Traits> -basic_streambuf<_CharT, _Traits>* _STLP_CALL _M_get_istreambuf(basic_istream<_CharT, _Traits>& __istr) -{ return __istr.rdbuf(); } - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_istream.c> -#endif - -#endif /* _STLP_INTERNAL_ISTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_istreambuf_iterator.h b/WebKit/android/stlport/stl/_istreambuf_iterator.h deleted file mode 100644 index a1578eb..0000000 --- a/WebKit/android/stlport/stl/_istreambuf_iterator.h +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H -#define _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// defined in _istream.h -template <class _CharT, class _Traits> -extern basic_streambuf<_CharT, _Traits>* _STLP_CALL _M_get_istreambuf(basic_istream<_CharT, _Traits>& ) ; - -// We do not read any characters until operator* is called. operator* calls sgetc -// unless the iterator is unchanged from the last call in which case a cached value is -// used. Calls to operator++ use sbumpc. - -template<class _CharT, class _Traits> -class istreambuf_iterator : - public iterator<input_iterator_tag, _CharT, typename _Traits::off_type, _CharT*, _CharT&> -{ -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename _Traits::int_type int_type; - typedef basic_streambuf<_CharT, _Traits> streambuf_type; - typedef basic_istream<_CharT, _Traits> istream_type; - - typedef input_iterator_tag iterator_category; - typedef _CharT value_type; - typedef typename _Traits::off_type difference_type; - typedef const _CharT* pointer; - typedef const _CharT& reference; - -public: - istreambuf_iterator(streambuf_type* __p = 0) { this->_M_init(__p); } - // istreambuf_iterator(basic_istream<_CharT, _Traits>& __is) { this->_M_init(_M_get_istreambuf(__is)); } - inline istreambuf_iterator(basic_istream<_CharT, _Traits>& __is); - - char_type operator*() const { this->_M_getc(); return _M_c; } - istreambuf_iterator<_CharT, _Traits>& operator++() - { - _M_buf->sbumpc(); - _M_have_c = false; - return *this; - } - istreambuf_iterator<_CharT, _Traits> operator++(int); - - bool equal(const istreambuf_iterator<_CharT, _Traits>& __i) const { - if (this->_M_buf) - this->_M_getc(); - if (__i._M_buf) - __i._M_getc(); - return this->_M_eof == __i._M_eof; - } - -private: - void _M_init(streambuf_type* __p) { - _M_buf = __p; - _M_eof = (__p == 0); - _M_have_c = false; - } - - void _M_getc() const { - if (_M_have_c) - return; - int_type __c = _M_buf->sgetc(); -# if !defined (_STLP_NEED_MUTABLE) /* && ! defined (__SUNPRO_CC) */ - _M_c = traits_type::to_char_type(__c); - _M_eof = traits_type::eq_int_type(__c, traits_type::eof()); - _M_have_c = true; -# else - typedef istreambuf_iterator<_CharT,_Traits> _Self; - _Self* __that = __CONST_CAST(_Self*, this); - __that->_M_c = __STATIC_CAST(_CharT, traits_type::to_char_type(__c)); - __that->_M_eof = traits_type::eq_int_type(__c, traits_type::eof()); - __that->_M_have_c = true; -# endif - } - -private: - streambuf_type* _M_buf; - mutable _CharT _M_c; - mutable bool _M_eof; - mutable bool _M_have_c; -}; - -template<class _CharT, class _Traits> -inline istreambuf_iterator<_CharT, _Traits>::istreambuf_iterator(basic_istream<_CharT, _Traits>& __is) -{ this->_M_init(_M_get_istreambuf(__is)); } - -template<class _CharT, class _Traits> -inline bool _STLP_CALL operator==(const istreambuf_iterator<_CharT, _Traits>& __x, - const istreambuf_iterator<_CharT, _Traits>& __y) { - return __x.equal(__y); -} - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template<class _CharT, class _Traits> -inline bool _STLP_CALL operator!=(const istreambuf_iterator<_CharT, _Traits>& __x, - const istreambuf_iterator<_CharT, _Traits>& __y) { - return !__x.equal(__y); -} - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS istreambuf_iterator<char, char_traits<char> >; -# if defined (INSTANTIATE_WIDE_STREAMS) -_STLP_EXPORT_TEMPLATE_CLASS istreambuf_iterator<wchar_t, char_traits<wchar_t> >; -# endif -# endif /* _STLP_USE_TEMPLATE_EXPORT */ - -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES -template <class _CharT, class _Traits> -inline input_iterator_tag _STLP_CALL iterator_category(const istreambuf_iterator<_CharT, _Traits>&) { return input_iterator_tag(); } -template <class _CharT, class _Traits> -inline streamoff* _STLP_CALL -distance_type(const istreambuf_iterator<_CharT, _Traits>&) { return (streamoff*)0; } -template <class _CharT, class _Traits> -inline _CharT* _STLP_CALL value_type(const istreambuf_iterator<_CharT, _Traits>&) { return (_CharT*)0; } -# endif - -template <class _CharT, class _Traits> -istreambuf_iterator<_CharT, _Traits> -istreambuf_iterator<_CharT, _Traits>::operator++(int) { - _M_getc(); // __tmp should avoid any future actions under - // underlined buffer---during call of operator *() - // (due to buffer for *this and __tmp are the same). - istreambuf_iterator<_CharT, _Traits> __tmp = *this; - _M_buf->sbumpc(); - _M_have_c = false; - return __tmp; -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_iterator.h b/WebKit/android/stlport/stl/_iterator.h deleted file mode 100644 index ad23faa..0000000 --- a/WebKit/android/stlport/stl/_iterator.h +++ /dev/null @@ -1,266 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ITERATOR_H -#define _STLP_INTERNAL_ITERATOR_H - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -// This is the new version of reverse_iterator, as defined in the -// draft C++ standard. It relies on the iterator_traits template, -// which in turn relies on partial specialization. The class -// reverse_bidirectional_iterator is no longer part of the draft -// standard, but it is retained for backward compatibility. - -template <class _Iterator> -class reverse_iterator : - public iterator<typename iterator_traits<_Iterator>::iterator_category, - typename iterator_traits<_Iterator>::value_type, - typename iterator_traits<_Iterator>::difference_type, - typename iterator_traits<_Iterator>::pointer, - typename iterator_traits<_Iterator>::reference> { -protected: - _Iterator current; - typedef reverse_iterator<_Iterator> _Self; -public: - typedef typename iterator_traits<_Iterator>::iterator_category iterator_category; - typedef typename iterator_traits<_Iterator>::value_type value_type; - typedef typename iterator_traits<_Iterator>::difference_type difference_type; - typedef typename iterator_traits<_Iterator>::pointer pointer; - typedef typename iterator_traits<_Iterator>::reference reference; - typedef _Iterator iterator_type; -public: - reverse_iterator() {} - explicit reverse_iterator(iterator_type __x) : current(__x) {} - reverse_iterator(const _Self& __x) : current(__x.current) {} - _Self& operator = (const _Self& __x) { current = __x.base(); return *this; } -# if defined (_STLP_MEMBER_TEMPLATES) - template <class _Iter> - reverse_iterator(const reverse_iterator<_Iter>& __x) : current(__x.base()) {} - template <class _Iter> - _Self& operator = (const reverse_iterator<_Iter>& __x) { current = __x.base(); return *this; } -# endif /* _STLP_MEMBER_TEMPLATES */ - - iterator_type base() const { return current; } - reference operator*() const { - _Iterator __tmp = current; - return *--__tmp; - } - _STLP_DEFINE_ARROW_OPERATOR - _Self& operator++() { - --current; - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - --current; - return __tmp; - } - _Self& operator--() { - ++current; - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - ++current; - return __tmp; - } - - _Self operator+(difference_type __n) const { return _Self(current - __n); } - _Self& operator+=(difference_type __n) { - current -= __n; - return *this; - } - _Self operator-(difference_type __n) const { return _Self(current + __n); } - _Self& operator-=(difference_type __n) { - current += __n; - return *this; - } - reference operator[](difference_type __n) const { return *(*this + __n); } -}; - -template <class _Iterator> -inline bool _STLP_CALL operator==(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return __x.base() == __y.base(); } - -template <class _Iterator> -inline bool _STLP_CALL operator<(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return __y.base() < __x.base(); } - -# if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) -template <class _Iterator> -inline bool _STLP_CALL operator!=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return !(__x == __y); } - -template <class _Iterator> -inline bool _STLP_CALL operator>(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return __y < __x; } - -template <class _Iterator> -inline bool _STLP_CALL operator<=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return !(__y < __x); } - -template <class _Iterator> -inline bool _STLP_CALL operator>=(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return !(__x < __y); } -# endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _Iterator> -# if defined (__SUNPRO_CC) -inline ptrdiff_t _STLP_CALL -# else -inline typename reverse_iterator<_Iterator>::difference_type _STLP_CALL -# endif -operator-(const reverse_iterator<_Iterator>& __x, - const reverse_iterator<_Iterator>& __y) -{ return __y.base() - __x.base(); } - -template <class _Iterator, class _DifferenceType> -inline reverse_iterator<_Iterator> _STLP_CALL -operator+(_DifferenceType n,const reverse_iterator<_Iterator>& x) -{ return x.operator+(n); } -#endif - -template <class _Container> -class back_insert_iterator - : public iterator<output_iterator_tag, void, void, void, void> { - typedef back_insert_iterator<_Container> _Self; -protected: - //c is a Standard name (24.4.2.1), do no make it STLport naming convention compliant. - _Container *container; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - - explicit back_insert_iterator(_Container& __x) : container(&__x) {} - - _Self& operator=(const _Self& __other) { - container = __other.container; - return *this; - } - _Self& operator=(const typename _Container::value_type& __val) { - container->push_back(__val); - return *this; - } - _Self& operator*() { return *this; } - _Self& operator++() { return *this; } - _Self operator++(int) { return *this; } -}; - -template <class _Container> -inline back_insert_iterator<_Container> _STLP_CALL back_inserter(_Container& __x) -{ return back_insert_iterator<_Container>(__x); } - -template <class _Container> -class front_insert_iterator - : public iterator<output_iterator_tag, void, void, void, void> { - typedef front_insert_iterator<_Container> _Self; -protected: - //c is a Standard name (24.4.2.3), do no make it STLport naming convention compliant. - _Container *container; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - explicit front_insert_iterator(_Container& __x) : container(&__x) {} - - _Self& operator=(const _Self& __other) { - container = __other.container; - return *this; - } - _Self& operator=(const typename _Container::value_type& __val) { - container->push_front(__val); - return *this; - } - _Self& operator*() { return *this; } - _Self& operator++() { return *this; } - _Self operator++(int) { return *this; } -}; - -template <class _Container> -inline front_insert_iterator<_Container> _STLP_CALL front_inserter(_Container& __x) -{ return front_insert_iterator<_Container>(__x); } - -template <class _Container> -class insert_iterator - : public iterator<output_iterator_tag, void, void, void, void> { - typedef insert_iterator<_Container> _Self; -protected: - //container is a Standard name (24.4.2.5), do no make it STLport naming convention compliant. - _Container *container; - typename _Container::iterator _M_iter; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - insert_iterator(_Container& __x, typename _Container::iterator __i) - : container(&__x), _M_iter(__i) {} - - _Self& operator=(_Self const& __other) { - container = __other.container; - _M_iter = __other._M_iter; - return *this; - } - _Self& operator=(const typename _Container::value_type& __val) { - _M_iter = container->insert(_M_iter, __val); - ++_M_iter; - return *this; - } - _Self& operator*() { return *this; } - _Self& operator++() { return *this; } - _Self& operator++(int) { return *this; } -}; - -template <class _Container, class _Iterator> -inline insert_iterator<_Container> _STLP_CALL -inserter(_Container& __x, _Iterator __i) { - typedef typename _Container::iterator __iter; - return insert_iterator<_Container>(__x, __iter(__i)); -} - -_STLP_END_NAMESPACE - -#if ! defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) || defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -# include <stl/_iterator_old.h> -#endif - -#endif /* _STLP_INTERNAL_ITERATOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_iterator_base.h b/WebKit/android/stlport/stl/_iterator_base.h deleted file mode 100644 index 75fe492..0000000 --- a/WebKit/android/stlport/stl/_iterator_base.h +++ /dev/null @@ -1,541 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -#define _STLP_INTERNAL_ITERATOR_BASE_H - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -//# if defined (_STLP_IMPORT_VENDOR_CSTD) && ! defined (_STLP_VENDOR_GLOBAL_CSTD) -//_STLP_BEGIN_NAMESPACE -//using namespace _STLP_VENDOR_CSTD; -//_STLP_END_NAMESPACE -//#endif /* _STLP_IMPORT_VENDOR_CSTD */ - -#if !defined(_STLP_USE_OLD_HP_ITERATOR_QUERIES) && !defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) -# ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -# endif -#endif - -_STLP_BEGIN_NAMESPACE - -struct input_iterator_tag {}; -struct output_iterator_tag {}; -struct forward_iterator_tag : public input_iterator_tag {}; -struct bidirectional_iterator_tag : public forward_iterator_tag {}; -struct random_access_iterator_tag : public bidirectional_iterator_tag {}; - - -template <class _Category, class _Tp, _STLP_DFL_TMPL_PARAM(_Distance,ptrdiff_t), - _STLP_DFL_TMPL_PARAM(_Pointer,_Tp*), _STLP_DFL_TMPL_PARAM(_Reference,_Tp&) > -struct iterator { - typedef _Category iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; - typedef _Pointer pointer; - typedef _Reference reference; -}; -_STLP_TEMPLATE_NULL -struct iterator<output_iterator_tag, void, void, void, void> { - typedef output_iterator_tag iterator_category; -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; -#endif -}; - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) iterator_category(_It) -# define _STLP_DISTANCE_TYPE(_It, _Tp) distance_type(_It) -# define _STLP_VALUE_TYPE(_It, _Tp) value_type(_It) -//Old HP iterator queries do not give information about the iterator -//associated reference type so we consider that it is not a real reference. -# define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp) __false_type() -#else -# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -# define _STLP_VALUE_TYPE(_It, _Tp) (typename iterator_traits< _Tp >::value_type*)0 -# define _STLP_DISTANCE_TYPE(_It, _Tp) (typename iterator_traits< _Tp >::difference_type*)0 -# if defined (__BORLANDC__) || defined (__SUNPRO_CC) || ( defined (__MWERKS__) && (__MWERKS__ <= 0x2303)) || ( defined (__sgi) && defined (_COMPILER_VERSION)) || defined (__DMC__) -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) iterator_traits< _Tp >::iterator_category() -# else -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) typename iterator_traits< _Tp >::iterator_category() -# endif -# define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp) _IsRefType< typename iterator_traits< _Tp >::reference >::_Ret() -# else -# define _STLP_ITERATOR_CATEGORY(_It, _Tp) __iterator_category(_It, _IsPtrType<_Tp>::_Ret()) -# define _STLP_DISTANCE_TYPE(_It, _Tp) (ptrdiff_t*)0 -# define _STLP_VALUE_TYPE(_It, _Tp) __value_type(_It, _IsPtrType<_Tp>::_Ret() ) -# define _STLP_IS_REF_TYPE_REAL_REF(_It, _Tp) __false_type() -# endif -#endif - -template <class _Iterator> -struct iterator_traits { - typedef typename _Iterator::iterator_category iterator_category; - typedef typename _Iterator::value_type value_type; - typedef typename _Iterator::difference_type difference_type; - typedef typename _Iterator::pointer pointer; - typedef typename _Iterator::reference reference; -}; - - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && ! defined (__SUNPRO_CC) -# define _STLP_DIFFERENCE_TYPE(_Iterator) typename iterator_traits<_Iterator>::difference_type -#else -# define _STLP_DIFFERENCE_TYPE(_Iterator) ptrdiff_t -#endif - -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - -// fbp : this order keeps gcc happy -template <class _Tp> -struct iterator_traits<const _Tp*> { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; -}; - -template <class _Tp> -struct iterator_traits<_Tp*> { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef _Tp& reference; -}; - -# if defined (__BORLANDC__) -template <class _Tp> -struct iterator_traits<_Tp* const> { - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef ptrdiff_t difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; -}; -# endif - -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) || \ - (defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) && ! defined (_STLP_NO_ARROW_OPERATOR)) -# define _STLP_POINTERS_SPECIALIZE( _TpP ) -# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(operator*()); } -#else -# include <stl/_ptrs_specialize.h> -#endif - -#ifndef _STLP_USE_OLD_HP_ITERATOR_QUERIES -// The overloaded functions iterator_category, distance_type, and -// value_type are not part of the C++ standard. (They have been -// replaced by struct iterator_traits.) They are included for -// backward compatibility with the HP STL. -// We introduce internal names for these functions. - -# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - -template <class _Iter> -inline typename iterator_traits<_Iter>::iterator_category __iterator_category(const _Iter&) { - typedef typename iterator_traits<_Iter>::iterator_category _Category; - return _Category(); -} - -template <class _Iter> -inline typename iterator_traits<_Iter>::difference_type* __distance_type(const _Iter&) { - typedef typename iterator_traits<_Iter>::difference_type _diff_type; - return __STATIC_CAST(_diff_type*,0); -} - -template <class _Iter> -inline typename iterator_traits<_Iter>::value_type* __value_type(const _Iter&) { - typedef typename iterator_traits<_Iter>::value_type _value_type; - return __STATIC_CAST(_value_type*,0); -} - -# else /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -template <class _Iter> -inline random_access_iterator_tag -__iterator_category(const _Iter&, const __true_type&) { - return random_access_iterator_tag(); -} - -template <class _Iter> -inline _STLP_TYPENAME_ON_RETURN_TYPE iterator_traits<_Iter>::iterator_category -__iterator_category(const _Iter&, const __false_type&) { - typedef typename iterator_traits<_Iter>::iterator_category _Category; - return _Category(); -} - - -template <class _Iter> -inline ptrdiff_t* _STLP_CALL __distance_type(const _Iter&) { return __STATIC_CAST(ptrdiff_t*, 0); } - -template <class _Iter> -inline _STLP_TYPENAME_ON_RETURN_TYPE iterator_traits<_Iter>::value_type* -__value_type(const _Iter&, const __false_type&) { - typedef typename iterator_traits<_Iter>::value_type _value_type; - return __STATIC_CAST(_value_type*,0); -} - -template <class _Tp> -inline _Tp* -__value_type(const _Tp*, const __true_type&) { - return __STATIC_CAST(_Tp*, 0); -} - -# endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#else /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */ -template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> -inline _Category _STLP_CALL iterator_category(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return _Category(); } -template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> -inline _Tp* _STLP_CALL value_type(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return __STATIC_CAST(_Tp*, 0); } -template <class _Category, class _Tp, class _Distance, class _Pointer, class _Reference> -inline _Distance* _STLP_CALL distance_type(const iterator<_Category,_Tp,_Distance,_Pointer,_Reference>&) { return __STATIC_CAST(_Distance*, 0); } -template <class _Tp> -inline random_access_iterator_tag _STLP_CALL iterator_category(const _Tp*) { return random_access_iterator_tag(); } -template <class _Tp> -inline _Tp* _STLP_CALL value_type(const _Tp*) { return __STATIC_CAST(_Tp*, 0); } -template <class _Tp> -inline ptrdiff_t* _STLP_CALL distance_type(const _Tp*) { return __STATIC_CAST(ptrdiff_t*, 0); } -#endif /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */ - -# if ! defined (_STLP_NO_ANACHRONISMS) -// The base classes input_iterator, output_iterator, forward_iterator, -// bidirectional_iterator, and random_access_iterator are not part of -// the C++ standard. (They have been replaced by struct iterator.) -// They are included for backward compatibility with the HP STL. -template <class _Tp, class _Distance> struct input_iterator : - public iterator <input_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {}; -struct output_iterator : public iterator <output_iterator_tag, void, void, void, void> {}; -template <class _Tp, class _Distance> struct forward_iterator : - public iterator<forward_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {}; -template <class _Tp, class _Distance> struct bidirectional_iterator : - public iterator<bidirectional_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {}; -template <class _Tp, class _Distance> struct random_access_iterator : - public iterator<random_access_iterator_tag, _Tp, _Distance, _Tp*, _Tp&> {}; - -# if defined (_STLP_BASE_MATCH_BUG) && defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -template <class _Tp, class _Distance> -inline input_iterator_tag _STLP_CALL -iterator_category(const input_iterator<_Tp, _Distance>&) { return input_iterator_tag(); } -inline output_iterator_tag _STLP_CALL -iterator_category(const output_iterator&) { return output_iterator_tag(); } -template <class _Tp, class _Distance> -inline forward_iterator_tag _STLP_CALL -iterator_category(const forward_iterator<_Tp, _Distance>&) { return forward_iterator_tag(); } -template <class _Tp, class _Distance> -inline bidirectional_iterator_tag _STLP_CALL -iterator_category(const bidirectional_iterator<_Tp, _Distance>&) { return bidirectional_iterator_tag(); } -template <class _Tp, class _Distance> -inline random_access_iterator_tag _STLP_CALL -iterator_category(const random_access_iterator<_Tp, _Distance>&) { return random_access_iterator_tag(); } -template <class _Tp, class _Distance> -inline _Tp* _STLP_CALL value_type(const input_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); } -template <class _Tp, class _Distance> -inline _Tp* _STLP_CALL value_type(const forward_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); } -template <class _Tp, class _Distance> -inline _Tp* _STLP_CALL value_type(const bidirectional_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); } -template <class _Tp, class _Distance> -inline _Tp* _STLP_CALL value_type(const random_access_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Tp*, 0); } -template <class _Tp, class _Distance> -inline _Distance* _STLP_CALL distance_type(const input_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0); } -template <class _Tp, class _Distance> -inline _Distance* _STLP_CALL distance_type(const forward_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0); } -template <class _Tp, class _Distance> -inline _Distance* _STLP_CALL distance_type(const bidirectional_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0);} -template <class _Tp, class _Distance> -inline _Distance* _STLP_CALL distance_type(const random_access_iterator<_Tp, _Distance>&) { return __STATIC_CAST(_Distance*, 0); } -# endif /* BASE_MATCH */ - -#endif /* _STLP_NO_ANACHRONISMS */ - -template <class _InputIterator, class _Distance> -inline void _STLP_CALL __distance(const _InputIterator& __first, const _InputIterator& __last, - _Distance& __n, const input_iterator_tag &) { - _InputIterator __it(__first); - while (__it != __last) { ++__it; ++__n; } -} - - -# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _ForwardIterator, class _Distance> -inline void _STLP_CALL __distance(const _ForwardIterator& __first, const _ForwardIterator& __last, - _Distance& __n, const forward_iterator_tag &) { - _ForwardIterator __it(__first); - while (__it != __last) { ++__first; ++__n; } -} - -template <class _BidirectionalIterator, class _Distance> -_STLP_INLINE_LOOP void _STLP_CALL __distance(const _BidirectionalIterator& __first, - const _BidirectionalIterator& __last, - _Distance& __n, const bidirectional_iterator_tag &) { - _BidirectionalIterator __it(__first); - while (__it != __last) { ++__it; ++__n; } -} -# endif - -template <class _RandomAccessIterator, class _Distance> -inline void _STLP_CALL __distance(const _RandomAccessIterator& __first, - const _RandomAccessIterator& __last, - _Distance& __n, const random_access_iterator_tag &) { - __n += __last - __first; -} - -#ifndef _STLP_NO_ANACHRONISMS -template <class _InputIterator, class _Distance> -inline void _STLP_CALL distance(const _InputIterator& __first, - const _InputIterator& __last, _Distance& __n) { - __distance(__first, __last, __n, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); -} -#endif - -template <class _InputIterator> -inline _STLP_DIFFERENCE_TYPE(_InputIterator) _STLP_CALL -__distance(const _InputIterator& __first, const _InputIterator& __last, const input_iterator_tag &) { - _STLP_DIFFERENCE_TYPE(_InputIterator) __n = 0; - _InputIterator __it(__first); - while (__it != __last) { - ++__it; ++__n; - } - return __n; -} - -# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _ForwardIterator> -inline _STLP_DIFFERENCE_TYPE(_ForwardIterator) _STLP_CALL -__distance(const _ForwardIterator& __first, const _ForwardIterator& __last, - const forward_iterator_tag &) -{ - _STLP_DIFFERENCE_TYPE(_ForwardIterator) __n = 0; - _ForwardIterator __it(__first); - while (__it != __last) { - ++__it; ++__n; - } - return __n; - -} - -template <class _BidirectionalIterator> -_STLP_INLINE_LOOP _STLP_DIFFERENCE_TYPE(_BidirectionalIterator) _STLP_CALL -__distance(const _BidirectionalIterator& __first, - const _BidirectionalIterator& __last, - const bidirectional_iterator_tag &) { - _STLP_DIFFERENCE_TYPE(_BidirectionalIterator) __n = 0; - _BidirectionalIterator __it(__first); - while (__it != __last) { - ++__it; ++__n; - } - return __n; -} -# endif - -template <class _RandomAccessIterator> -inline _STLP_DIFFERENCE_TYPE(_RandomAccessIterator) _STLP_CALL -__distance(const _RandomAccessIterator& __first, const _RandomAccessIterator& __last, - const random_access_iterator_tag &) { - return __last - __first; -} - -template <class _InputIterator> -inline _STLP_DIFFERENCE_TYPE(_InputIterator) _STLP_CALL -distance(_InputIterator __first, _InputIterator __last) { - return __distance(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); -} - -// fbp: those are being used for iterator/const_iterator definitions everywhere -template <class _Tp> -struct _Nonconst_traits; - -template <class _Tp> -struct _Const_traits { - typedef _Tp value_type; - typedef const _Tp& reference; - typedef const _Tp* pointer; - typedef _Const_traits<_Tp> _ConstTraits; - typedef _Nonconst_traits<_Tp> _NonConstTraits; -}; - -template <class _Tp> -struct _Nonconst_traits { - typedef _Tp value_type; - typedef _Tp& reference; - typedef _Tp* pointer; - typedef _Const_traits<_Tp> _ConstTraits; - typedef _Nonconst_traits<_Tp> _NonConstTraits; -}; - -/* - * dums: A special iterator/const_iterator traits for set and multiset for which even - * the iterator is not mutable - */ -template <class _Tp> -struct _Nonconst_Const_traits; - -template <class _Tp> -struct _Const_Const_traits { - typedef _Tp value_type; - typedef const _Tp& reference; - typedef const _Tp* pointer; - typedef _Const_Const_traits<_Tp> _ConstTraits; - typedef _Nonconst_Const_traits<_Tp> _NonConstTraits; -}; - -template <class _Tp> -struct _Nonconst_Const_traits { - typedef _Tp value_type; - typedef const _Tp& reference; - typedef const _Tp* pointer; - typedef _Const_Const_traits<_Tp> _ConstTraits; - typedef _Nonconst_Const_traits<_Tp> _NonConstTraits; -}; - -/* - * A macro to generate a new iterator traits from one of the - * previous one. Changing the iterator traits type make iterators - * from different containers not comparable. - */ -#define _STLP_CREATE_ITERATOR_TRAITS_BASE(Motif, Traits) \ -template <class _Tp> \ -struct _##Motif; \ -template <class _Tp> \ -struct _Const##Motif : public _STLP_STD::_Const_##Traits<_Tp> { \ - typedef _Const##Motif<_Tp> _ConstTraits; \ - typedef _##Motif<_Tp> _NonConstTraits; \ -}; \ -template <class _Tp> \ -struct _##Motif : public _STLP_STD::_Nonconst_##Traits<_Tp> { \ - typedef _Const##Motif<_Tp> _ConstTraits; \ - typedef _##Motif<_Tp> _NonConstTraits; \ -}; - -#define _STLP_CREATE_ITERATOR_TRAITS(Motif, Traits) \ -_STLP_MOVE_TO_PRIV_NAMESPACE \ -_STLP_CREATE_ITERATOR_TRAITS_BASE(Motif, Traits) \ -_STLP_MOVE_TO_STD_NAMESPACE - -#define _STLP_CREATE_HASH_ITERATOR_TRAITS(Motif, Traits) \ -_STLP_MOVE_TO_PRIV_NAMESPACE \ -_STLP_CREATE_ITERATOR_TRAITS_BASE(NonLocal##Motif, Traits) \ -_STLP_CREATE_ITERATOR_TRAITS_BASE(Local##Motif, Traits) \ -template <class _Tp> \ -struct _##Motif { \ - typedef _ConstNonLocal##Motif<_Tp> _ConstTraits; \ - typedef _NonLocal##Motif<_Tp> _NonConstTraits; \ - typedef _ConstLocal##Motif<_Tp> _ConstLocalTraits; \ - typedef _Local##Motif<_Tp> _NonConstLocalTraits; \ -}; \ -_STLP_MOVE_TO_STD_NAMESPACE - -/* -# if defined (_STLP_BASE_TYPEDEF_BUG) -// this workaround is needed for SunPro 4.0.1 -template <class _Traits> -struct __cnst_traits_aux : private _Traits { - typedef typename _Traits::value_type value_type; -}; -# define __TRAITS_VALUE_TYPE(_Traits) __cnst_traits_aux<_Traits>::value_type -# else -# define __TRAITS_VALUE_TYPE(_Traits) _Traits::value_type -# endif -*/ - -#if defined (_STLP_MSVC) -// MSVC specific -template <class _InputIterator, class _Dist> -inline void _STLP_CALL _Distance(_InputIterator __first, - _InputIterator __last, _Dist& __n) { - __distance(__first, __last, __n, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); -} -#endif - -template <class _InputIter, class _Distance> -_STLP_INLINE_LOOP void _STLP_CALL -__advance(_InputIter& __i, _Distance __n, const input_iterator_tag &) { - while (__n--) ++__i; -} - -// fbp : added output iterator tag variant -template <class _InputIter, class _Distance> -_STLP_INLINE_LOOP void _STLP_CALL -__advance(_InputIter& __i, _Distance __n, const output_iterator_tag &) { - while (__n--) ++__i; -} - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _ForwardIterator, class _Distance> -_STLP_INLINE_LOOP void _STLP_CALL -__advance(_ForwardIterator& i, _Distance n, const forward_iterator_tag &) { - while (n--) ++i; -} -#endif - -template <class _BidirectionalIterator, class _Distance> -_STLP_INLINE_LOOP void _STLP_CALL -__advance(_BidirectionalIterator& __i, _Distance __n, - const bidirectional_iterator_tag &) { - if (__n > 0) - while (__n--) ++__i; - else - while (__n++) --__i; -} - -template <class _RandomAccessIterator, class _Distance> -inline void _STLP_CALL -__advance(_RandomAccessIterator& __i, _Distance __n, - const random_access_iterator_tag &) { - __i += __n; -} - -template <class _InputIterator, class _Distance> -inline void _STLP_CALL advance(_InputIterator& __i, _Distance __n) { - __advance(__i, __n, _STLP_ITERATOR_CATEGORY(__i, _InputIterator)); -} - -_STLP_END_NAMESPACE - -#if defined (_STLP_DEBUG) && !defined (_STLP_DEBUG_H) -# include <stl/debug/_debug.h> -#endif - -#endif /* _STLP_INTERNAL_ITERATOR_BASE_H */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_iterator_old.h b/WebKit/android/stlport/stl/_iterator_old.h deleted file mode 100644 index d20a11f..0000000 --- a/WebKit/android/stlport/stl/_iterator_old.h +++ /dev/null @@ -1,351 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_ITERATOR_OLD_H -#define _STLP_INTERNAL_ITERATOR_OLD_H - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES - -template <class _Container> -inline output_iterator_tag _STLP_CALL -iterator_category(const back_insert_iterator<_Container>&) { return output_iterator_tag(); } -template <class _Container> -inline output_iterator_tag _STLP_CALL -iterator_category(const front_insert_iterator<_Container>&) { return output_iterator_tag(); } -template <class _Container> -inline output_iterator_tag _STLP_CALL -iterator_category(const insert_iterator<_Container>&) { return output_iterator_tag(); } - -# endif - -# if defined (_STLP_MSVC50_COMPATIBILITY) -# define __Reference _Reference, class _Pointer -# define Reference__ _Reference, _Pointer -template <class _BidirectionalIterator, class _Tp, - _STLP_DFL_TMPL_PARAM(_Reference, _Tp& ), - _STLP_DFL_TMPL_PARAM(_Pointer, _Tp*), - _STLP_DFL_TYPE_PARAM(_Distance, ptrdiff_t)> -# else -# define __Reference _Reference -# define Reference__ _Reference -template <class _BidirectionalIterator, class _Tp, _STLP_DFL_TMPL_PARAM(_Reference, _Tp& ), - _STLP_DFL_TYPE_PARAM(_Distance, ptrdiff_t)> -# endif -class reverse_bidirectional_iterator { - typedef reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, - Reference__, _Distance> _Self; - // friend inline bool operator== _STLP_NULL_TMPL_ARGS (const _Self& x, const _Self& y); -protected: - _BidirectionalIterator current; -public: - typedef bidirectional_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; -# if defined (_STLP_MSVC50_COMPATIBILITY) - typedef _Pointer pointer; -# else - typedef _Tp* pointer; -# endif - typedef _Reference reference; - - reverse_bidirectional_iterator() {} - explicit reverse_bidirectional_iterator(_BidirectionalIterator __x) - : current(__x) {} - _BidirectionalIterator base() const { return current; } - _Reference operator*() const { - _BidirectionalIterator __tmp = current; - return *(--__tmp); - } -# if !(defined _STLP_NO_ARROW_OPERATOR) - _STLP_DEFINE_ARROW_OPERATOR -# endif - _Self& operator++() { - --current; - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - --current; - return __tmp; - } - _Self& operator--() { - ++current; - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - ++current; - return __tmp; - } -}; - -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES -template <class _BidirectionalIterator, class _Tp, class __Reference, - class _Distance> -inline bidirectional_iterator_tag _STLP_CALL -iterator_category(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, Reference__, _Distance>&) -{ return bidirectional_iterator_tag(); } -template <class _BidirectionalIterator, class _Tp, class __Reference, - class _Distance> -inline _Tp* _STLP_CALL -value_type(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, Reference__, _Distance>&) -{ return (_Tp*) 0; } -template <class _BidirectionalIterator, class _Tp, class __Reference, - class _Distance> -inline _Distance* _STLP_CALL -distance_type(const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, Reference__, _Distance>&) -{ return (_Distance*) 0; } -#endif - -template <class _BidirectionalIterator, class _Tp, class __Reference, - class _Distance> -inline bool _STLP_CALL operator==( - const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_bidirectional_iterator<_BidirectionalIterator, _Tp, - Reference__, _Distance>& __y) -{ - return __x.base() == __y.base(); -} - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template <class _BiIter, class _Tp, class __Reference, class _Distance> -inline bool _STLP_CALL operator!=( - const reverse_bidirectional_iterator<_BiIter, _Tp, Reference__, _Distance>& __x, - const reverse_bidirectional_iterator<_BiIter, _Tp, Reference__, _Distance>& __y) -{ - return !(__x == __y); -} - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -#if ! defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION ) - -// This is the old version of reverse_iterator, as found in the original -// HP STL. It does not use partial specialization. - -template <class _RandomAccessIterator, -# if defined (__MSL__) && (__MSL__ >= 0x2405) \ - || defined(__MRC__) || (defined(__SC__) && !defined(__DMC__)) //*ty 03/22/2001 - give the default to the secont param under MPW. - // I believe giving the default will cause any harm even though the 2nd type parameter - // still have to be provided for T* type iterators. - _STLP_DFL_TMPL_PARAM(_Tp,iterator_traits<_RandomAccessIterator>::value_type), -# else - class _Tp, -#endif - _STLP_DFL_TMPL_PARAM(_Reference,_Tp&), -# if defined (_STLP_MSVC50_COMPATIBILITY) - _STLP_DFL_TMPL_PARAM(_Pointer, _Tp*), -# endif - _STLP_DFL_TYPE_PARAM(_Distance,ptrdiff_t)> -class reverse_iterator { - typedef reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance> - _Self; -protected: - _RandomAccessIterator __current; -public: - typedef random_access_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Distance difference_type; -# if defined (_STLP_MSVC50_COMPATIBILITY) - typedef _Pointer pointer; -# else - typedef _Tp* pointer; -# endif - typedef _Reference reference; - - reverse_iterator() {} - reverse_iterator(const _Self& __x) : __current(__x.base()) {} - explicit reverse_iterator(_RandomAccessIterator __x) : __current(__x) {} - _Self& operator=(const _Self& __x) {__current = __x.base(); return *this; } - - _RandomAccessIterator base() const { return __current; } - _Reference operator*() const { return *(__current - (difference_type)1); } - -# if !(defined _STLP_NO_ARROW_OPERATOR) - _STLP_DEFINE_ARROW_OPERATOR -# endif - - _Self& operator++() { - --__current; - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - --__current; - return __tmp; - } - _Self& operator--() { - ++__current; - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - ++__current; - return __tmp; - } - _Self operator+(_Distance __n) const { - return _Self(__current - __n); - } - _Self& operator+=(_Distance __n) { - __current -= __n; - return *this; - } - _Self operator-(_Distance __n) const { - return _Self(__current + __n); - } - _Self& operator-=(_Distance __n) { - __current += __n; - return *this; - } - _Reference operator[](_Distance __n) const { return *(*this + __n); } -}; - -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline random_access_iterator_tag _STLP_CALL -iterator_category(const reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>&) -{ return random_access_iterator_tag(); } -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline _Tp* _STLP_CALL value_type(const reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>&) -{ return (_Tp*) 0; } -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline _Distance* _STLP_CALL -distance_type(const reverse_iterator<_RandomAccessIterator, _Tp, Reference__, _Distance>&) -{ return (_Distance*) 0; } -#endif - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline bool _STLP_CALL -operator==(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) -{ - return __x.base() == __y.base(); -} - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline bool _STLP_CALL -operator<(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) -{ - return __y.base() < __x.base(); -} - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline bool _STLP_CALL -operator!=(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) { - return !(__x == __y); -} - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline bool _STLP_CALL -operator>(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) { - return __y < __x; -} - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline bool _STLP_CALL -operator<=(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) { - return !(__y < __x); -} - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline bool _STLP_CALL -operator>=(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) { - return !(__x < __y); -} - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline _Distance _STLP_CALL -operator-(const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __y) -{ - return __y.base() - __x.base(); -} - -template <class _RandomAccessIterator, class _Tp, - class __Reference, class _Distance> -inline reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance> _STLP_CALL -operator+(_Distance __n, - const reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>& __x) -{ - return reverse_iterator<_RandomAccessIterator, _Tp, - Reference__, _Distance>(__x.base() - __n); -} - -#endif /* ! defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION ) */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_ITERATOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_limits.c b/WebKit/android/stlport/stl/_limits.c deleted file mode 100644 index f56489b..0000000 --- a/WebKit/android/stlport/stl/_limits.c +++ /dev/null @@ -1,315 +0,0 @@ -/* - * Copyright (c) 1998,1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_LIMITS_C -#define _STLP_LIMITS_C - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -//========================================================== -// numeric_limits static members -//========================================================== - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -#if !defined (_STLP_STATIC_CONST_INIT_BUG) - -# define __declare_numeric_base_member(__type, __mem, _Init) \ -template <class __number> \ - const __type _Numeric_limits_base<__number>:: __mem - -__declare_numeric_base_member(bool, is_specialized, false); -__declare_numeric_base_member(int, digits, 0); -__declare_numeric_base_member(int, digits10, 0); -__declare_numeric_base_member(bool, is_signed, false); -__declare_numeric_base_member(bool, is_integer, false); -__declare_numeric_base_member(bool, is_exact, false); -__declare_numeric_base_member(int, radix, 0); -__declare_numeric_base_member(int, min_exponent, 0); -__declare_numeric_base_member(int, max_exponent, 0); -__declare_numeric_base_member(int, min_exponent10, 0); -__declare_numeric_base_member(int, max_exponent10, 0); -__declare_numeric_base_member(bool, has_infinity, false); -__declare_numeric_base_member(bool, has_quiet_NaN, false); -__declare_numeric_base_member(bool, has_signaling_NaN, false); -__declare_numeric_base_member(float_denorm_style, has_denorm, denorm_absent); -__declare_numeric_base_member(bool, has_denorm_loss, false); -__declare_numeric_base_member(bool, is_iec559, false); -__declare_numeric_base_member(bool, is_bounded, false); -__declare_numeric_base_member(bool, is_modulo, false); -__declare_numeric_base_member(bool, traps, false); -__declare_numeric_base_member(bool, tinyness_before, false); -__declare_numeric_base_member(float_round_style, round_style, round_toward_zero); - -# undef __declare_numeric_base_member - -# define __declare_integer_limits_member(__type, __mem, _Init) \ -template <class _Int, _STLP_LIMITS_MIN_TYPE __imin, _STLP_LIMITS_MAX_TYPE __imax, int __idigits, bool __ismod> \ - const __type _Integer_limits<_Int, __imin, __imax, __idigits, __ismod>:: __mem - -__declare_integer_limits_member(bool, is_specialized, true); -__declare_integer_limits_member(int, digits, (__idigits < 0) ? \ - ((int)((sizeof(_Int) * (CHAR_BIT))) - ((__imin == 0) ? 0 : 1)) \ - : (__idigits) ); -__declare_integer_limits_member(int, digits10, (int)(301UL * digits) /1000); -__declare_integer_limits_member(bool, is_signed, __imin != 0); -__declare_integer_limits_member(bool, is_integer, true); -__declare_integer_limits_member(bool, is_exact, true); -__declare_integer_limits_member(int, radix, 2); -__declare_integer_limits_member(bool, is_bounded, true); -__declare_integer_limits_member(bool, is_modulo, true); -# undef __declare_integer_limits_member - -# define __declare_float_limits_member(__type, __mem, _Init) \ -template <class __number, \ - int __Digits, int __Digits10, \ - int __MinExp, int __MaxExp, \ - int __MinExp10, int __MaxExp10, \ - bool __IsIEC559, \ - float_round_style __RoundStyle> \ -const __type _Floating_limits< __number, __Digits, __Digits10, \ - __MinExp, __MaxExp, __MinExp10, __MaxExp10, \ - __IsIEC559, __RoundStyle>::\ - __mem - -__declare_float_limits_member(bool, is_specialized, true); -__declare_float_limits_member(int, digits, __Digits); -__declare_float_limits_member(int, digits10, __Digits10); -__declare_float_limits_member(bool, is_signed, true); -__declare_float_limits_member(int, radix, FLT_RADIX); -__declare_float_limits_member(int, min_exponent, __MinExp); -__declare_float_limits_member(int, max_exponent, __MaxExp); -__declare_float_limits_member(int, min_exponent10, __MinExp10); -__declare_float_limits_member(int, max_exponent10, __MaxExp10); -__declare_float_limits_member(bool, has_infinity, true); -__declare_float_limits_member(bool, has_quiet_NaN, true); -__declare_float_limits_member(bool, has_signaling_NaN, true); -__declare_float_limits_member(float_denorm_style, has_denorm, denorm_indeterminate); -__declare_float_limits_member(bool, has_denorm_loss, false); -__declare_float_limits_member(bool, is_iec559, __IsIEC559); -__declare_float_limits_member(bool, is_bounded, true); -__declare_float_limits_member(bool, traps, true); -__declare_float_limits_member(bool, tinyness_before, false); -__declare_float_limits_member(float_round_style, round_style, __RoundStyle); -# undef __declare_float_limits_member - -#endif /* _STLP_STATIC_CONST_INIT_BUG */ - - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) - -# if defined (_STLP_BIG_ENDIAN) -# if defined (__OS400__) -# define _STLP_FLOAT_INF_REP { 0x7f80, 0 } -# define _STLP_FLOAT_QNAN_REP { 0xffc0, 0 } -# define _STLP_FLOAT_SNAN_REP { 0xff80, 0 } -# define _STLP_DOUBLE_INF_REP { 0x7ff0, 0, 0, 0 } -# define _STLP_DOUBLE_QNAN_REP { 0xfff8, 0, 0, 0 } -# define _STLP_DOUBLE_SNAN_REP { 0xfff0, 0, 0, 0 } -# define _STLP_LDOUBLE_INF_REP { 0x7ff0, 0, 0, 0, 0, 0, 0, 0 } -# define _STLP_LDOUBLE_QNAN_REP { 0xfff8, 0, 0, 0, 0, 0, 0, 0 } -# define _STLP_LDOUBLE_SNAN_REP { 0xfff0, 0, 0, 0, 0, 0, 0, 0 } -# else /* __OS400__ */ -# define _STLP_FLOAT_INF_REP { 0x7f80, 0 } -# define _STLP_FLOAT_QNAN_REP { 0x7fc1, 0 } -# define _STLP_FLOAT_SNAN_REP { 0x7f81, 0 } -# define _STLP_DOUBLE_INF_REP { 0x7ff0, 0, 0, 0 } -# define _STLP_DOUBLE_QNAN_REP { 0x7ff9, 0, 0, 0 } -# define _STLP_DOUBLE_SNAN_REP { 0x7ff1, 0, 0, 0 } -# define _STLP_LDOUBLE_INF_REP { 0x7ff0, 0, 0, 0, 0, 0, 0, 0 } -# define _STLP_LDOUBLE_QNAN_REP { 0x7ff1, 0, 0, 0, 0, 0, 0, 0 } -# define _STLP_LDOUBLE_SNAN_REP { 0x7ff9, 0, 0, 0, 0, 0, 0, 0 } -# endif /* __OS400__ */ - -# elif defined (_STLP_LITTLE_ENDIAN) - -# if 0 /* defined(_STLP_MSVC) || defined(__linux__) */ -// some IA-32 platform ?? -/* -# define _STLP_FLOAT_INF_REP { 0, 0x7f80 } -# define _STLP_FLOAT_QNAN_REP { 0, 0xffc0 } -# define _STLP_FLOAT_SNAN_REP { 0, 0xff80 } - -# define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 } -# define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0xfff8 } -# define _STLP_DOUBLE_SNAN_REP { 0, 0, 0, 0xfff0 } -# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x7FF0, 0 } // ???? -# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xFFF8, 0 } // ???? -# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xFFF0, 0 } // ???? -*/ -# elif defined(__DECCXX) - -# define _STLP_FLOAT_INF_REP { 0, 0x7f80 } -# define _STLP_FLOAT_QNAN_REP { 0, 0xffc0 } -# define _STLP_FLOAT_SNAN_REP { 0x5555, 0x7f85 } - -# define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 } -# define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0xfff8 } -# define _STLP_DOUBLE_SNAN_REP { 0x5555, 0x5555, 0x5555, 0x7ff5 } - -# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0, 0, 0, 0, 0x7fff } -# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0, 0, 0, 0x8000, 0xffff } -# define _STLP_LDOUBLE_SNAN_REP { 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x5555, 0x7fff} -# else -# define _STLP_FLOAT_INF_REP { 0, 0x7f80 } -# define _STLP_FLOAT_QNAN_REP { 0, 0x7fc0 } -# define _STLP_FLOAT_SNAN_REP { 0, 0x7fa0 } -# define _STLP_DOUBLE_INF_REP { 0, 0, 0, 0x7ff0 } -# define _STLP_DOUBLE_QNAN_REP { 0, 0, 0, 0x7ff8 } -# define _STLP_DOUBLE_SNAN_REP { 0, 0, 0, 0x7ff4 } -# if defined (_STLP_MSVC) || defined (__ICL) -# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x7FF0, 0 } -# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xFFF8, 0 } -# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xFFF8, 0 } -# elif defined (__BORLANDC__) -# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x8000, 0x7fff } -# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xc000, 0x7fff } -# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xa000, 0x7fff } -# else -# define _STLP_LDOUBLE_INF_REP { 0, 0, 0, 0x8000, 0x7fff, 0 } -# define _STLP_LDOUBLE_QNAN_REP { 0, 0, 0, 0xa000, 0x7fff, 0 } -# define _STLP_LDOUBLE_SNAN_REP { 0, 0, 0, 0xc000, 0x7fff, 0 } -# endif -# endif -# else -/* This is an architecture we don't know how to handle. Return some -obviously wrong values. */ -# define _STLP_FLOAT_INF_REP { 0, 0 } -# define _STLP_FLOAT_QNAN_REP { 0, 0 } -# define _STLP_FLOAT_SNAN_REP { 0, 0 } -# define _STLP_DOUBLE_INF_REP { 0, 0 } -# define _STLP_DOUBLE_QNAN_REP { 0, 0 } -# define _STLP_DOUBLE_SNAN_REP { 0, 0 } -# define _STLP_LDOUBLE_INF_REP { 0 } -# define _STLP_LDOUBLE_QNAN_REP { 0 } -# define _STLP_LDOUBLE_SNAN_REP { 0 } - -# endif - -# if 0 -/* -# if defined(_STLP_BIG_ENDIAN) - -# elif defined (_STLP_LITTLE_ENDIAN) -# else - -//This is an architecture we don't know how to handle. Return some -//obviously wrong values. -# define _STLP_FLOAT_INF_REP { 0, 0 } -# define _STLP_FLOAT_QNAN_REP { 0, 0 } -# define _STLP_FLOAT_SNAN_REP { 0, 0 } -# define _STLP_DOUBLE_INF_REP { 0, 0 } -# define _STLP_DOUBLE_QNAN_REP { 0, 0 } -# define _STLP_DOUBLE_SNAN_REP { 0, 0 } -# define _STLP_LDOUBLE_INF_REP { 0 } -# define _STLP_LDOUBLE_QNAN_REP { 0 } -# define _STLP_LDOUBLE_SNAN_REP { 0 } -# endif -*/ -# endif - -union _F_rep { - unsigned short rep[2]; - float val; -}; -union _D_rep { - unsigned short rep[4]; - double val; -}; - -# ifndef _STLP_NO_LONG_DOUBLE -union _LD_rep { - unsigned short rep[8]; - long double val; -}; -# endif - -template <class __dummy> -float _STLP_CALL _LimG<__dummy>::get_F_inf() { - _F_rep _F_inf = {_STLP_FLOAT_INF_REP}; - return _F_inf.val; -} -template <class __dummy> -float _STLP_CALL _LimG<__dummy>::get_F_qNaN() { - _F_rep _F_qNaN = {_STLP_FLOAT_QNAN_REP}; - return _F_qNaN.val; -} -template <class __dummy> -float _STLP_CALL _LimG<__dummy>::get_F_sNaN() { - _F_rep _F_sNaN = {_STLP_FLOAT_SNAN_REP}; - return _F_sNaN.val; -} - -template <class __dummy> -double _STLP_CALL _LimG<__dummy>::get_D_inf() { - _D_rep _D_inf = {_STLP_DOUBLE_INF_REP}; - return _D_inf.val; -} -template <class __dummy> -double _STLP_CALL _LimG<__dummy>::get_D_qNaN() { - _D_rep _D_qNaN = {_STLP_DOUBLE_QNAN_REP}; - return _D_qNaN.val; -} -template <class __dummy> -double _STLP_CALL _LimG<__dummy>::get_D_sNaN() { - _D_rep _D_sNaN = {_STLP_DOUBLE_SNAN_REP}; - return _D_sNaN.val; -} - -# if !defined (_STLP_NO_LONG_DOUBLE) -template <class __dummy> -long double _STLP_CALL _LimG<__dummy>::get_LD_inf() { - _LD_rep _LD_inf = {_STLP_LDOUBLE_INF_REP}; - return _LD_inf.val; -} -template <class __dummy> -long double _STLP_CALL _LimG<__dummy>::get_LD_qNaN() { - _LD_rep _LD_qNaN = {_STLP_LDOUBLE_QNAN_REP}; - return _LD_qNaN.val; -} -template <class __dummy> -long double _STLP_CALL _LimG<__dummy>::get_LD_sNaN() { - _LD_rep _LD_sNaN = {_STLP_LDOUBLE_SNAN_REP}; - return _LD_sNaN.val; -} -# endif /* _STLP_NO_LONG_DOUBLE */ - -#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */ - -#undef _STLP_LIMITS_MIN_TYPE -#undef _STLP_LIMITS_MAX_TYPE - -#undef _STLP_FLOAT_INF_REP -#undef _STLP_FLOAT_QNAN_REP -#undef _STLP_FLOAT_SNAN_REP -#undef _STLP_DOUBLE_INF_REP -#undef _STLP_DOUBLE_QNAN_REP -#undef _STLP_DOUBLE_SNAN_REP -#undef _STLP_LDOUBLE_INF_REP -#undef _STLP_LDOUBLE_QNAN_REP -#undef _STLP_LDOUBLE_SNAN_REP - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_LIMITS_C_INCLUDED */ diff --git a/WebKit/android/stlport/stl/_limits.h b/WebKit/android/stlport/stl/_limits.h deleted file mode 100644 index 0d4202d..0000000 --- a/WebKit/android/stlport/stl/_limits.h +++ /dev/null @@ -1,538 +0,0 @@ -/* - * Copyright (c) 1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This may be not portable code. Parts of numeric_limits<> are - * inherently machine-dependent. At present this file is suitable - * for the MIPS, SPARC, Alpha and ia32 architectures. - */ - -#ifndef _STLP_INTERNAL_LIMITS -#define _STLP_INTERNAL_LIMITS - -#ifndef _STLP_CLIMITS -# include <climits> -#endif - -#ifndef _STLP_CFLOAT -# include <cfloat> -#endif - -#if defined (_STLP_HAS_WCHAR_T) && !defined (_STLP_INTERNAL_CWCHAR) -# include <stl/_cwchar.h> -#endif - -_STLP_BEGIN_NAMESPACE - -enum float_round_style { - round_indeterminate = -1, - round_toward_zero = 0, - round_to_nearest = 1, - round_toward_infinity = 2, - round_toward_neg_infinity = 3 -}; - -enum float_denorm_style { - denorm_indeterminate = -1, - denorm_absent = 0, - denorm_present = 1 -}; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Base class for all specializations of numeric_limits. -template <class __number> -class _Numeric_limits_base { -public: - - static __number (_STLP_CALL min)() _STLP_NOTHROW { return __number(); } - static __number (_STLP_CALL max)() _STLP_NOTHROW { return __number(); } - -#if defined ( _STLP_STATIC_CONST_INIT_BUG) - enum { -#else - static const int -#endif - - digits = 0, - digits10 = 0, - radix = 0, - min_exponent = 0, - min_exponent10 = 0, - max_exponent = 0, - max_exponent10 = 0 - -#if defined ( _STLP_STATIC_CONST_INIT_BUG) - , - has_denorm = denorm_absent, - round_style = round_toward_zero, -#else - ; - static const float_denorm_style has_denorm = denorm_absent; - static const float_round_style round_style = round_toward_zero; - static const bool -#endif - - is_specialized = false, - is_signed = false, - is_integer = false, - is_exact = false, - has_infinity = false, - has_quiet_NaN = false, - has_signaling_NaN = false, - has_denorm_loss = false, - is_iec559 = false, - is_bounded = false, - is_modulo = false, - traps = false, - tinyness_before = false -#if defined ( _STLP_STATIC_CONST_INIT_BUG) - } -#endif - ; - - static __number _STLP_CALL epsilon() _STLP_NOTHROW { return __number(); } - static __number _STLP_CALL round_error() _STLP_NOTHROW { return __number(); } - - static __number _STLP_CALL infinity() _STLP_NOTHROW { return __number(); } - static __number _STLP_CALL quiet_NaN() _STLP_NOTHROW { return __number(); } - static __number _STLP_CALL signaling_NaN() _STLP_NOTHROW { return __number(); } - static __number _STLP_CALL denorm_min() _STLP_NOTHROW { return __number(); } -}; - -// Base class for integers. - -#ifdef _STLP_LIMITED_DEFAULT_TEMPLATES -# ifdef _STLP_LONG_LONG -# define _STLP_LIMITS_MIN_TYPE _STLP_LONG_LONG -# define _STLP_LIMITS_MAX_TYPE unsigned _STLP_LONG_LONG -# else -# define _STLP_LIMITS_MIN_TYPE long -# define _STLP_LIMITS_MAX_TYPE unsigned long -# endif -#else -# define _STLP_LIMITS_MIN_TYPE _Int -# define _STLP_LIMITS_MAX_TYPE _Int -#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */ - -template <class _Int, - _STLP_LIMITS_MIN_TYPE __imin, - _STLP_LIMITS_MAX_TYPE __imax, - int __idigits, bool __ismod> -class _Integer_limits : public _Numeric_limits_base<_Int> { -public: - - static _Int (_STLP_CALL min) () _STLP_NOTHROW { return (_Int)__imin; } - static _Int (_STLP_CALL max) () _STLP_NOTHROW { return (_Int)__imax; } - -#if defined (_STLP_STATIC_CONST_INIT_BUG) - enum { -#else - static const int -#endif - digits = (__idigits < 0) ? - ((int)((sizeof(_Int) * (CHAR_BIT))) - ((__imin == 0) ? 0 : 1)) - : (__idigits), - digits10 = (digits * 301UL) / 1000, - radix = 2 -#if !defined (_STLP_STATIC_CONST_INIT_BUG) - ; - static const bool -#else - , -#endif - is_specialized = true, - is_signed = (__imin != 0), - is_integer = true, - is_exact = true, - is_bounded = true, - is_modulo = __ismod -#if defined ( _STLP_STATIC_CONST_INIT_BUG) - } -#endif - ; -}; - -// Base class for floating-point numbers. -template <class __number, - int __Digits, int __Digits10, - int __MinExp, int __MaxExp, - int __MinExp10, int __MaxExp10, - bool __IsIEC559, - float_round_style __RoundStyle> -class _Floating_limits : public _Numeric_limits_base<__number> { -public: - -#if defined (_STLP_STATIC_CONST_INIT_BUG) - enum { -#else - static const int -#endif - - digits = __Digits, - digits10 = __Digits10, - - radix = ( FLT_RADIX /* 2 */ ), - min_exponent = __MinExp, - max_exponent = __MaxExp, - min_exponent10 = __MinExp10, - max_exponent10 = __MaxExp10 - -#if defined (_STLP_STATIC_CONST_INIT_BUG) - , - has_denorm = denorm_indeterminate, - round_style = __RoundStyle, -#else - ; - static const float_denorm_style has_denorm = denorm_indeterminate; - static const float_round_style round_style = __RoundStyle; - static const bool -#endif - - is_specialized = true, - is_signed = true, - - //IEC 559 specify the floating point representation of - //infinity, quiet and signaling Not a Number. Not supporting - //it is consider as not being able to grant those values. -#if (defined (_STLP_MSVC) && (_STLP_MSVC < 1300)) - //MSVC 6 do not fully support IEC 599 but grant a good infinity value. - has_infinity = true, -#else - has_infinity = __IsIEC559, -#endif - has_quiet_NaN = __IsIEC559, - has_signaling_NaN = __IsIEC559, - - has_denorm_loss = false, - is_iec559 = __IsIEC559, - is_bounded = true, - traps = true, - tinyness_before= false - -#if defined (_STLP_STATIC_CONST_INIT_BUG) - } -#endif - ; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -// Class numeric_limits - -// The unspecialized class. - -template<class _Tp> -class numeric_limits : public _STLP_PRIV _Numeric_limits_base<_Tp> {}; - -// Specializations for all built-in integral types. - -#if !defined (_STLP_NO_BOOL) -_STLP_TEMPLATE_NULL -class numeric_limits<bool> - : public _STLP_PRIV _Integer_limits<bool, false, true, 1, false> -{}; -#endif /* _STLP_NO_BOOL */ - -_STLP_TEMPLATE_NULL -class numeric_limits<char> - : public _STLP_PRIV _Integer_limits<char, CHAR_MIN, CHAR_MAX, -1, true> -{}; - -#if !defined (_STLP_NO_SIGNED_BUILTINS) -_STLP_TEMPLATE_NULL -class numeric_limits<signed char> - : public _STLP_PRIV _Integer_limits<signed char, SCHAR_MIN, SCHAR_MAX, -1, true> -{}; -#endif - -_STLP_TEMPLATE_NULL -class numeric_limits<unsigned char> - : public _STLP_PRIV _Integer_limits<unsigned char, 0, UCHAR_MAX, -1, true> -{}; - -#if !(defined (_STLP_NO_WCHAR_T) || defined (_STLP_WCHAR_T_IS_USHORT)) - -_STLP_TEMPLATE_NULL -class numeric_limits<wchar_t> - : public _STLP_PRIV _Integer_limits<wchar_t, WCHAR_MIN, WCHAR_MAX, -1, true> -{}; - -#endif - -_STLP_TEMPLATE_NULL -class numeric_limits<short> - : public _STLP_PRIV _Integer_limits<short, SHRT_MIN, SHRT_MAX, -1, true> -{}; - -_STLP_TEMPLATE_NULL -class numeric_limits<unsigned short> - : public _STLP_PRIV _Integer_limits<unsigned short, 0, USHRT_MAX, -1, true> -{}; - -#if defined (__xlC__) && (__xlC__ == 0x500) -# undef INT_MIN -# define INT_MIN -2147483648 -#endif - -_STLP_TEMPLATE_NULL -class numeric_limits<int> - : public _STLP_PRIV _Integer_limits<int, INT_MIN, INT_MAX, -1, true> -{}; - -_STLP_TEMPLATE_NULL -class numeric_limits<unsigned int> - : public _STLP_PRIV _Integer_limits<unsigned int, 0, UINT_MAX, -1, true> -{}; - -_STLP_TEMPLATE_NULL -class numeric_limits<long> - : public _STLP_PRIV _Integer_limits<long, LONG_MIN, LONG_MAX, -1, true> -{}; - -_STLP_TEMPLATE_NULL -class numeric_limits<unsigned long> - : public _STLP_PRIV _Integer_limits<unsigned long, 0, ULONG_MAX, -1, true> -{}; - -#if defined (_STLP_LONG_LONG) - -# if defined (_STLP_MSVC) || defined (__BORLANDC__) -# define LONGLONG_MAX 0x7fffffffffffffffi64 -# define LONGLONG_MIN (-LONGLONG_MAX-1i64) -# define ULONGLONG_MAX 0xffffffffffffffffUi64 -# else -# ifndef LONGLONG_MAX -# define LONGLONG_MAX 0x7fffffffffffffffLL -# endif -# ifndef LONGLONG_MIN -# define LONGLONG_MIN (-LONGLONG_MAX-1LL) -# endif -# ifndef ULONGLONG_MAX -# define ULONGLONG_MAX 0xffffffffffffffffULL -# endif -# endif - -# if !defined(__GNUC__) || (__GNUC__ == 2 && __GNUC_MINOR__ <= 96) - -_STLP_TEMPLATE_NULL -class numeric_limits<_STLP_LONG_LONG> - : public _STLP_PRIV _Integer_limits<_STLP_LONG_LONG, LONGLONG_MIN, LONGLONG_MAX, -1, true> -{}; - -_STLP_TEMPLATE_NULL -class numeric_limits<unsigned _STLP_LONG_LONG> - : public _STLP_PRIV _Integer_limits<unsigned _STLP_LONG_LONG, 0, ULONGLONG_MAX, -1, true> -{}; -# else /* gcc 2.97 (after 2000-11-01), 2.98, 3.0 */ -/* - newest gcc has new mangling scheme, that has problem - with generating name [instantiated] of template specialization like - _Integer_limits<_STLP_LONG_LONG, LONGLONG_MIN, LONGLONG_MAX, -1, true> - ~~~~~~~~~~~~ ~~~~~~~~~~~~ - Below is code that solve this problem. - - ptr - */ -_STLP_TEMPLATE_NULL -class numeric_limits<_STLP_LONG_LONG> - : public _STLP_PRIV _Numeric_limits_base<_STLP_LONG_LONG> { -public: - - static _STLP_LONG_LONG (_STLP_CALL min) () _STLP_NOTHROW { return LONGLONG_MIN; } - static _STLP_LONG_LONG (_STLP_CALL max) () _STLP_NOTHROW { return LONGLONG_MAX; } - -# if defined ( _STLP_STATIC_CONST_INIT_BUG) - enum { -# else - static const int -# endif - digits = ((int)((sizeof(_STLP_LONG_LONG) * (CHAR_BIT))) - 1), - digits10 = (digits * 301UL) / 1000, - radix = 2 -# if ! defined (_STLP_STATIC_CONST_INIT_BUG) - ; - static const bool -# else - , -# endif - is_specialized = true, - is_signed = true, - is_integer = true, - is_exact = true, - is_bounded = true, - is_modulo = true -# if defined (_STLP_STATIC_CONST_INIT_BUG) - } -# endif - ; -}; - -_STLP_TEMPLATE_NULL -class numeric_limits<unsigned _STLP_LONG_LONG> - : public _STLP_PRIV _Numeric_limits_base<unsigned _STLP_LONG_LONG> { -public: - - static unsigned _STLP_LONG_LONG (_STLP_CALL min) () _STLP_NOTHROW { return 0ULL; } - static unsigned _STLP_LONG_LONG (_STLP_CALL max) () _STLP_NOTHROW { return ULONGLONG_MAX; } - -# if defined (_STLP_STATIC_CONST_INIT_BUG) - enum { -# else - static const int -# endif - digits = ((int)((sizeof(unsigned _STLP_LONG_LONG) * (CHAR_BIT)))), - digits10 = (digits * 301UL) / 1000, - radix = 2 -# if ! defined (_STLP_STATIC_CONST_INIT_BUG) - ; - static const bool -# else - , -# endif - is_specialized = true, - is_signed = false, - is_integer = true, - is_exact = true, - is_bounded = true, - is_modulo = true -# if defined ( _STLP_STATIC_CONST_INIT_BUG) - } -# endif - ; -}; - -# endif /* __GNUC__ > 2000-11-01 */ - -#endif /* _STLP_LONG_LONG */ - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Specializations for all built-in floating-point types. -template <class __dummy> -class _LimG { -public: - static float _STLP_CALL get_F_inf(); - static float _STLP_CALL get_F_qNaN(); - static float _STLP_CALL get_F_sNaN(); - static double _STLP_CALL get_D_inf(); - static double _STLP_CALL get_D_qNaN(); - static double _STLP_CALL get_D_sNaN(); - -#if !defined (_STLP_NO_LONG_DOUBLE) - static long double _STLP_CALL get_LD_inf(); - static long double _STLP_CALL get_LD_qNaN(); - static long double _STLP_CALL get_LD_sNaN(); -#endif -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _LimG<bool>; -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_TEMPLATE_NULL -class numeric_limits<float> - : public _STLP_PRIV _Floating_limits<float, - FLT_MANT_DIG, // Binary digits of precision - FLT_DIG, // Decimal digits of precision - FLT_MIN_EXP, // Minimum exponent - FLT_MAX_EXP, // Maximum exponent - FLT_MIN_10_EXP, // Minimum base 10 exponent - FLT_MAX_10_EXP, // Maximum base 10 exponent -#if defined (_STLP_NO_IEC559_SUPPORT) - false, // do not conform to iec559 -#else - true, // conforms to iec559 -#endif - round_to_nearest> { -public: - static float (_STLP_CALL min) () _STLP_NOTHROW { return FLT_MIN; } - static float _STLP_CALL denorm_min() _STLP_NOTHROW { return FLT_MIN; } - static float (_STLP_CALL max) () _STLP_NOTHROW { _STLP_USING_VENDOR_CSTD return FLT_MAX; } - static float _STLP_CALL epsilon() _STLP_NOTHROW { return FLT_EPSILON; } - static float _STLP_CALL round_error() _STLP_NOTHROW { return 0.5f; } // Units: ulps. - static float _STLP_CALL infinity() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_F_inf(); } - static float _STLP_CALL quiet_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_F_qNaN(); } - static float _STLP_CALL signaling_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_F_sNaN(); } -}; - -_STLP_TEMPLATE_NULL -class numeric_limits<double> - : public _STLP_PRIV _Floating_limits<double, - DBL_MANT_DIG, // Binary digits of precision - DBL_DIG, // Decimal digits of precision - DBL_MIN_EXP, // Minimum exponent - DBL_MAX_EXP, // Maximum exponent - DBL_MIN_10_EXP, // Minimum base 10 exponent - DBL_MAX_10_EXP, // Maximum base 10 exponent -#if defined (_STLP_NO_IEC559_SUPPORT) - false, // do not conform to iec559 -#else - true, // conforms to iec559 -#endif - round_to_nearest> { -public: - static double (_STLP_CALL min)() _STLP_NOTHROW { return DBL_MIN; } - static double _STLP_CALL denorm_min() _STLP_NOTHROW { return DBL_MIN; } - static double (_STLP_CALL max)() _STLP_NOTHROW { _STLP_USING_VENDOR_CSTD return DBL_MAX; } - static double _STLP_CALL epsilon() _STLP_NOTHROW { return DBL_EPSILON; } - static double _STLP_CALL round_error() _STLP_NOTHROW { return 0.5; } // Units: ulps. - static double _STLP_CALL infinity() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_D_inf(); } - static double _STLP_CALL quiet_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_D_qNaN(); } - static double _STLP_CALL signaling_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_D_sNaN(); } -}; - -#if !defined (_STLP_NO_LONG_DOUBLE) - -_STLP_TEMPLATE_NULL -class numeric_limits<long double> - : public _STLP_PRIV _Floating_limits<long double, - LDBL_MANT_DIG, // Binary digits of precision - LDBL_DIG, // Decimal digits of precision - LDBL_MIN_EXP, // Minimum exponent - LDBL_MAX_EXP, // Maximum exponent - LDBL_MIN_10_EXP,// Minimum base 10 exponent - LDBL_MAX_10_EXP,// Maximum base 10 exponent - false, // do not conform to iec559 - round_to_nearest> { -public: - static long double (_STLP_CALL min) () _STLP_NOTHROW { _STLP_USING_VENDOR_CSTD return LDBL_MIN; } - static long double _STLP_CALL denorm_min() _STLP_NOTHROW { _STLP_USING_VENDOR_CSTD return LDBL_MIN; } - static long double (_STLP_CALL max) () _STLP_NOTHROW { _STLP_USING_VENDOR_CSTD return LDBL_MAX; } - static long double _STLP_CALL epsilon() _STLP_NOTHROW { return LDBL_EPSILON; } - static long double _STLP_CALL round_error() _STLP_NOTHROW { return 4; } // Units: ulps. - static long double _STLP_CALL infinity() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_LD_inf(); } - static long double _STLP_CALL quiet_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_LD_qNaN(); } - static long double _STLP_CALL signaling_NaN() _STLP_NOTHROW { return _STLP_PRIV _LimG<bool>::get_LD_sNaN(); } -}; - -#endif - -// We write special values (Inf and NaN) as bit patterns and -// cast the the appropriate floating-point types. -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_limits.c> -#endif - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_list.c b/WebKit/android/stlport/stl/_list.c deleted file mode 100644 index a1376c2..0000000 --- a/WebKit/android/stlport/stl/_list.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_LIST_C -#define _STLP_LIST_C - -#ifndef _STLP_INTERNAL_LIST_H -# include <stl/_list.h> -#endif - -#ifndef _STLP_CARRAY_H -# include <stl/_carray.h> -#endif - -#ifndef _STLP_RANGE_ERRORS_H -# include <stl/_range_errors.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) -template <class _Dummy> -void _STLP_CALL -_List_global<_Dummy>::_Transfer(_List_node_base* __position, - _List_node_base* __first, _List_node_base* __last) { - if (__position != __last) { - // Remove [first, last) from its old position. - __last->_M_prev->_M_next = __position; - __first->_M_prev->_M_next = __last; - __position->_M_prev->_M_next = __first; - - // Splice [first, last) into its new position. - _Node_base* __tmp = __position->_M_prev; - __position->_M_prev = __last->_M_prev; - __last->_M_prev = __first->_M_prev; - __first->_M_prev = __tmp; - } -} -#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */ - -template <class _Tp, class _Alloc> -void _List_base<_Tp,_Alloc>::clear() { - _Node* __cur = __STATIC_CAST(_Node*, _M_node._M_data._M_next); - while (__cur != &(_M_node._M_data)) { - _Node* __tmp = __cur; - __cur = __STATIC_CAST(_Node*, __cur->_M_next); - _STLP_STD::_Destroy(&__tmp->_M_data); - this->_M_node.deallocate(__tmp, 1); - } - _M_node._M_data._M_next = &_M_node._M_data; - _M_node._M_data._M_prev = &_M_node._M_data; -} - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# define size_type size_t -#endif - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define list _STLP_PTR_IMPL_NAME(list) -#elif defined (_STLP_DEBUG) -# define list _STLP_NON_DBG_NAME(list) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, class _Alloc> -void list<_Tp, _Alloc>::resize(size_type __new_size, const _Tp& __x) { - iterator __i = begin(); - size_type __len = 0; - for ( ; __i != end() && __len < __new_size; ++__i, ++__len); - - if (__len == __new_size) - erase(__i, end()); - else // __i == end() - insert(end(), __new_size - __len, __x); -} - -template <class _Tp, class _Alloc> -list<_Tp, _Alloc>& list<_Tp, _Alloc>::operator=(const list<_Tp, _Alloc>& __x) { - if (this != &__x) { - iterator __first1 = begin(); - iterator __last1 = end(); - const_iterator __first2 = __x.begin(); - const_iterator __last2 = __x.end(); - while (__first1 != __last1 && __first2 != __last2) - *__first1++ = *__first2++; - if (__first2 == __last2) - erase(__first1, __last1); - else - insert(__last1, __first2, __last2); - } - return *this; -} - -template <class _Tp, class _Alloc> -void list<_Tp, _Alloc>::_M_fill_assign(size_type __n, const _Tp& __val) { - iterator __i = begin(); - for ( ; __i != end() && __n > 0; ++__i, --__n) - *__i = __val; - if (__n > 0) - insert(end(), __n, __val); - else - erase(__i, end()); -} - -#if !defined (list) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _Tp, class _Alloc, class _Predicate> -void _S_remove_if(list<_Tp, _Alloc>& __that, _Predicate __pred) { - typedef typename list<_Tp, _Alloc>::iterator _Literator; - _Literator __first = __that.begin(); - _Literator __last = __that.end(); - while (__first != __last) { - _Literator __next = __first; - ++__next; - if (__pred(*__first)) __that.erase(__first); - __first = __next; - } -} - -template <class _Tp, class _Alloc, class _BinaryPredicate> -void _S_unique(list<_Tp, _Alloc>& __that, _BinaryPredicate __binary_pred) { - typedef typename list<_Tp, _Alloc>::iterator _Literator; - _Literator __first = __that.begin(); - _Literator __last = __that.end(); - if (__first == __last) return; - _Literator __next = __first; - while (++__next != __last) { - if (__binary_pred(*__first, *__next)) - __that.erase(__next); - else - __first = __next; - __next = __first; - } -} - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _S_merge(list<_Tp, _Alloc>& __that, list<_Tp, _Alloc>& __x, - _StrictWeakOrdering __comp) { - typedef typename list<_Tp, _Alloc>::iterator _Literator; - _Literator __first1 = __that.begin(); - _Literator __last1 = __that.end(); - _Literator __first2 = __x.begin(); - _Literator __last2 = __x.end(); - if (__that.get_allocator() == __x.get_allocator()) { - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first2, *__first1)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - _Literator __next = __first2; - _List_global_inst::_Transfer(__first1._M_node, __first2._M_node, (++__next)._M_node); - __first2 = __next; - } - else - ++__first1; - } - if (__first2 != __last2) - _List_global_inst::_Transfer(__last1._M_node, __first2._M_node, __last2._M_node); - } - else { - while (__first1 != __last1 && __first2 != __last2) { - if (__comp(*__first2, *__first1)) { - _STLP_VERBOSE_ASSERT(!__comp(*__first1, *__first2), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __first1 = __that.insert(__first1, *__first2); - } - else - ++__first1; - } - if (__first2 != __last2) { - __that.insert(__first1, __first2, __last2); - } - __x.clear(); - } -} - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _S_sort(list<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp) { - // Do nothing if the list has length 0 or 1. - if (__that._M_node._M_data._M_next == &__that._M_node._M_data || - __that._M_node._M_data._M_next->_M_next == &__that._M_node._M_data) - return; - - list<_Tp, _Alloc> __carry(__that.get_allocator()); - const int NB = 64; - _STLP_PRIV _CArray<list<_Tp, _Alloc>, NB> __counter(__carry); - int __fill = 0; - while (!__that.empty()) { - __carry.splice(__carry.begin(), __that, __that.begin()); - int __i = 0; - while (__i < __fill && !__counter[__i].empty()) { - _S_merge(__counter[__i], __carry, __comp); - __carry.swap(__counter[__i++]); - } - __carry.swap(__counter[__i]); - if (__i == __fill) { - ++__fill; - if (__fill >= NB) { - //Looks like the list has too many elements to be sorted with this algorithm: - __stl_throw_overflow_error("list::sort"); - } - } - } - - for (int __i = 1; __i < __fill; ++__i) - _S_merge(__counter[__i], __counter[__i - 1], __comp); - __that.swap(__counter[__fill - 1]); -} - -#if defined (list) -# undef list -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_LIST_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_list.h b/WebKit/android/stlport/stl/_list.h deleted file mode 100644 index d7fb9ba..0000000 --- a/WebKit/android/stlport/stl/_list.h +++ /dev/null @@ -1,732 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_LIST_IMPL_H -#define _STLP_INTERNAL_LIST_IMPL_H - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -struct _List_node_base { - _List_node_base* _M_next; - _List_node_base* _M_prev; -}; - -template <class _Dummy> -class _List_global { -public: - typedef _List_node_base _Node_base; - static void _STLP_CALL _Transfer(_Node_base* __pos, - _Node_base* __first, _Node_base* __last); -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _List_global<bool>; -#endif -typedef _List_global<bool> _List_global_inst; - -template <class _Tp> -class _List_node : public _List_node_base { -public: - _Tp _M_data; - __TRIVIAL_STUFF(_List_node) -}; - -struct _List_iterator_base { - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef bidirectional_iterator_tag iterator_category; - - _List_node_base* _M_node; - - _List_iterator_base(_List_node_base* __x) : _M_node(__x) {} - - void _M_incr() { _M_node = _M_node->_M_next; } - void _M_decr() { _M_node = _M_node->_M_prev; } -}; - - -template<class _Tp, class _Traits> -struct _List_iterator : public _List_iterator_base { - typedef _Tp value_type; - typedef typename _Traits::pointer pointer; - typedef typename _Traits::reference reference; - - typedef _List_iterator<_Tp, _Traits> _Self; - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef _List_iterator<_Tp, _NonConstTraits> iterator; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef _List_iterator<_Tp, _ConstTraits> const_iterator; - - typedef bidirectional_iterator_tag iterator_category; - typedef _List_node<_Tp> _Node; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - - explicit _List_iterator(_List_node_base* __x) : _List_iterator_base(__x) {} - _List_iterator() : _List_iterator_base(0) {} - //copy constructor for iterator and constructor from iterator for const_iterator - _List_iterator(const iterator& __x) : _List_iterator_base(__x._M_node) {} - - reference operator*() const { return __STATIC_CAST(_Node*, this->_M_node)->_M_data; } - - _STLP_DEFINE_ARROW_OPERATOR - - _Self& operator++() { - this->_M_incr(); - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - this->_M_incr(); - return __tmp; - } - _Self& operator--() { - this->_M_decr(); - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - this->_M_decr(); - return __tmp; - } - bool operator==(const_iterator __y ) const { - return this->_M_node == __y._M_node; - } - bool operator!=(const_iterator __y ) const { - return this->_M_node != __y._M_node; - } -}; - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Tp, class _Traits> -struct __type_traits<_STLP_PRIV _List_iterator<_Tp, _Traits> > { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Tp, class _Traits> -inline _Tp* value_type(const _STLP_PRIV _List_iterator<_Tp, _Traits>&) { return 0; } -inline bidirectional_iterator_tag iterator_category(const _STLP_PRIV _List_iterator_base&) { return bidirectional_iterator_tag();} -inline ptrdiff_t* distance_type(const _STLP_PRIV _List_iterator_base&) { return 0; } -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -// Base class that encapsulates details of allocators and helps -// to simplify EH - -template <class _Tp, class _Alloc> -class _List_base { -protected: - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef _List_node_base _Node_base; - typedef _List_node<_Tp> _Node; - typedef _List_base<_Tp, _Alloc> _Self; - typedef typename _Alloc_traits<_Node, _Alloc>::allocator_type _Node_allocator_type; -public: - typedef _STLP_alloc_proxy<_Node_base, _Node, _Node_allocator_type> _AllocProxy; - typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; - - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR((const _Node_allocator_type&)_M_node, _Tp); } - - _List_base(const allocator_type& __a) : _M_node(_STLP_CONVERT_ALLOCATOR(__a, _Node), _Node_base()) - { _M_empty_initialize(); } - _List_base(__move_source<_Self> src) : - _M_node(__move_source<_AllocProxy>(src.get()._M_node)) { - if (src.get().empty()) - //We force this to empty. - _M_empty_initialize(); - else { - src.get()._M_empty_initialize(); - _M_node._M_data._M_prev->_M_next = _M_node._M_data._M_next->_M_prev = &_M_node._M_data; - } - } - - ~_List_base() - { clear(); } - - void clear(); - bool empty() const { return _M_node._M_data._M_next == &_M_node._M_data; } - - void _M_empty_initialize() { - _M_node._M_data._M_next = &_M_node._M_data; - _M_node._M_data._M_prev = _M_node._M_data._M_next; - } - -public: - _AllocProxy _M_node; -}; - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define list _STLP_PTR_IMPL_NAME(list) -#elif defined (_STLP_DEBUG) -# define list _STLP_NON_DBG_NAME(list) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class list; - -#if !defined (list) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -// helper functions to reduce code duplication -template <class _Tp, class _Alloc, class _Predicate> -void _S_remove_if(list<_Tp, _Alloc>& __that, _Predicate __pred); - -template <class _Tp, class _Alloc, class _BinaryPredicate> -void _S_unique(list<_Tp, _Alloc>& __that, _BinaryPredicate __binary_pred); - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _S_merge(list<_Tp, _Alloc>& __that, list<_Tp, _Alloc>& __x, - _StrictWeakOrdering __comp); - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _S_sort(list<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp); - -#if !defined (list) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, class _Alloc> -class list : public _STLP_PRIV _List_base<_Tp, _Alloc> -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (list) - , public __stlport_class<list<_Tp, _Alloc> > -#endif -{ - typedef _STLP_PRIV _List_base<_Tp, _Alloc> _Base; - typedef list<_Tp, _Alloc> _Self; - typedef _STLP_PRIV _List_node<_Tp> _Node; - typedef _STLP_PRIV _List_node_base _Node_base; -public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Base::allocator_type allocator_type; - typedef bidirectional_iterator_tag _Iterator_category; - -public: - typedef _STLP_PRIV _List_iterator<_Tp, _Nonconst_traits<_Tp> > iterator; - typedef _STLP_PRIV _List_iterator<_Tp, _Const_traits<_Tp> > const_iterator; - _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS; - -protected: -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - _Node_base* _M_create_node(const_reference __x = value_type()) { -#else - _Node_base* _M_create_node(const_reference __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM*/ - _Node* __p = this->_M_node.allocate(1); - _STLP_TRY { - _Copy_Construct(&__p->_M_data, __x); - } - _STLP_UNWIND(this->_M_node.deallocate(__p, 1)) - return __p; - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - _Node_base* _M_create_node() { - _Node* __p = this->_M_node.allocate(1); - _STLP_TRY { - _STLP_STD::_Construct(&__p->_M_data); - } - _STLP_UNWIND(this->_M_node.deallocate(__p, 1)) - return __p; - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -public: -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit list(size_type __n, const_reference __val = _STLP_DEFAULT_CONSTRUCTED(value_type), - const allocator_type& __a = allocator_type()) -#else - explicit list(size_type __n) - : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type()) - { this->insert(begin(), __n, _STLP_DEFAULT_CONSTRUCTED(value_type)); } - list(size_type __n, const_reference __val) - : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type()) - { this->insert(begin(), __n, __val); } - list(size_type __n, const_reference __val, const allocator_type& __a) -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - : _STLP_PRIV _List_base<_Tp, _Alloc>(__a) - { this->insert(begin(), __n, __val); } - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because insert does all of - // that anyway. - template <class _InputIterator> - list(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_PRIV _List_base<_Tp, _Alloc>(__a) - { _M_insert(begin(), __first, __last); } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - list(_InputIterator __first, _InputIterator __last) - : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type()) - { _M_insert(begin(), __first, __last); } -# endif -#else /* _STLP_MEMBER_TEMPLATES */ - list(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _List_base<_Tp, _Alloc>(__a) - { _M_insert(begin(), __first, __last); } - list(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _List_base<_Tp, _Alloc>(__a) - { _M_insert(begin(), __first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit list(const allocator_type& __a = allocator_type()) -#else - list() - : _STLP_PRIV _List_base<_Tp, _Alloc>(allocator_type()) {} - list(const allocator_type& __a) -#endif - : _STLP_PRIV _List_base<_Tp, _Alloc>(__a) {} - - list(const _Self& __x) : _STLP_PRIV _List_base<_Tp, _Alloc>(__x.get_allocator()) - { _M_insert(begin(), __x.begin(), __x.end()); } - - list(__move_source<_Self> src) - : _STLP_PRIV _List_base<_Tp, _Alloc>(__move_source<_Base>(src.get())) {} - - ~list() {} - - _Self& operator = (const _Self& __x); - - iterator begin() { return iterator(this->_M_node._M_data._M_next); } - const_iterator begin() const { return const_iterator(this->_M_node._M_data._M_next); } - - iterator end() { return iterator(&this->_M_node._M_data); } - const_iterator end() const { return const_iterator(__CONST_CAST(_Node_base*, &this->_M_node._M_data)); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - size_type size() const { - size_type __result = distance(begin(), end()); - return __result; - } - size_type max_size() const { return size_type(-1); } - - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(--end()); } - const_reference back() const { return *(--end()); } - -private: - void _M_swap_aux(_Self& __x) { - __x._M_node._M_swap_alloc(this->_M_node); - __x._M_node._M_data._M_next = this->_M_node._M_data._M_next; - __x._M_node._M_data._M_next->_M_prev = &__x._M_node._M_data; - __x._M_node._M_data._M_prev = this->_M_node._M_data._M_prev; - __x._M_node._M_data._M_prev->_M_next = &__x._M_node._M_data; - this->_M_empty_initialize(); - } - -public: - void swap(_Self& __x) { - if (__x.empty()) { - if (this->empty()) { - return; - } - this->_M_swap_aux(__x); - } else if (this->empty()) { - __x._M_swap_aux(*this); - } else { - this->_M_node.swap(__x._M_node); - _STLP_STD::swap(this->_M_node._M_data._M_prev->_M_next, __x._M_node._M_data._M_prev->_M_next); - _STLP_STD::swap(this->_M_node._M_data._M_next->_M_prev, __x._M_node._M_data._M_next->_M_prev); - } - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const_reference __x = value_type()) { -#else - iterator insert(iterator __pos, const_reference __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - _Node_base* __tmp = _M_create_node(__x); - _Node_base* __n = __pos._M_node; - _Node_base* __p = __n->_M_prev; - __tmp->_M_next = __n; - __tmp->_M_prev = __p; - __p->_M_next = __tmp; - __n->_M_prev = __tmp; - return iterator(__tmp); - } - -private: -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void _M_insert(iterator __pos, _InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__pos, __first, __last, _Integral()); - } - - // Check whether it's an integral type. If so, it's not an iterator. - template<class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, - const __true_type& /*_IsIntegral*/) { - _M_fill_insert(__pos, __n, __x); - } - template <class _InputIter> - void _M_insert_dispatch(iterator __pos, - _InputIter __first, _InputIter __last, - const __false_type& /*_IsIntegral*/) { -#else /* _STLP_MEMBER_TEMPLATES */ - void _M_insert(iterator __pos, const value_type* __first, const value_type* __last) { - for (; __first != __last; ++__first) - insert(__pos, *__first); - } - void _M_insert(iterator __pos, const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - //We use a temporary list to avoid the auto reference troubles (infinite loop) - for (; __first != __last; ++__first) - insert(__pos, *__first); - } - -public: -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_splice_insert_dispatch(__pos, __first, __last, _Integral()); - } - -private: - // Check whether it's an integral type. If so, it's not an iterator. - template<class _Integer> - void _M_splice_insert_dispatch(iterator __pos, _Integer __n, _Integer __x, - const __true_type& /*_IsIntegral*/) { - _M_fill_insert(__pos, __n, __x); - } - template <class _InputIter> - void _M_splice_insert_dispatch(iterator __pos, - _InputIter __first, _InputIter __last, - const __false_type& /*_IsIntegral*/) { -#else /* _STLP_MEMBER_TEMPLATES */ - void insert(iterator __pos, const value_type* __first, const value_type* __last) { - _Self __tmp(__first, __last, this->get_allocator()); - splice(__pos, __tmp); - } - void insert(iterator __pos, const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - //We use a temporary list to avoid the auto reference troubles (infinite loop) - _Self __tmp(__first, __last, this->get_allocator()); - splice(__pos, __tmp); - } - -public: - void insert(iterator __pos, size_type __n, const_reference __x) - { _M_fill_insert(__pos, __n, __x); } - -private: - void _M_fill_insert(iterator __pos, size_type __n, const_reference __x) { - for ( ; __n > 0; --__n) - insert(__pos, __x); - } - -public: - void push_front(const_reference __x) { insert(begin(), __x); } - void push_back (const_reference __x) { insert(end(), __x); } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos) - { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(value_type)); } - void push_front() {insert(begin());} - void push_back() {insert(end());} -# endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - iterator erase(iterator __pos) { - _Node_base* __next_node = __pos._M_node->_M_next; - _Node_base* __prev_node = __pos._M_node->_M_prev; - _Node* __n = __STATIC_CAST(_Node*, __pos._M_node); - __prev_node->_M_next = __next_node; - __next_node->_M_prev = __prev_node; - _STLP_STD::_Destroy(&__n->_M_data); - this->_M_node.deallocate(__n, 1); - return iterator(__next_node); - } - - iterator erase(iterator __first, iterator __last) { - while (__first != __last) - erase(__first++); - return __last; - } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const_reference __x = value_type()); -#else - void resize(size_type __new_size, const_reference __x); - void resize(size_type __new_size) - { this->resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(value_type)); } -#endif /*!_STLP_DONT_SUP_DFLT_PARAM*/ - - void pop_front() { erase(begin()); } - void pop_back() { - iterator __tmp = end(); - erase(--__tmp); - } - -public: - // assign(), a generalized assignment member function. Two - // versions: one that takes a count, and one that takes a range. - // The range version is a member template, so we dispatch on whether - // or not the type is an integer. - - void assign(size_type __n, const_reference __val) { _M_fill_assign(__n, __val); } - - void _M_fill_assign(size_type __n, const_reference __val); - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } - - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) { - _M_fill_assign(__n, __val); - } - - template <class _InputIterator> - void _M_assign_dispatch(_InputIterator __first2, _InputIterator __last2, - const __false_type& /*_IsIntegral*/) { -#else - void assign(const value_type *__first2, const value_type *__last2) { - iterator __first1 = begin(); - iterator __last1 = end(); - for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2) - *__first1 = *__first2; - if (__first2 == __last2) - erase(__first1, __last1); - else - insert(__last1, __first2, __last2); - } - void assign(const_iterator __first2, const_iterator __last2) { -#endif /* _STLP_MEMBER_TEMPLATES */ - iterator __first1 = begin(); - iterator __last1 = end(); - for ( ; __first1 != __last1 && __first2 != __last2; ++__first1, ++__first2) - *__first1 = *__first2; - if (__first2 == __last2) - erase(__first1, __last1); - else - insert(__last1, __first2, __last2); - } - -public: - void splice(iterator __pos, _Self& __x) { - if (!__x.empty()) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _List_global_inst::_Transfer(__pos._M_node, __x.begin()._M_node, __x.end()._M_node); - } - else { - insert(__pos, __x.begin(), __x.end()); - __x.clear(); - } - } - } - void splice(iterator __pos, _Self& __x, iterator __i) { - iterator __j = __i; - ++__j; - if (__pos == __i || __pos == __j) return; - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _List_global_inst::_Transfer(__pos._M_node, __i._M_node, __j._M_node); - } - else { - insert(__pos, *__i); - __x.erase(__i); - } - } - void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) { - if (__first != __last) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _List_global_inst::_Transfer(__pos._M_node, __first._M_node, __last._M_node); - } - else { - insert(__pos, __first, __last); - __x.erase(__first, __last); - } - } - } - - void remove(const_reference __val) { - iterator __first = begin(); - iterator __last = end(); - while (__first != __last) { - iterator __next = __first; - ++__next; - if (__val == *__first) erase(__first); - __first = __next; - } - } - - void unique() - { _STLP_PRIV _S_unique(*this, equal_to<value_type>()); } - - void merge(_Self& __x) - { _STLP_PRIV _S_merge(*this, __x, less<value_type>()); } - - void reverse() { - _Node_base* __p = &this->_M_node._M_data; - _Node_base* __tmp = __p; - do { - _STLP_STD::swap(__tmp->_M_next, __tmp->_M_prev); - __tmp = __tmp->_M_prev; // Old next node is now prev. - } while (__tmp != __p); - } - - void sort() - { _STLP_PRIV _S_sort(*this, less<value_type>()); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Predicate> - void remove_if(_Predicate __pred) - { _STLP_PRIV _S_remove_if(*this, __pred); } - template <class _BinaryPredicate> - void unique(_BinaryPredicate __binary_pred) - { _STLP_PRIV _S_unique(*this, __binary_pred); } - - template <class _StrictWeakOrdering> - void merge(_Self& __x, - _StrictWeakOrdering __comp) { - _STLP_PRIV _S_merge(*this, __x, __comp); - } - - template <class _StrictWeakOrdering> - void sort(_StrictWeakOrdering __comp) - { _STLP_PRIV _S_sort(*this, __comp); } -#endif /* _STLP_MEMBER_TEMPLATES */ -}; - -#if defined (list) -# undef list -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_list.c> -#endif - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# include <stl/pointers/_list.h> -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_list.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp, class _Alloc> -_STLP_INLINE_LOOP bool _STLP_CALL -operator==(const list<_Tp,_Alloc>& __x, const list<_Tp,_Alloc>& __y) { - typedef typename list<_Tp,_Alloc>::const_iterator const_iterator; - const_iterator __end1 = __x.end(); - const_iterator __end2 = __y.end(); - - const_iterator __i1 = __x.begin(); - const_iterator __i2 = __y.begin(); - while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) { - ++__i1; - ++__i2; - } - return __i1 == __end1 && __i2 == __end2; -} - -#define _STLP_EQUAL_OPERATOR_SPECIALIZED -#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER list<_Tp, _Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER -#undef _STLP_EQUAL_OPERATOR_SPECIALIZED - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp, class _Alloc> -struct __move_traits<list<_Tp, _Alloc> > { - typedef __stlp_movable implemented; - typedef typename __move_traits<_Alloc>::complete complete; -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_LIST_IMPL_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_locale.h b/WebKit/android/stlport/stl/_locale.h deleted file mode 100644 index 454fa43..0000000 --- a/WebKit/android/stlport/stl/_locale.h +++ /dev/null @@ -1,325 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_LOCALE_H -#define _STLP_INTERNAL_LOCALE_H - -#ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -#endif - -#ifndef _STLP_INTERNAL_CWCHAR -# include <stl/_cwchar.h> -#endif - -#ifndef _STLP_INTERNAL_THREADS_H -# include <stl/_threads.h> -#endif - -#ifndef _STLP_STRING_FWD_H -# include <stl/_string_fwd.h> -#endif - -_STLP_BEGIN_NAMESPACE - -class _Locale_impl; // Forward declaration of opaque type. -class ios_base; -class locale; - -template <class _CharT, class _Traits, class _Alloc> -bool __locale_do_operator_call (const locale& __loc, - const basic_string<_CharT, _Traits, _Alloc>& __x, - const basic_string<_CharT, _Traits, _Alloc>& __y); - -_STLP_DECLSPEC _Locale_impl * _STLP_CALL _get_Locale_impl( _Locale_impl *locimpl ); -_STLP_DECLSPEC _Locale_impl * _STLP_CALL _copy_Nameless_Locale_impl( _Locale_impl *locimpl ); - -template <class _Facet> -bool _HasFacet(const locale& __loc, const _Facet* __facet) _STLP_NOTHROW; - -template <class _Facet> -_Facet* _UseFacet(const locale& __loc, const _Facet* __facet); - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -# define locale _STLP_NO_MEM_T_NAME(loc) -#endif - -class _STLP_CLASS_DECLSPEC locale { -public: - // types: - class _STLP_CLASS_DECLSPEC facet : protected _Refcount_Base { - protected: - /* Here we filter __init_count user value to 0 or 1 because __init_count is a - * size_t instance and _Refcount_Base use __stl_atomic_t instances that might - * have lower sizeof and generate roll issues. 1 is enough to keep the facet - * alive when required. - */ - explicit facet(size_t __init_count = 0) : _Refcount_Base( __init_count == 0 ? 0 : 1 ) {} - virtual ~facet(); - friend class locale; - friend class _Locale_impl; - friend facet * _STLP_CALL _get_facet( facet * ); - friend void _STLP_CALL _release_facet( facet *& ); - - private: // Invalidate assignment and copying. - facet(const facet& ) /* : _Refcount_Base(1) {} */; - void operator=(const facet&); - }; - -#if defined (__MVS__) || defined (__OS400__) - struct -#else - class -#endif - _STLP_CLASS_DECLSPEC id { - friend class locale; - friend class _Locale_impl; - public: - size_t _M_index; - static size_t _S_max; - }; - - typedef int category; -#if defined (_STLP_STATIC_CONST_INIT_BUG) - enum _Category { -#else - static const category -#endif - none = 0x000, - collate = 0x010, - ctype = 0x020, - monetary = 0x040, - numeric = 0x100, - time = 0x200, - messages = 0x400, - all = collate | ctype | monetary | numeric | time | messages -#if defined (_STLP_STATIC_CONST_INIT_BUG) - } -#endif - ; - - // construct/copy/destroy: - locale() _STLP_NOTHROW; - locale(const locale&) _STLP_NOTHROW; - explicit locale(const char *); - locale(const locale&, const char*, category); - -#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - template <class _Facet> - locale(const locale& __loc, _Facet* __f) { - if ( __f != 0 ) { - this->_M_impl = _get_Locale_impl( _copy_Nameless_Locale_impl( __loc._M_impl ) ); - this->_M_insert(__f, _Facet::id); - } else { - this->_M_impl = _get_Locale_impl( __loc._M_impl ); - } - } -#endif // _STLP_MEMBER_TEMPLATES - -protected: - // those are for internal use - locale(_Locale_impl*); - -public: - - locale(const locale&, const locale&, category); - const locale& operator=(const locale&) _STLP_NOTHROW; - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - virtual -#endif - ~locale() _STLP_NOTHROW; - -#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) && \ - !defined(_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - template <class _Facet> - locale combine(const locale& __loc) const { - _Facet *__facet = 0; - if (!_HasFacet(__loc, __facet)) - _M_throw_runtime_error(); - - return locale(*this, _UseFacet(__loc, __facet)); - } -#endif // _STLP_MEMBER_TEMPLATES && !_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS - - // locale operations: - string name() const; - - bool operator==(const locale&) const; - bool operator!=(const locale&) const; - -#if !defined (_STLP_MEMBER_TEMPLATES) || defined (_STLP_INLINE_MEMBER_TEMPLATES) || (defined(__MWERKS__) && __MWERKS__ <= 0x2301) - bool operator()(const string& __x, const string& __y) const; -# ifndef _STLP_NO_WCHAR_T - bool operator()(const wstring& __x, const wstring& __y) const; -# endif -#elif !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - template <class _CharT, class _Traits, class _Alloc> - bool operator()(const basic_string<_CharT, _Traits, _Alloc>& __x, - const basic_string<_CharT, _Traits, _Alloc>& __y) const - { return __locale_do_operator_call(*this, __x, __y); } -#endif - - // global locale objects: - static locale _STLP_CALL global(const locale&); - static const locale& _STLP_CALL classic(); - -//protected: // Helper functions for locale globals. - facet* _M_get_facet(const id&) const; - // same, but throws - facet* _M_use_facet(const id&) const; - static void _STLP_FUNCTION_THROWS _STLP_CALL _M_throw_runtime_error(const char* = 0); - -protected: // More helper functions. - void _M_insert(facet* __f, id& __id); - - // friends: - friend class _Locale_impl; - friend class ios_base; - -protected: // Data members - _Locale_impl* _M_impl; - _Locale_impl* _M_get_impl() const { return _M_impl; } -}; - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -# undef locale -# define _Locale _STLP_NO_MEM_T_NAME(loc) - -class locale : public _Locale { -public: - - // construct/copy/destroy: - locale() _STLP_NOTHROW {} - locale(const locale& __loc) _STLP_NOTHROW : _Locale(__loc) {} - explicit locale(const char *__str) : _Locale(__str) {} - locale(const locale& __loc, const char* __str, category __cat) - : _Locale(__loc, __str, __cat) {} - - template <class _Facet> - locale(const locale& __loc, _Facet* __f) { - if ( __f != 0 ) { - this->_M_impl = _get_Locale_impl( _copy_Nameless_Locale_impl( __loc._M_impl ) ); - this->_M_insert(__f, _Facet::id); - } else { - this->_M_impl = _get_Locale_impl( __loc._M_impl ); - } - } - -private: - // those are for internal use - locale(_Locale_impl* __impl) : _Locale(__impl) {} - locale(const _Locale& __loc) : _Locale(__loc) {} - -public: - - locale(const locale& __loc1, const locale& __loc2, category __cat) - : _Locale(__loc1, __loc2, __cat) {} - - const locale& operator=(const locale& __loc) _STLP_NOTHROW { - _Locale::operator=(__loc); - return *this; - } - - template <class _Facet> - locale combine(const locale& __loc) const { - _Facet *__facet = 0; - if (!_HasFacet(__loc, __facet)) - _M_throw_runtime_error(); - - return locale(*this, _UseFacet(__loc, __facet)); - } - - // locale operations: - bool operator==(const locale& __loc) const { return _Locale::operator==(__loc); } - bool operator!=(const locale& __loc) const { return _Locale::operator!=(__loc); } - - template <class _CharT, class _Traits, class _Alloc> - bool operator()(const basic_string<_CharT, _Traits, _Alloc>& __x, - const basic_string<_CharT, _Traits, _Alloc>& __y) const - { return __locale_do_operator_call(*this, __x, __y); } - - // global locale objects: - static locale _STLP_CALL global(const locale& __loc) { - return _Locale::global(__loc); - } - static const locale& _STLP_CALL classic() { - return __STATIC_CAST(const locale&, _Locale::classic()); - } - - // friends: - friend class _Locale_impl; - friend class ios_base; -}; - -#endif /* _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND */ - -//---------------------------------------------------------------------- -// locale globals - -#ifdef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS -template <class _Facet> -inline const _Facet& -_Use_facet<_Facet>::operator *() const -#else -template <class _Facet> inline const _Facet& use_facet(const locale& __loc) -#endif -{ - _Facet *__facet = 0; - return *_UseFacet(__loc, __facet); -} - - -#ifdef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS -template <class _Facet> -struct has_facet { - const locale& __loc; - has_facet(const locale& __p_loc) : __loc(__p_loc) {} - operator bool() const _STLP_NOTHROW -#else -template <class _Facet> inline bool has_facet(const locale& __loc) _STLP_NOTHROW -#endif -{ - _Facet *__facet = 0; - return _HasFacet(__loc, __facet); -} - -#ifdef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS -}; // close class definition -#endif - -template <class _Facet> -bool _HasFacet(const locale& __loc, const _Facet* __facet) _STLP_NOTHROW -{ return (__loc._M_get_facet(_Facet::id) != 0); } - -template <class _Facet> -_Facet* _UseFacet(const locale& __loc, const _Facet* __facet) -{ return __STATIC_CAST(_Facet*, __loc._M_use_facet(_Facet::id)); } - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_LOCALE_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_map.h b/WebKit/android/stlport/stl/_map.h deleted file mode 100644 index 15d2e3f..0000000 --- a/WebKit/android/stlport/stl/_map.h +++ /dev/null @@ -1,425 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_MAP_H -#define _STLP_INTERNAL_MAP_H - -#ifndef _STLP_INTERNAL_TREE_H -# include <stl/_tree.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_ITERATOR_TRAITS(MapTraitsT, traits) - -template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key> ), - _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > -class map -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<map<_Key, _Tp, _Compare, _Alloc> > -#endif -{ - typedef map<_Key, _Tp, _Compare, _Alloc> _Self; -public: - -// typedefs: - - typedef _Key key_type; - typedef _Tp data_type; - typedef _Tp mapped_type; - typedef pair<const _Key, _Tp> value_type; - typedef _Compare key_compare; - - class value_compare - : public binary_function<value_type, value_type, bool> { - friend class map<_Key,_Tp,_Compare,_Alloc>; - protected : - //c is a Standard name (23.3.1), do no make it STLport naming convention compliant. - _Compare comp; - value_compare(_Compare __c) : comp(__c) {} - public: - bool operator()(const value_type& __x, const value_type& __y) const - { return comp(__x.first, __y.first); } - }; - -protected: - typedef _STLP_PRIV _MapTraitsT<value_type> _MapTraits; - -public: - //Following typedef have to be public for __move_traits specialization. - typedef _STLP_PRIV _Rb_tree<key_type, key_compare, - value_type, _STLP_SELECT1ST(value_type, _Key), - _MapTraits, _Alloc> _Rep_type; - - typedef typename _Rep_type::pointer pointer; - typedef typename _Rep_type::const_pointer const_pointer; - typedef typename _Rep_type::reference reference; - typedef typename _Rep_type::const_reference const_reference; - typedef typename _Rep_type::iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; - typedef typename _Rep_type::allocator_type allocator_type; - -private: - _Rep_type _M_t; // red-black tree representing map - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - // allocation/deallocation - map() : _M_t(_Compare(), allocator_type()) {} -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit map(const _Compare& __comp, - const allocator_type& __a = allocator_type()) -#else - explicit map(const _Compare& __comp) - : _M_t(__comp, allocator_type()) {} - explicit map(const _Compare& __comp, const allocator_type& __a) -#endif - : _M_t(__comp, __a) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - map(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_unique(__first, __last); } - - template <class _InputIterator> - map(_InputIterator __first, _InputIterator __last, const _Compare& __comp, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - map(_InputIterator __first, _InputIterator __last, const _Compare& __comp) - : _M_t(__comp, allocator_type()) { _M_t.insert_unique(__first, __last); } -# endif - -#else - map(const value_type* __first, const value_type* __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_unique(__first, __last); } - - map(const value_type* __first, - const value_type* __last, const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } - - map(const_iterator __first, const_iterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_unique(__first, __last); } - - map(const_iterator __first, const_iterator __last, const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - map(const _Self& __x) : _M_t(__x._M_t) {} - - map(__move_source<_Self> src) - : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {} - - _Self& operator=(const _Self& __x) { - _M_t = __x._M_t; - return *this; - } - - // accessors: - key_compare key_comp() const { return _M_t.key_comp(); } - value_compare value_comp() const { return value_compare(_M_t.key_comp()); } - allocator_type get_allocator() const { return _M_t.get_allocator(); } - - iterator begin() { return _M_t.begin(); } - const_iterator begin() const { return _M_t.begin(); } - iterator end() { return _M_t.end(); } - const_iterator end() const { return _M_t.end(); } - reverse_iterator rbegin() { return _M_t.rbegin(); } - const_reverse_iterator rbegin() const { return _M_t.rbegin(); } - reverse_iterator rend() { return _M_t.rend(); } - const_reverse_iterator rend() const { return _M_t.rend(); } - bool empty() const { return _M_t.empty(); } - size_type size() const { return _M_t.size(); } - size_type max_size() const { return _M_t.max_size(); } - _STLP_TEMPLATE_FOR_CONT_EXT - _Tp& operator[](const _KT& __k) { - iterator __i = lower_bound(__k); - // __i->first is greater than or equivalent to __k. - if (__i == end() || key_comp()(__k, (*__i).first)) - __i = insert(__i, value_type(__k, _STLP_DEFAULT_CONSTRUCTED(_Tp))); - return (*__i).second; - } - void swap(_Self& __x) { _M_t.swap(__x._M_t); } - - // insert/erase - pair<iterator,bool> insert(const value_type& __x) - { return _M_t.insert_unique(__x); } - iterator insert(iterator __pos, const value_type& __x) - { return _M_t.insert_unique(__pos, __x); } -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - void insert(_InputIterator __first, _InputIterator __last) - { _M_t.insert_unique(__first, __last); } -#else - void insert(const value_type* __first, const value_type* __last) - { _M_t.insert_unique(__first, __last); } - void insert(const_iterator __first, const_iterator __last) - { _M_t.insert_unique(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - void erase(iterator __pos) { _M_t.erase(__pos); } - size_type erase(const key_type& __x) { return _M_t.erase_unique(__x); } - void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } - void clear() { _M_t.clear(); } - - // map operations: - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __x) { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __x) const { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const { return _M_t.find(__x) == _M_t.end() ? 0 : 1; } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator,iterator> equal_range(const _KT& __x) - { return _M_t.equal_range_unique(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator,const_iterator> equal_range(const _KT& __x) const - { return _M_t.equal_range_unique(__x); } -}; - -//Specific iterator traits creation -_STLP_CREATE_ITERATOR_TRAITS(MultimapTraitsT, traits) - -template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key> ), - _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > -class multimap -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<multimap<_Key, _Tp, _Compare, _Alloc> > -#endif -{ - typedef multimap<_Key, _Tp, _Compare, _Alloc> _Self; -public: - -// typedefs: - - typedef _Key key_type; - typedef _Tp data_type; - typedef _Tp mapped_type; - typedef pair<const _Key, _Tp> value_type; - typedef _Compare key_compare; - - class value_compare : public binary_function<value_type, value_type, bool> { - friend class multimap<_Key,_Tp,_Compare,_Alloc>; - protected: - //comp is a Standard name (23.3.2), do no make it STLport naming convention compliant. - _Compare comp; - value_compare(_Compare __c) : comp(__c) {} - public: - bool operator()(const value_type& __x, const value_type& __y) const - { return comp(__x.first, __y.first); } - }; - -protected: - //Specific iterator traits creation - typedef _STLP_PRIV _MultimapTraitsT<value_type> _MultimapTraits; - -public: - //Following typedef have to be public for __move_traits specialization. - typedef _STLP_PRIV _Rb_tree<key_type, key_compare, - value_type, _STLP_SELECT1ST(value_type, _Key), - _MultimapTraits, _Alloc> _Rep_type; - - typedef typename _Rep_type::pointer pointer; - typedef typename _Rep_type::const_pointer const_pointer; - typedef typename _Rep_type::reference reference; - typedef typename _Rep_type::const_reference const_reference; - typedef typename _Rep_type::iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; - typedef typename _Rep_type::allocator_type allocator_type; - -private: - _Rep_type _M_t; // red-black tree representing multimap - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - // allocation/deallocation - multimap() : _M_t(_Compare(), allocator_type()) { } - explicit multimap(const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { } - -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - multimap(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_equal(__first, __last); } -# ifdef _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS - template <class _InputIterator> - multimap(_InputIterator __first, _InputIterator __last, - const _Compare& __comp) - : _M_t(__comp, allocator_type()) { _M_t.insert_equal(__first, __last); } -# endif - template <class _InputIterator> - multimap(_InputIterator __first, _InputIterator __last, - const _Compare& __comp, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } -#else - multimap(const value_type* __first, const value_type* __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_equal(__first, __last); } - multimap(const value_type* __first, const value_type* __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } - - multimap(const_iterator __first, const_iterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_equal(__first, __last); } - multimap(const_iterator __first, const_iterator __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - multimap(const _Self& __x) : _M_t(__x._M_t) {} - - multimap(__move_source<_Self> src) - : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {} - - _Self& operator=(const _Self& __x) { - _M_t = __x._M_t; - return *this; - } - - // accessors: - - key_compare key_comp() const { return _M_t.key_comp(); } - value_compare value_comp() const { return value_compare(_M_t.key_comp()); } - allocator_type get_allocator() const { return _M_t.get_allocator(); } - - iterator begin() { return _M_t.begin(); } - const_iterator begin() const { return _M_t.begin(); } - iterator end() { return _M_t.end(); } - const_iterator end() const { return _M_t.end(); } - reverse_iterator rbegin() { return _M_t.rbegin(); } - const_reverse_iterator rbegin() const { return _M_t.rbegin(); } - reverse_iterator rend() { return _M_t.rend(); } - const_reverse_iterator rend() const { return _M_t.rend(); } - bool empty() const { return _M_t.empty(); } - size_type size() const { return _M_t.size(); } - size_type max_size() const { return _M_t.max_size(); } - void swap(_Self& __x) { _M_t.swap(__x._M_t); } - - // insert/erase - iterator insert(const value_type& __x) { return _M_t.insert_equal(__x); } - iterator insert(iterator __pos, const value_type& __x) { return _M_t.insert_equal(__pos, __x); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __first, _InputIterator __last) - { _M_t.insert_equal(__first, __last); } -#else - void insert(const value_type* __first, const value_type* __last) - { _M_t.insert_equal(__first, __last); } - void insert(const_iterator __first, const_iterator __last) - { _M_t.insert_equal(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - void erase(iterator __pos) { _M_t.erase(__pos); } - size_type erase(const key_type& __x) { return _M_t.erase(__x); } - void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last); } - void clear() { _M_t.clear(); } - - // multimap operations: - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __x) { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __x) const { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const { return _M_t.count(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator,iterator> equal_range(const _KT& __x) - { return _M_t.equal_range(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator,const_iterator> equal_range(const _KT& __x) const - { return _M_t.equal_range(__x); } -}; - -#define _STLP_TEMPLATE_HEADER template <class _Key, class _Tp, class _Compare, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER map<_Key,_Tp,_Compare,_Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#define _STLP_TEMPLATE_CONTAINER multimap<_Key,_Tp,_Compare,_Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Key, class _Tp, class _Compare, class _Alloc> -struct __move_traits<map<_Key,_Tp,_Compare,_Alloc> > : - _STLP_PRIV __move_traits_aux<typename map<_Key,_Tp,_Compare,_Alloc>::_Rep_type> -{}; - -template <class _Key, class _Tp, class _Compare, class _Alloc> -struct __move_traits<multimap<_Key,_Tp,_Compare,_Alloc> > : - _STLP_PRIV __move_traits_aux<typename multimap<_Key,_Tp,_Compare,_Alloc>::_Rep_type> -{}; -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_MAP_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_mbstate_t.h b/WebKit/android/stlport/stl/_mbstate_t.h deleted file mode 100644 index 4aa936f..0000000 --- a/WebKit/android/stlport/stl/_mbstate_t.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_MBSTATE_T -#define _STLP_INTERNAL_MBSTATE_T - -#if (defined (__OpenBSD__) || defined (__FreeBSD__)) && defined (__GNUC__) && !defined (_GLIBCPP_HAVE_MBSTATE_T) -# define __mbstate_t_defined /* mbstate_t defined in native <cwchar>, so not defined in C! */ -#endif - -#if defined (_STLP_NO_NATIVE_MBSTATE_T) && !defined (_STLP_NO_MBSTATE_T) && !defined (_MBSTATE_T) && !defined (__mbstate_t_defined) -# define _STLP_USE_OWN_MBSTATE_T -# define _MBSTATE_T -#endif - -#if defined (_STLP_USE_OWN_MBSTATE_T) -typedef int mbstate_t; - -# if defined (__cplusplus) -_STLP_BEGIN_NAMESPACE -using ::mbstate_t; -_STLP_END_NAMESPACE -# endif - -#endif /* _STLP_USE_OWN_MBSTATE_T */ - -#endif /* _STLP_INTERNAL_MBSTATE_T */ diff --git a/WebKit/android/stlport/stl/_messages_facets.h b/WebKit/android/stlport/stl/_messages_facets.h deleted file mode 100644 index eb4f869..0000000 --- a/WebKit/android/stlport/stl/_messages_facets.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_MESSAGES_H -#define _STLP_INTERNAL_MESSAGES_H - -#ifndef _STLP_IOS_BASE_H -# include <stl/_ios_base.h> -#endif - -#ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// messages facets - -class messages_base { - public: - typedef int catalog; -}; - -template <class _CharT> class messages {}; - -_STLP_MOVE_TO_PRIV_NAMESPACE -class _Messages; -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC messages<char> : public locale::facet, public messages_base { - friend class _Locale_impl; -public: - typedef messages_base::catalog catalog; - typedef char char_type; - typedef string string_type; - - explicit messages(size_t __refs = 0); - - catalog open(const string& __fn, const locale& __loc) const - { return do_open(__fn, __loc); } - string_type get(catalog __c, int __set, int __msgid, - const string_type& __dfault) const - { return do_get(__c, __set, __msgid, __dfault); } - inline void close(catalog __c) const - { do_close(__c); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -private: - messages(_STLP_PRIV _Messages*); - -protected: - messages(size_t, _Locale_messages*); - ~messages(); - - virtual catalog do_open(const string& __fn, const locale& __loc) const; - virtual string_type do_get(catalog __c, int __set, int __msgid, - const string_type& __dfault) const; - virtual void do_close(catalog __c) const; - - void _M_initialize(const char* __name); - -private: - _STLP_PRIV _Messages* _M_impl; -}; - -#if !defined (_STLP_NO_WCHAR_T) - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC messages<wchar_t> : public locale::facet, public messages_base { - friend class _Locale_impl; -public: - typedef messages_base::catalog catalog; - typedef wchar_t char_type; - typedef wstring string_type; - - explicit messages(size_t __refs = 0); - - inline catalog open(const string& __fn, const locale& __loc) const - { return do_open(__fn, __loc); } - inline string_type get(catalog __c, int __set, int __msgid, - const string_type& __dfault) const - { return do_get(__c, __set, __msgid, __dfault); } - inline void close(catalog __c) const - { do_close(__c); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -private: - messages(_STLP_PRIV _Messages*); - -protected: - messages(size_t, _Locale_messages*); - ~messages(); - - virtual catalog do_open(const string& __fn, const locale& __loc) const; - virtual string_type do_get(catalog __c, int __set, int __msgid, - const string_type& __dfault) const; - virtual void do_close(catalog __c) const; - - void _M_initialize(const char* __name); - -private: - _STLP_PRIV _Messages* _M_impl; -}; - -#endif - -template <class _CharT> class messages_byname {}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC messages_byname<char> : public messages<char> { -public: - typedef messages_base::catalog catalog; - typedef string string_type; - - explicit messages_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - ~messages_byname(); - -private: - typedef messages_byname<char> _Self; - //explicitely defined as private to avoid warnings: - messages_byname(_Self const&); - _Self& operator = (_Self const&); -}; - -#if !defined (_STLP_NO_WCHAR_T) -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC messages_byname<wchar_t> : public messages<wchar_t> { -public: - typedef messages_base::catalog catalog; - typedef wstring string_type; - - explicit messages_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - ~messages_byname(); - -private: - typedef messages_byname<wchar_t> _Self; - //explicitely defined as private to avoid warnings: - messages_byname(_Self const&); - _Self& operator = (_Self const&); -}; -#endif /* WCHAR_T */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_MESSAGES_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_monetary.c b/WebKit/android/stlport/stl/_monetary.c deleted file mode 100644 index f801128..0000000 --- a/WebKit/android/stlport/stl/_monetary.c +++ /dev/null @@ -1,604 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_MONETARY_C -#define _STLP_MONETARY_C - -# ifndef _STLP_INTERNAL_MONETARY_H -# include <stl/_monetary.h> -# endif - -#ifndef _STLP_INTERNAL_IOS_H -# include <stl/_ios.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_PUT_H -# include <stl/_num_put.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_GET_H -# include <stl/_num_get.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if (_STLP_STATIC_TEMPLATE_DATA > 0) - -# if !defined (__BORLANDC__) -template <class _CharT, class _InputIterator> -locale::id money_get<_CharT, _InputIterator>::id; - -template <class _CharT, class _OutputIterator> -locale::id money_put<_CharT, _OutputIterator>::id; -# endif - -# if (defined (__CYGWIN__) || defined (__MINGW32__)) && \ - defined (_STLP_USE_DYNAMIC_LIB) && !defined (__BUILDING_STLPORT) -/* - * Under cygwin, when STLport is used as a shared library, the id needs - * to be specified as imported otherwise they will be duplicated in the - * calling executable. - */ -template <> -_STLP_DECLSPEC locale::id money_get<char, istreambuf_iterator<char, char_traits<char> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id money_get<char, const char*>::id; -*/ - -template <> -_STLP_DECLSPEC locale::id money_put<char, ostreambuf_iterator<char, char_traits<char> > >::id; -template <> -_STLP_DECLSPEC locale::id money_put<char, char*>::id; - -# if !defined (_STLP_NO_WCHAR_T) -template <> -_STLP_DECLSPEC locale::id money_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >::id; -template <> -_STLP_DECLSPEC locale::id money_get<wchar_t, const wchar_t*>::id; - -template <> -_STLP_DECLSPEC locale::id money_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >::id; -template <> -_STLP_DECLSPEC locale::id money_put<wchar_t, wchar_t*>::id; -# endif - -# endif - -#else /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -//typedef money_get<char, const char*> money_get_char; -//typedef money_put<char, char*> money_put_char; -typedef money_get<char, istreambuf_iterator<char, char_traits<char> > > money_get_char_2; -typedef money_put<char, ostreambuf_iterator<char, char_traits<char> > > money_put_char_2; - -//__DECLARE_INSTANCE(locale::id, money_get_char::id, ); -//__DECLARE_INSTANCE(locale::id, money_put_char::id, ); -__DECLARE_INSTANCE(locale::id, money_get_char_2::id, ); -__DECLARE_INSTANCE(locale::id, money_put_char_2::id, ); - -# ifndef _STLP_NO_WCHAR_T - -//typedef money_get<wchar_t, const wchar_t*> money_get_wchar_t; -//typedef money_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > > money_get_wchar_t_2; -typedef money_put<wchar_t, wchar_t*> money_put_wchar_t; -typedef money_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > > money_put_wchar_t_2; - -//__DECLARE_INSTANCE(locale::id, money_get_wchar_t::id, ); -//__DECLARE_INSTANCE(locale::id, money_put_wchar_t::id, ); -__DECLARE_INSTANCE(locale::id, money_get_wchar_t_2::id, ); -__DECLARE_INSTANCE(locale::id, money_put_wchar_t_2::id, ); - -# endif -#endif /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -// money_get facets - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// helper functions for do_get -template <class _InIt1, class _InIt2> -pair<_InIt1, bool> __get_string( _InIt1 __first, _InIt1 __last, - _InIt2 __str_first, _InIt2 __str_last) { - while ( __first != __last && __str_first != __str_last && *__first == *__str_first ) { - ++__first; - ++__str_first; - } - return make_pair(__first, __str_first == __str_last); -} - -template <class _InIt, class _OuIt, class _CharT> -bool -__get_monetary_value(_InIt& __first, _InIt __last, _OuIt __out_ite, - const ctype<_CharT>& _c_type, - _CharT __point, int __frac_digits, _CharT __sep, - const string& __grouping, bool &__syntax_ok) { - if (__first == __last || !_c_type.is(ctype_base::digit, *__first)) - return false; - - char __group_sizes[128]; - char* __group_sizes_end = __grouping.empty()? 0 : __group_sizes; - char __current_group_size = 0; - - while (__first != __last) { - if (_c_type.is(ctype_base::digit, *__first)) { - ++__current_group_size; - *__out_ite++ = *__first++; - } - else if (__group_sizes_end) { - if (*__first == __sep) { - *__group_sizes_end++ = __current_group_size; - __current_group_size = 0; - ++__first; - } - else break; - } - else - break; - } - - if (__grouping.empty()) - __syntax_ok = true; - else { - if (__group_sizes_end != __group_sizes) - *__group_sizes_end++ = __current_group_size; - - __syntax_ok = __valid_grouping(__group_sizes, __group_sizes_end, - __grouping.data(), __grouping.data()+ __grouping.size()); - - if (__first == __last || *__first != __point) { - for (int __digits = 0; __digits != __frac_digits; ++__digits) - *__out_ite++ = _CharT('0'); - return true; // OK not to have decimal point - } - } - - ++__first; - - int __digits = 0; - - while (__first != __last && _c_type.is(ctype_base::digit, *__first)) { - *__out_ite++ = *__first++; - ++__digits; - } - - __syntax_ok = __syntax_ok && (__digits == __frac_digits); - - return true; -} - - -template <class _CharT, class _InputIter, class _StrType> -_InputIter __money_do_get(_InputIter __s, _InputIter __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - _StrType& __digits, bool &__is_positive, _CharT* /*__dummy*/) { - if (__s == __end) { - __err |= ios_base::eofbit; - return __s; - } - - typedef _CharT char_type; - typedef _StrType string_type; - typedef _InputIter iter_type; - typedef moneypunct<char_type, false> _Punct; - typedef moneypunct<char_type, true> _Punct_intl; - typedef ctype<char_type> _Ctype; - - locale __loc = __str.getloc(); - const _Punct& __punct = use_facet<_Punct>(__loc) ; - const _Punct_intl& __punct_intl = use_facet<_Punct_intl>(__loc) ; - const _Ctype& __c_type = use_facet<_Ctype>(__loc) ; - - money_base::pattern __format = __intl ? __punct_intl.neg_format() - : __punct.neg_format(); - string_type __ns = __intl ? __punct_intl.negative_sign() - : __punct.negative_sign(); - string_type __ps = __intl ? __punct_intl.positive_sign() - : __punct.positive_sign(); - int __i; - bool __symbol_required = (__str.flags() & ios_base::showbase) != 0; - string_type __buf; - back_insert_iterator<string_type> __out_ite(__buf); - - for (__i = 0; __i < 4; ++__i) { - switch (__format.field[__i]) { - case money_base::none: - if (__i == 3) { - if (__c_type.is(ctype_base::space, *__s)) { - __err = ios_base::failbit; - return __s; - } - break; - } - while (__s != __end && __c_type.is(ctype_base::space, *__s)) - ++__s; - break; - case money_base::space: - if (!__c_type.is(ctype_base::space, *__s)) { - __err = ios_base::failbit; - return __s; - } - ++__s; - while (__s != __end && __c_type.is(ctype_base::space, *__s)) - ++__s; - break; - case money_base::symbol: { - string_type __curs = __intl ? __punct_intl.curr_symbol() - : __punct.curr_symbol(); - pair<iter_type, bool> - __result = __get_string(__s, __end, __curs.begin(), __curs.end()); - if (!__result.second && __symbol_required) - __err = ios_base::failbit; - __s = __result.first; - break; - } - case money_base::sign: { - if (__s == __end) { - if (__ps.empty()) - break; - if (__ns.empty()) { - __is_positive = false; - break; - } - __err = ios_base::failbit; - return __s; - } - else { - if (__ps.empty()) { - if (__ns.empty()) - break; - if (*__s == __ns[0]) { - ++__s; - __is_positive = false; - } - break; - } - else { - if (*__s == __ps[0]) { - ++__s; - break; - } - if (__ns.empty()) - break; - if (*__s == __ns[0]) { - ++__s; - __is_positive = false; - break; - } - __err = ios_base::failbit; - } - } - return __s; - } - case money_base::value: { - char_type __point = __intl ? __punct_intl.decimal_point() - : __punct.decimal_point(); - int __frac_digits = __intl ? __punct_intl.frac_digits() - : __punct.frac_digits(); - string __grouping = __intl ? __punct_intl.grouping() - : __punct.grouping(); - bool __syntax_ok = true; - - bool __result; - - char_type __sep = __grouping.empty() ? char_type() : - __intl ? __punct_intl.thousands_sep() : __punct.thousands_sep(); - - __result = __get_monetary_value(__s, __end, __out_ite, __c_type, - __point, __frac_digits, - __sep, - __grouping, __syntax_ok); - - if (!__syntax_ok) - __err |= ios_base::failbit; - if (!__result) { - __err = ios_base::failbit; - return __s; - } - break; - - } // Close money_base::value case - } // Close switch statement - } // Close for loop - - if (__is_positive) { - if (__ps.size() > 1) { - pair<_InputIter, bool> - __result = __get_string(__s, __end, __ps.begin() + 1, __ps.end()); - __s = __result.first; - if (!__result.second) - __err |= ios::failbit; - } - if (!(__err & ios_base::failbit)) - __digits = __buf; - } - else { - if (__ns.size() > 1) { - pair<_InputIter, bool> - __result = __get_string(__s, __end, __ns.begin() + 1, __ns.end()); - __s = __result.first; - if (!__result.second) - __err |= ios::failbit; - } - if (!(__err & ios::failbit)) { - __digits = __c_type.widen('-'); - __digits += __buf; - } - } - if (__s == __end) - __err |= ios::eofbit; - - return __s; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -//===== methods ====== -template <class _CharT, class _InputIter> -_InputIter -money_get<_CharT, _InputIter>::do_get(_InputIter __s, _InputIter __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - _STLP_LONGEST_FLOAT_TYPE& __units) const { - string_type __buf; - bool __is_positive = true; - __s = _STLP_PRIV __money_do_get(__s, __end, __intl, __str, __err, __buf, __is_positive, (_CharT*)0); - - if (__err == ios_base::goodbit || __err == ios_base::eofbit) { - typename string_type::iterator __b = __buf.begin(), __e = __buf.end(); - - if (!__is_positive) ++__b; - // Can't use atold, since it might be wchar_t. Don't get confused by name below : - // it's perfectly capable of reading long double. - _STLP_PRIV __get_decimal_integer(__b, __e, __units, (_CharT*)0); - - if (!__is_positive) { - __units = -__units; - } - } - - return __s; -} - -template <class _CharT, class _InputIter> -_InputIter -money_get<_CharT, _InputIter>::do_get(iter_type __s, iter_type __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - string_type& __digits) const { - bool __is_positive = true; - return _STLP_PRIV __money_do_get(__s, __end, __intl, __str, __err, __digits, __is_positive, (_CharT*)0); -} - -// money_put facets - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _CharT, class _OutputIter, class _Str_Type, class _Str> -_OutputIter __money_do_put(_OutputIter __s, bool __intl, ios_base& __str, - _CharT __fill, const _Str& __digits, bool __check_digits, - _Str_Type * /*__dummy*/) { - typedef _CharT char_type; - typedef _Str_Type string_type; - typedef ctype<char_type> _Ctype; - typedef moneypunct<char_type, false> _Punct; - typedef moneypunct<char_type, true> _Punct_intl; - - locale __loc = __str.getloc(); - const _Ctype& __c_type = use_facet<_Ctype>(__loc) ; - const _Punct& __punct = use_facet<_Punct>(__loc) ; - const _Punct_intl& __punct_intl = use_facet<_Punct_intl>(__loc) ; - - // some special characters - char_type __minus = __c_type.widen('-'); - char_type __plus = __c_type.widen('+'); - char_type __space = __c_type.widen(' '); - char_type __zero = __c_type.widen('0'); - char_type __point = __intl ? __punct_intl.decimal_point() - : __punct.decimal_point(); - - char_type __sep = __intl ? __punct_intl.thousands_sep() - : __punct.thousands_sep(); - - string __grouping = __intl ? __punct_intl.grouping() - : __punct.grouping(); - - int __frac_digits = __intl ? __punct_intl.frac_digits() - : __punct.frac_digits(); - - string_type __curr_sym = __intl ? __punct_intl.curr_symbol() - : __punct.curr_symbol(); - - // if there are no digits we are going to return __s. If there - // are digits, but not enough to fill the frac_digits, we are - // going to add zeros. I don't know whether this is right or - // not. - if (__digits.empty()) - return __s; - - typename string_type::const_iterator __digits_first = __digits.begin(); - typename string_type::const_iterator __digits_last = __digits.end(); - - bool __is_negative = *__digits_first == __minus; - if (__is_negative) - ++__digits_first; - -#if !defined (__BORLANDC__) - string_type __sign = __intl ? __is_negative ? __punct_intl.negative_sign() - : __punct_intl.positive_sign() - : __is_negative ? __punct.negative_sign() - : __punct.positive_sign(); -#else - string_type __sign; - if (__intl) { - if (__is_negative) - __sign = __punct_intl.negative_sign(); - else - __sign = __punct_intl.positive_sign(); - } - else { - if (__is_negative) - __sign = __punct.negative_sign(); - else - __sign = __punct.positive_sign(); - } -#endif - - if (__check_digits) { - typename string_type::const_iterator __cp = __digits_first; - while (__cp != __digits_last && __c_type.is(ctype_base::digit, *__cp)) - ++__cp; - if (__cp == __digits_first) - return __s; - __digits_last = __cp; - } - - // If grouping is required, we make a copy of __digits and - // insert the grouping. - _STLP_BASIC_IOSTRING(char_type) __new_digits; - if (!__grouping.empty()) { - __new_digits.assign(__digits_first, __digits_last); - __insert_grouping(__new_digits, - __new_digits.size() - __frac_digits, - __grouping, - __sep, __plus, __minus, 0); - __digits_first = __new_digits.begin(); // <<-- - __digits_last = __new_digits.end(); // <<-- - } - - // Determine the amount of padding required, if any. - streamsize __width = __str.width(); - -#if defined (_STLP_DEBUG) && (defined(__HP_aCC) && (__HP_aCC <= 1)) - size_t __value_length = operator -(__digits_last, __digits_first); -#else - size_t __value_length = __digits_last - __digits_first; -#endif - - size_t __length = __value_length + __sign.size(); - - if (__frac_digits != 0) - ++__length; - - bool __generate_curr = (__str.flags() & ios_base::showbase) !=0; - if (__generate_curr) - __length += __curr_sym.size(); - money_base::pattern __format = __intl ? (__is_negative ? __punct_intl.neg_format() - : __punct_intl.pos_format()) - : (__is_negative ? __punct.neg_format() - : __punct.pos_format()); - { - //For the moment the following is commented for decoding reason. - //No reason to add a space last if the money symbol do not have to be display - //if (__format.field[3] == (char) money_base::symbol && !__generate_curr) { - // if (__format.field[2] == (char) money_base::space) { - // __format.field[2] = (char) money_base::none; - // } - //} - //space can only be second or third and only once (22.2.6.3-1): - if ((__format.field[1] == (char) money_base::space) || - (__format.field[2] == (char) money_base::space)) - ++__length; - } - - const bool __need_fill = (((sizeof(streamsize) > sizeof(size_t)) && (__STATIC_CAST(streamsize, __length) < __width)) || - ((sizeof(streamsize) <= sizeof(size_t)) && (__length < __STATIC_CAST(size_t, __width)))); - streamsize __fill_amt = __need_fill ? __width - __length : 0; - - ios_base::fmtflags __fill_pos = __str.flags() & ios_base::adjustfield; - - if (__fill_amt != 0 && - !(__fill_pos & (ios_base::left | ios_base::internal))) - __s = __fill_n(__s, __fill_amt, __fill); - - for (int __i = 0; __i < 4; ++__i) { - char __ffield = __format.field[__i]; - switch (__ffield) { - case money_base::none: - if (__fill_amt != 0 && __fill_pos == ios_base::internal) - __s = __fill_n(__s, __fill_amt, __fill); - break; - case money_base::space: - *__s++ = __space; - if (__fill_amt != 0 && __fill_pos == ios_base::internal) - __s = __fill_n(__s, __fill_amt, __fill); - break; - case money_base::symbol: - if (__generate_curr) - __s = copy(__curr_sym.begin(), __curr_sym.end(), __s); - break; - case money_base::sign: - if (!__sign.empty()) - *__s++ = __sign[0]; - break; - case money_base::value: - if (__frac_digits == 0) { - __s = copy(__digits_first, __digits_last, __s); - } else { - if ((int)__value_length <= __frac_digits) { - // if we see '9' here, we should out 0.09 - *__s++ = __zero; // integer part is zero - *__s++ = __point; // decimal point - __s = __fill_n(__s, __frac_digits - __value_length, __zero); // zeros - __s = copy(__digits_first, __digits_last, __s); // digits - } else { - __s = copy(__digits_first, __digits_last - __frac_digits, __s); - if (__frac_digits != 0) { - *__s++ = __point; - __s = copy(__digits_last - __frac_digits, __digits_last, __s); - } - } - } - break; - } //Close for switch - } // Close for loop - - // Ouput rest of sign if necessary. - if (__sign.size() > 1) - __s = copy(__sign.begin() + 1, __sign.end(), __s); - if (__fill_amt != 0 && - !(__fill_pos & (ios_base::right | ios_base::internal))) - __s = __fill_n(__s, __fill_amt, __fill); - - return __s; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _CharT, class _OutputIter> -_OutputIter -money_put<_CharT, _OutputIter> - ::do_put(_OutputIter __s, bool __intl, ios_base& __str, - char_type __fill, _STLP_LONGEST_FLOAT_TYPE __units) const { - _STLP_BASIC_IOSTRING(char_type) __digits; - _STLP_PRIV __get_money_digits(__digits, __str, __units); - return _STLP_PRIV __money_do_put(__s, __intl, __str, __fill, __digits, false, __STATIC_CAST(string_type*, 0)); -} - -template <class _CharT, class _OutputIter> -_OutputIter -money_put<_CharT, _OutputIter> - ::do_put(_OutputIter __s, bool __intl, ios_base& __str, - char_type __fill, const string_type& __digits) const { - return _STLP_PRIV __money_do_put(__s, __intl, __str, __fill, __digits, true, __STATIC_CAST(string_type*, 0)); -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_MONETARY_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_monetary.h b/WebKit/android/stlport/stl/_monetary.h deleted file mode 100644 index 906f2e8..0000000 --- a/WebKit/android/stlport/stl/_monetary.h +++ /dev/null @@ -1,469 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_MONETARY_H -#define _STLP_INTERNAL_MONETARY_H - -#ifndef _STLP_INTERNAL_CTYPE_H -# include <stl/_ctype.h> -#endif - -#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H -# include <stl/_ostreambuf_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H -# include <stl/_istreambuf_iterator.h> -#endif - -_STLP_BEGIN_NAMESPACE - -class money_base { -public: - enum part {none, space, symbol, sign, value}; - struct pattern { - char field[4]; - }; -}; - -// moneypunct facets: forward declaration -template <class _charT, _STLP_DFL_NON_TYPE_PARAM(bool, _International, false) > class moneypunct {}; - -// money_get facets - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _CharT, class _InputIter> -#else -template <class _CharT, class _InputIter = istreambuf_iterator<_CharT, char_traits<_CharT> > > -#endif -class money_get : public locale::facet { - friend class _Locale_impl; - -public: - typedef _CharT char_type; - typedef _InputIter iter_type; - typedef basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > string_type; - - money_get(size_t __refs = 0) : locale::facet(__refs) {} - iter_type get(iter_type __s, iter_type __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - _STLP_LONGEST_FLOAT_TYPE& __units) const - { return do_get(__s, __end, __intl, __str, __err, __units); } - iter_type get(iter_type __s, iter_type __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - string_type& __digits) const - { return do_get(__s, __end, __intl, __str, __err, __digits); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~money_get() {} - virtual iter_type do_get(iter_type __s, iter_type __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - _STLP_LONGEST_FLOAT_TYPE& __units) const; - virtual iter_type do_get(iter_type __s, iter_type __end, bool __intl, - ios_base& __str, ios_base::iostate& __err, - string_type& __digits) const; -}; - - -// moneypunct facets: definition of specializations - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct<char, true> : public locale::facet, public money_base { - -public: - typedef char char_type; - typedef string string_type; - explicit moneypunct _STLP_PSPEC2(char, true) (size_t __refs = 0); - - char decimal_point() const { return do_decimal_point(); } - char thousands_sep() const { return do_thousands_sep(); } - string grouping() const { return do_grouping(); } - string_type curr_symbol() const { return do_curr_symbol(); } - string_type positive_sign() const { return do_positive_sign(); } - string_type negative_sign() const { return do_negative_sign(); } - int frac_digits() const { return do_frac_digits(); } - pattern pos_format() const { return do_pos_format(); } - pattern neg_format() const { return do_neg_format(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; -# if defined (_STLP_STATIC_CONST_INIT_BUG) - enum _IntlVal { intl = 1 } ; -# else - static const bool intl = true; -# endif - -protected: - pattern _M_pos_format; - pattern _M_neg_format; - - ~moneypunct _STLP_PSPEC2(char, true) (); - - virtual char do_decimal_point() const; - virtual char do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string do_curr_symbol() const; - - virtual string do_positive_sign() const; - virtual string do_negative_sign() const; - virtual int do_frac_digits() const; - virtual pattern do_pos_format() const; - virtual pattern do_neg_format() const; - - friend class _Locale_impl; -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct<char, false> : public locale::facet, public money_base -{ -public: - typedef char char_type; - typedef string string_type; - - explicit moneypunct _STLP_PSPEC2(char, false) (size_t __refs = 0); - - char decimal_point() const { return do_decimal_point(); } - char thousands_sep() const { return do_thousands_sep(); } - string grouping() const { return do_grouping(); } - string_type curr_symbol() const { return do_curr_symbol(); } - string_type positive_sign() const { return do_positive_sign(); } - string_type negative_sign() const { return do_negative_sign(); } - int frac_digits() const { return do_frac_digits(); } - pattern pos_format() const { return do_pos_format(); } - pattern neg_format() const { return do_neg_format(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; -# if defined (_STLP_STATIC_CONST_INIT_BUG) - enum _IntlVal { intl = 0 } ; -# else - static const bool intl = false; -# endif - -protected: - pattern _M_pos_format; - pattern _M_neg_format; - - ~moneypunct _STLP_PSPEC2(char, false) (); - - virtual char do_decimal_point() const; - virtual char do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string do_curr_symbol() const; - - virtual string do_positive_sign() const; - virtual string do_negative_sign() const; - virtual int do_frac_digits() const; - virtual pattern do_pos_format() const; - virtual pattern do_neg_format() const; - - friend class _Locale_impl; -}; - - -# ifndef _STLP_NO_WCHAR_T - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct<wchar_t, true> : public locale::facet, public money_base -{ - friend class _Locale_impl; -public: - typedef wchar_t char_type; - typedef wstring string_type; - explicit moneypunct _STLP_PSPEC2(wchar_t, true) (size_t __refs = 0); - wchar_t decimal_point() const { return do_decimal_point(); } - wchar_t thousands_sep() const { return do_thousands_sep(); } - string grouping() const { return do_grouping(); } - string_type curr_symbol() const { return do_curr_symbol(); } - string_type positive_sign() const { return do_positive_sign(); } - string_type negative_sign() const { return do_negative_sign(); } - int frac_digits() const { return do_frac_digits(); } - pattern pos_format() const { return do_pos_format(); } - pattern neg_format() const { return do_neg_format(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; -# if defined (_STLP_STATIC_CONST_INIT_BUG) - enum _IntlVal { intl = 1 } ; -# else - static const bool intl = true; -# endif - -protected: - pattern _M_pos_format; - pattern _M_neg_format; - - ~moneypunct _STLP_PSPEC2(wchar_t, true) (); - - virtual wchar_t do_decimal_point() const; - virtual wchar_t do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string_type do_curr_symbol() const; - - virtual string_type do_positive_sign() const; - virtual string_type do_negative_sign() const; - virtual int do_frac_digits() const; - virtual pattern do_pos_format() const; - virtual pattern do_neg_format() const; -}; - - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct<wchar_t, false> : public locale::facet, public money_base -{ - friend class _Locale_impl; -public: - typedef wchar_t char_type; - typedef wstring string_type; - explicit moneypunct _STLP_PSPEC2(wchar_t, false) (size_t __refs = 0); - wchar_t decimal_point() const { return do_decimal_point(); } - wchar_t thousands_sep() const { return do_thousands_sep(); } - string grouping() const { return do_grouping(); } - string_type curr_symbol() const { return do_curr_symbol(); } - string_type positive_sign() const { return do_positive_sign(); } - string_type negative_sign() const { return do_negative_sign(); } - int frac_digits() const { return do_frac_digits(); } - pattern pos_format() const { return do_pos_format(); } - pattern neg_format() const { return do_neg_format(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; -# if defined (_STLP_STATIC_CONST_INIT_BUG) - enum _IntlVal { intl = 0 } ; -# else - static const bool intl = false; -# endif - -protected: - pattern _M_pos_format; - pattern _M_neg_format; - - ~moneypunct _STLP_PSPEC2(wchar_t, false) (); - - virtual wchar_t do_decimal_point() const; - virtual wchar_t do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string_type do_curr_symbol() const; - - virtual string_type do_positive_sign() const; - virtual string_type do_negative_sign() const; - virtual int do_frac_digits() const; - virtual pattern do_pos_format() const; - virtual pattern do_neg_format() const; -}; - -# endif - -template <class _charT, _STLP_DFL_NON_TYPE_PARAM(bool , _International , false) > class moneypunct_byname {}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct_byname<char, true> : public moneypunct<char, true> { -public: - typedef money_base::pattern pattern; - typedef char char_type; - typedef string string_type; - - explicit moneypunct_byname _STLP_PSPEC2(char, true) (const char * __name, size_t __refs = 0, - _Locale_name_hint* __hint = 0); - -protected: - _Locale_monetary* _M_monetary; - ~moneypunct_byname _STLP_PSPEC2(char, true) (); - virtual char do_decimal_point() const; - virtual char do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string_type do_curr_symbol() const; - - virtual string_type do_positive_sign() const; - virtual string_type do_negative_sign() const; - virtual int do_frac_digits() const; - -private: - typedef moneypunct_byname<char, true> _Self; - //explicitely defined as private to avoid warnings: - moneypunct_byname(_Self const&); - _Self& operator = (_Self const&); -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct_byname<char, false> : public moneypunct<char, false> -{ -public: - typedef money_base::pattern pattern; - typedef char char_type; - typedef string string_type; - - explicit moneypunct_byname _STLP_PSPEC2(char, false) (const char * __name, size_t __refs = 0, - _Locale_name_hint* __hint = 0); - -protected: - _Locale_monetary* _M_monetary; - ~moneypunct_byname _STLP_PSPEC2(char, false) (); - virtual char do_decimal_point() const; - virtual char do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string_type do_curr_symbol() const; - - virtual string_type do_positive_sign() const; - virtual string_type do_negative_sign() const; - virtual int do_frac_digits() const; - -private: - typedef moneypunct_byname<char, false> _Self; - //explicitely defined as private to avoid warnings: - moneypunct_byname(_Self const&); - _Self& operator = (_Self const&); - friend _Locale_name_hint* _Locale_extract_hint(moneypunct_byname<char, false>*); -}; - -#if !defined (_STLP_NO_WCHAR_T) -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct_byname<wchar_t, true> : public moneypunct<wchar_t, true> -{ -public: - typedef money_base::pattern pattern; - typedef wchar_t char_type; - typedef wstring string_type; - - explicit moneypunct_byname _STLP_PSPEC2(wchar_t, true) (const char * __name, size_t __refs = 0, - _Locale_name_hint* __hint = 0); - -protected: - _Locale_monetary* _M_monetary; - ~moneypunct_byname _STLP_PSPEC2(wchar_t, true) (); - virtual wchar_t do_decimal_point() const; - virtual wchar_t do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string_type do_curr_symbol() const; - - virtual string_type do_positive_sign() const; - virtual string_type do_negative_sign() const; - virtual int do_frac_digits() const; - -private: - typedef moneypunct_byname<wchar_t, true> _Self; - //explicitely defined as private to avoid warnings: - moneypunct_byname(_Self const&); - _Self& operator = (_Self const&); -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC moneypunct_byname<wchar_t, false> : public moneypunct<wchar_t, false> -{ -public: - typedef money_base::pattern pattern; - typedef wchar_t char_type; - typedef wstring string_type; - - explicit moneypunct_byname _STLP_PSPEC2(wchar_t, false) (const char * __name, size_t __refs = 0, - _Locale_name_hint* __hint = 0); - -protected: - _Locale_monetary* _M_monetary; - ~moneypunct_byname _STLP_PSPEC2(wchar_t, false) (); - virtual wchar_t do_decimal_point() const; - virtual wchar_t do_thousands_sep() const; - virtual string do_grouping() const; - - virtual string_type do_curr_symbol() const; - - virtual string_type do_positive_sign() const; - virtual string_type do_negative_sign() const; - virtual int do_frac_digits() const; - -private: - typedef moneypunct_byname<wchar_t, false> _Self; - //explicitely defined as private to avoid warnings: - moneypunct_byname(_Self const&); - _Self& operator = (_Self const&); -}; -#endif - -//===== methods ====== - - -// money_put facets - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _CharT, class _OutputIter> -#else -template <class _CharT, class _OutputIter = ostreambuf_iterator<_CharT, char_traits<_CharT> > > -#endif -class money_put : public locale::facet { - friend class _Locale_impl; - -public: - typedef _CharT char_type; - typedef _OutputIter iter_type; - typedef basic_string<_CharT, char_traits<_CharT>, allocator<_CharT> > string_type; - - money_put(size_t __refs = 0) : locale::facet(__refs) {} - iter_type put(iter_type __s, bool __intl, ios_base& __str, - char_type __fill, _STLP_LONGEST_FLOAT_TYPE __units) const - { return do_put(__s, __intl, __str, __fill, __units); } - iter_type put(iter_type __s, bool __intl, ios_base& __str, - char_type __fill, - const string_type& __digits) const - { return do_put(__s, __intl, __str, __fill, __digits); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~money_put() {} - virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __str, - char_type __fill, _STLP_LONGEST_FLOAT_TYPE __units) const; - virtual iter_type do_put(iter_type __s, bool __intl, ios_base& __str, - char_type __fill, - const string_type& __digits) const; -}; - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS money_get<char, istreambuf_iterator<char, char_traits<char> > >; -_STLP_EXPORT_TEMPLATE_CLASS money_put<char, ostreambuf_iterator<char, char_traits<char> > >; -//_STLP_EXPORT_TEMPLATE_CLASS money_get<char, const char* >; -//_STLP_EXPORT_TEMPLATE_CLASS money_put<char, char* >; -# if ! defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS money_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >; -_STLP_EXPORT_TEMPLATE_CLASS money_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >; -// _STLP_EXPORT_TEMPLATE_CLASS money_get<wchar_t, const wchar_t* >; -// _STLP_EXPORT_TEMPLATE_CLASS money_put<wchar_t, wchar_t* >; -# endif -# endif /* _STLP_USE_TEMPLATE_EXPORT */ - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_monetary.c> -#endif - -#endif /* _STLP_INTERNAL_MONETARY_H */ - -// Local Variables: -// mode:C++ -// End: - - diff --git a/WebKit/android/stlport/stl/_move_construct_fwk.h b/WebKit/android/stlport/stl/_move_construct_fwk.h deleted file mode 100644 index 5f65a9d..0000000 --- a/WebKit/android/stlport/stl/_move_construct_fwk.h +++ /dev/null @@ -1,160 +0,0 @@ -/* - * - * Copyright (c) 2003 - * François Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_MOVE_CONSTRUCT_FWK_H -#define _STLP_MOVE_CONSTRUCT_FWK_H - -#ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -/************************************************************* - * Move constructor framework - *************************************************************/ - -/************************************************************* - *Partial move: - *The source HAS to be a valid instance after the move! - *************************************************************/ -template <class _Tp> -class __move_source { -public: - explicit __move_source (_Tp &_src) : _M_data(_src) - {} - - _Tp& get() const - { return _M_data; } -private: - _Tp &_M_data; - - //We explicitely forbid assignment to avoid warning: - typedef __move_source<_Tp> _Self; - _Self& operator = (_Self const&); -}; - -//Class used to signal move constructor support, implementation and type. -template <class _Tp> -struct __move_traits { - /* - * implemented tells if a the special move constructor has to be called or the classic - * copy constructor is just fine. Most of the time the copy constructor is fine only - * if the following info is true. - */ -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && \ - !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && \ - !defined (_STLP_NO_MOVE_SEMANTIC) - typedef typename _IsSTLportClass<_Tp>::_Ret implemented; -#else - typedef __false_type implemented; -#endif - /* - * complete tells if the move is complete or partial, that is to say, does the source - * needs to be destroyed once it has been moved. - */ - typedef typename __type_traits<_Tp>::has_trivial_destructor complete; -}; - -#if !defined (_STLP_NO_MOVE_SEMANTIC) -typedef __true_type __stlp_movable; -#else -typedef __false_type __stlp_movable; -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -/* - * This struct should never be used if the user has not explicitely stipulated - * that its class support the full move concept. To check that the return type - * in such a case will be __invalid_source<_Tp> to generate a compile error - * revealing the configuration problem. - */ -template <class _Tp> -struct _MoveSourceTraits { - typedef typename __move_traits<_Tp>::implemented _MvImpRet; -#if defined (__BORLANDC__) - typedef typename __selectT<_MvImpRet, -#else - enum {_MvImp = __type2bool<_MvImpRet>::_Ret}; - typedef typename __select<_MvImp, -#endif - __move_source<_Tp>, - _Tp const&>::_Ret _Type; -}; - -//The helper function -template <class _Tp> -inline _STLP_TYPENAME_ON_RETURN_TYPE _MoveSourceTraits<_Tp>::_Type -_AsMoveSource (_Tp &src) { - typedef typename _MoveSourceTraits<_Tp>::_Type _SrcType; - return _SrcType(src); -} - -//Helper structs used for many class. -template <class _Tp> -struct __move_traits_aux { - typedef typename __move_traits<_Tp>::implemented implemented; - typedef typename __move_traits<_Tp>::complete complete; -}; - -template <class _Tp1, class _Tp2> -struct __move_traits_aux2 { - typedef __move_traits<_Tp1> _MoveTraits1; - typedef __move_traits<_Tp2> _MoveTraits2; - - typedef typename _Lor2<typename _MoveTraits1::implemented, - typename _MoveTraits2::implemented>::_Ret implemented; - typedef typename _Land2<typename _MoveTraits1::complete, - typename _MoveTraits2::complete>::_Ret complete; -}; - -/* - * Most of the time a class implement a move constructor but its use depends - * on a third party, this is what the following struct are for. - */ -template <class _Tp> -struct __move_traits_help { - typedef __true_type implemented; - typedef typename __move_traits<_Tp>::complete complete; -}; - -template <class _Tp1, class _Tp2> -struct __move_traits_help1 { - typedef __move_traits<_Tp1> _MoveTraits1; - typedef __move_traits<_Tp2> _MoveTraits2; - - typedef typename _Lor2<typename _MoveTraits1::implemented, - typename _MoveTraits2::implemented>::_Ret implemented; - typedef typename _Land2<typename _MoveTraits1::complete, - typename _MoveTraits2::complete>::_Ret complete; -}; - -template <class _Tp1, class _Tp2> -struct __move_traits_help2 { - typedef __move_traits<_Tp1> _MoveTraits1; - typedef __move_traits<_Tp2> _MoveTraits2; - - typedef __stlp_movable implemented; - typedef typename _Land2<typename _MoveTraits1::complete, - typename _MoveTraits2::complete>::_Ret complete; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_MOVE_CONSTRUCT_FWK_H */ diff --git a/WebKit/android/stlport/stl/_new.h b/WebKit/android/stlport/stl/_new.h deleted file mode 100644 index dabc5fa..0000000 --- a/WebKit/android/stlport/stl/_new.h +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_NEW -#define _STLP_INTERNAL_NEW - -#ifndef _STLP_INTERNAL_CSTDDEF -// size_t -# include <stl/_cstddef.h> -#endif - -#if defined (__BORLANDC__) && (__BORLANDC__ < 0x580) -// new.h uses ::malloc ;( -# include _STLP_NATIVE_CPP_C_HEADER(cstdlib) -using _STLP_VENDOR_CSTD::malloc; -#endif - -#if !defined (_STLP_NO_NEW_NEW_HEADER) -# if defined (_STLP_BROKEN_BAD_ALLOC_CLASS) -# define bad_alloc _STLP_NULLIFIED_BROKEN_BAD_ALLOC_CLASS -# define nothrow_t _STLP_NULLIFIED_BROKEN_BAD_NOTHROW_T_CLASS -# define nothrow _STLP_NULLIFIED_BROKEN_BAD_NOTHROW -# endif - -// eMbedded Visual C++ .NET unfortunately uses _INC_NEW for both <new.h> and <new> -// we undefine the symbol to get the stuff in the SDK's <new> -# if defined (_STLP_WCE_NET) && defined (_INC_NEW) -# undef _INC_NEW -# endif - -# if defined (new) -/* STLport cannot replace native Std library new header if new is a macro, - * please define new macro after <new> header inclusion. - */ -# error Cannot include native new header as new is a macro. -# endif - -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new) - -# if defined (_STLP_BROKEN_BAD_ALLOC_CLASS) -# undef bad_alloc -# undef nothrow_t -# undef nothrow -# undef _STLP_NULLIFIED_BROKEN_BAD_ALLOC_CLASS -# undef _STLP_NULLIFIED_BROKEN_BAD_NOTHROW_T_CLASS -# undef _STLP_NULLIFIED_BROKEN_BAD_NOTHROW -# endif -#else -# include <new.h> -#endif - -#if defined (_STLP_NO_BAD_ALLOC) && !defined (_STLP_NEW_DONT_THROW_BAD_ALLOC) -# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1 -#endif - -#if defined (_STLP_USE_EXCEPTIONS) && defined (_STLP_NEW_DONT_THROW_BAD_ALLOC) - -# ifndef _STLP_INTERNAL_EXCEPTION -# include <stl/_exception.h> -# endif - -_STLP_BEGIN_NAMESPACE - -# if defined (_STLP_NO_BAD_ALLOC) -struct nothrow_t {}; -# define nothrow nothrow_t() -# endif - -/* - * STLport own bad_alloc exception to be used if the native C++ library - * do not define it or when the new operator do not throw it to avoid - * a useless library dependency. - */ -class bad_alloc : public exception { -public: - bad_alloc () _STLP_NOTHROW_INHERENTLY { } - bad_alloc(const bad_alloc&) _STLP_NOTHROW_INHERENTLY { } - bad_alloc& operator=(const bad_alloc&) _STLP_NOTHROW_INHERENTLY {return *this;} - ~bad_alloc () _STLP_NOTHROW_INHERENTLY { } - const char* what() const _STLP_NOTHROW_INHERENTLY { return "bad alloc"; } -}; - -_STLP_END_NAMESPACE - -#endif /* _STLP_USE_EXCEPTIONS && (_STLP_NO_BAD_ALLOC || _STLP_NEW_DONT_THROW_BAD_ALLOC) */ - -#if defined (_STLP_RTTI_BUG) -_STLP_BEGIN_NAMESPACE - -inline void* _STLP_CALL __stl_new(size_t __n) -{ return ::malloc(__n); } - -inline void _STLP_CALL __stl_delete(void* __p) -{ ::free(__p); } -_STLP_END_NAMESPACE - -#else /* _STLP_RTTI_BUG */ - -# if defined (_STLP_USE_OWN_NAMESPACE) - -_STLP_BEGIN_NAMESPACE - -# if !defined (_STLP_NEW_DONT_THROW_BAD_ALLOC) -using _STLP_VENDOR_EXCEPT_STD::bad_alloc; -# endif - -# if !defined (_STLP_NO_BAD_ALLOC) -using _STLP_VENDOR_EXCEPT_STD::nothrow_t; -using _STLP_VENDOR_EXCEPT_STD::nothrow; -# if defined (_STLP_GLOBAL_NEW_HANDLER) -using ::new_handler; -using ::set_new_handler; -# else -using _STLP_VENDOR_EXCEPT_STD::new_handler; -using _STLP_VENDOR_EXCEPT_STD::set_new_handler; -# endif -# endif /* !_STLP_NO_BAD_ALLOC */ - -_STLP_END_NAMESPACE -# endif /* _STLP_USE_OWN_NAMESPACE */ - -# if defined (_STLP_USE_EXCEPTIONS) && \ - (defined (_STLP_NO_NEW_NEW_HEADER) || defined (_STLP_NEW_DONT_THROW_BAD_ALLOC)) -# define _STLP_CHECK_NULL_ALLOC(__x) void* __y = __x; if (__y == 0) { _STLP_THROW(_STLP_STD::bad_alloc()); } return __y -# else -# define _STLP_CHECK_NULL_ALLOC(__x) return __x -# endif - -_STLP_BEGIN_NAMESPACE - -# if ((defined (__IBMCPP__) || defined (__OS400__) || defined (__xlC__) || defined (qTidyHeap)) && defined (__DEBUG_ALLOC__)) -inline void* _STLP_CALL __stl_new(size_t __n) { _STLP_CHECK_NULL_ALLOC(::operator _STLP_NEW(__n, __FILE__, __LINE__)); } -inline void _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p, __FILE__, __LINE__); } -# else -inline void* _STLP_CALL __stl_new(size_t __n) { _STLP_CHECK_NULL_ALLOC(::operator _STLP_NEW(__n)); } -inline void _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p); } -# endif -_STLP_END_NAMESPACE - -#endif /* _STLP_RTTI_BUG */ - -#endif /* _STLP_INTERNAL_NEW */ - - -/* - * Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/stl/_null_stream.h b/WebKit/android/stlport/stl/_null_stream.h deleted file mode 100644 index ecdb7a2..0000000 --- a/WebKit/android/stlport/stl/_null_stream.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 2000 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_NULL_STREAM_H -# define _STLP_NULL_STREAM_H - -_STLP_BEGIN_NAMESPACE - -struct __null_stream -{ - void flush() { } -}; - -template <class _Tp> -__null_stream& operator <<(__null_stream& __x, const _Tp& ) -{ - return __x; -} - -template <class _Tp> -__null_stream& operator >>(const _Tp&, __null_stream& __x ) -{ - return __x; -} - -extern __null_stream cin, cout, cerr, endl, ws, hex, dec; - -_STLP_END_NAMESPACE - -# endif diff --git a/WebKit/android/stlport/stl/_num_get.c b/WebKit/android/stlport/stl/_num_get.c deleted file mode 100644 index da12993..0000000 --- a/WebKit/android/stlport/stl/_num_get.c +++ /dev/null @@ -1,679 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_NUM_GET_C -#define _STLP_NUM_GET_C - -#ifndef _STLP_INTERNAL_NUM_GET_H -# include <stl/_num_get.h> -#endif - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -_STLP_DECLSPEC unsigned char _STLP_CALL __digit_val_table(unsigned); -_STLP_DECLSPEC const char* _STLP_CALL __narrow_atoms(); - -template < class _InputIter, class _Integer, class _CharT> -_InputIter _STLP_CALL -__do_get_integer(_InputIter&, _InputIter&, ios_base&, ios_base::iostate&, _Integer&, _CharT*); - -// __do_get_integer and its helper functions. - -inline bool _STLP_CALL __get_fdigit(char __c, const char*) -{ return __c >= '0' && __c <= '9'; } - -inline bool _STLP_CALL __get_fdigit_or_sep(char& __c, char __sep, const char *__digits) { - if (__c == __sep) { - __c = ',' ; - return true ; - } - else - return __get_fdigit(__c, __digits); -} - -inline int _STLP_CALL -__get_digit_from_table(unsigned __index) -{ return (__index > 127 ? 0xFF : __digit_val_table(__index)); } - -template <class _InputIter, class _CharT> -int -__get_base_or_zero(_InputIter& __in_ite, _InputIter& __end, ios_base& __str, _CharT*) { - _CharT __atoms[5]; - const ctype<_CharT>& __c_type = *__STATIC_CAST(const ctype<_CharT>*, __str._M_ctype_facet()); - - __c_type.widen(__narrow_atoms(), __narrow_atoms() + 5, __atoms); - - bool __negative = false; - _CharT __c = *__in_ite; - - if (__c == __atoms[1] /* __xminus_char */ ) { - __negative = true; - ++__in_ite; - } - else if (__c == __atoms[0] /* __xplus_char */ ) - ++__in_ite; - - int __base; - int __valid_zero = 0; - - ios_base::fmtflags __basefield = __str.flags() & ios_base::basefield; - - switch (__basefield) { - case ios_base::oct: - __base = 8; - break; - case ios_base::dec: - __base = 10; - break; - case ios_base::hex: - __base = 16; - if (__in_ite != __end && *__in_ite == __atoms[2] /* __zero_char */ ) { - ++__in_ite; - if (__in_ite != __end && - (*__in_ite == __atoms[3] /* __x_char */ || *__in_ite == __atoms[4] /* __X_char */ )) - ++__in_ite; - else - __valid_zero = 1; // That zero is valid by itself. - } - break; - default: - if (__in_ite != __end && *__in_ite == __atoms[2] /* __zero_char */ ) { - ++__in_ite; - if (__in_ite != __end && - (*__in_ite == __atoms[3] /* __x_char */ || *__in_ite == __atoms[4] /* __X_char */ )) { - ++__in_ite; - __base = 16; - } - else - { - __base = 8; - __valid_zero = 1; // That zero is still valid by itself. - } - } - else - __base = 10; - break; - } - return (__base << 2) | ((int)__negative << 1) | __valid_zero; -} - - -template <class _InputIter, class _Integer, class _CharT> -bool _STLP_CALL -__get_integer(_InputIter& __first, _InputIter& __last, - int __base, _Integer& __val, - int __got, bool __is_negative, _CharT __separator, const string& __grouping, const __true_type& /*_IsSigned*/) { - bool __ovflow = false; - _Integer __result = 0; - bool __is_group = !__grouping.empty(); - char __group_sizes[64]; - char __current_group_size = 0; - char* __group_sizes_end = __group_sizes; - - _Integer __over_base = (numeric_limits<_Integer>::min)() / __STATIC_CAST(_Integer, __base); - - for ( ; __first != __last ; ++__first) { - - const _CharT __c = *__first; - - if (__is_group && __c == __separator) { - *__group_sizes_end++ = __current_group_size; - __current_group_size = 0; - continue; - } - - int __n = __get_digit_from_table(__c); - - if (__n >= __base) - break; - - ++__got; - ++__current_group_size; - - if (__result < __over_base) - __ovflow = true; // don't need to keep accumulating - else { - _Integer __next = __STATIC_CAST(_Integer, __base * __result - __n); - if (__result != 0) - __ovflow = __ovflow || __next >= __result; - __result = __next; - } - } - - if (__is_group && __group_sizes_end != __group_sizes) { - *__group_sizes_end++ = __current_group_size; - } - - // fbp : added to not modify value if nothing was read - if (__got > 0) { - __val = __ovflow ? __is_negative ? (numeric_limits<_Integer>::min)() - : (numeric_limits<_Integer>::max)() - : __is_negative ? __result - : __STATIC_CAST(_Integer, -__result); - } - // overflow is being treated as failure - return ((__got > 0) && !__ovflow) && - (__is_group == 0 || - __valid_grouping(__group_sizes, __group_sizes_end, - __grouping.data(), __grouping.data()+ __grouping.size())); -} - -template <class _InputIter, class _Integer, class _CharT> -bool _STLP_CALL -__get_integer(_InputIter& __first, _InputIter& __last, - int __base, _Integer& __val, - int __got, bool __is_negative, _CharT __separator, const string& __grouping, const __false_type& /*_IsSigned*/) { - bool __ovflow = false; - _Integer __result = 0; - bool __is_group = !__grouping.empty(); - char __group_sizes[64]; - char __current_group_size = 0; - char* __group_sizes_end = __group_sizes; - - _Integer __over_base = (numeric_limits<_Integer>::max)() / __STATIC_CAST(_Integer, __base); - - for ( ; __first != __last ; ++__first) { - - const _CharT __c = *__first; - - if (__is_group && __c == __separator) { - *__group_sizes_end++ = __current_group_size; - __current_group_size = 0; - continue; - } - - int __n = __get_digit_from_table(__c); - - if (__n >= __base) - break; - - ++__got; - ++__current_group_size; - - if (__result > __over_base) - __ovflow = true; //don't need to keep accumulating - else { - _Integer __next = __STATIC_CAST(_Integer, __base * __result + __n); - if (__result != 0) - __ovflow = __ovflow || __next <= __result; - __result = __next; - } - } - - if (__is_group && __group_sizes_end != __group_sizes) { - *__group_sizes_end++ = __current_group_size; - } - - // fbp : added to not modify value if nothing was read - if (__got > 0) { - __val = __ovflow ? (numeric_limits<_Integer>::max)() - : (__is_negative ? __STATIC_CAST(_Integer, -__result) - : __result); - } - - // overflow is being treated as failure - return ((__got > 0) && !__ovflow) && - (__is_group == 0 || - __valid_grouping(__group_sizes, __group_sizes_end, - __grouping.data(), __grouping.data()+ __grouping.size())); -} - - -template <class _InputIter, class _Integer, class _CharT> -bool _STLP_CALL -__get_decimal_integer(_InputIter& __first, _InputIter& __last, _Integer& __val, _CharT* /*dummy*/) { - string __grp; - //Here there is no grouping so separator is not important, we just pass the default charater. - return __get_integer(__first, __last, 10, __val, 0, false, _CharT() /*separator*/, __grp, __false_type()); -} - -template <class _InputIter, class _Integer, class _CharT> -_InputIter _STLP_CALL -__do_get_integer(_InputIter& __in_ite, _InputIter& __end, ios_base& __str, - ios_base::iostate& __err, _Integer& __val, _CharT* __pc) { -#if defined (__HP_aCC) && (__HP_aCC == 1) - bool _IsSigned = !((_Integer)(-1) > 0); -#else - typedef typename __bool2type<numeric_limits<_Integer>::is_signed>::_Ret _IsSigned; -#endif - - const numpunct<_CharT>& __numpunct = *__STATIC_CAST(const numpunct<_CharT>*, __str._M_numpunct_facet()); - const string& __grouping = __str._M_grouping(); // cached copy - - const int __base_or_zero = __get_base_or_zero(__in_ite, __end, __str, __pc); - int __got = __base_or_zero & 1; - - bool __result; - - if (__in_ite == __end) { // We may have already read a 0. If so, - - if (__got > 0) { // the result is 0 even if we're at eof. - __val = 0; - __result = true; - } - else - __result = false; - } - else { - const bool __negative = (__base_or_zero & 2) != 0; - const int __base = __base_or_zero >> 2; - -#if defined (__HP_aCC) && (__HP_aCC == 1) - if (_IsSigned) - __result = __get_integer(__in_ite, __end, __base, __val, __got, __negative, __numpunct.thousands_sep(), __grouping, __true_type() ); - else - __result = __get_integer(__in_ite, __end, __base, __val, __got, __negative, __numpunct.thousands_sep(), __grouping, __false_type() ); -#else - __result = __get_integer(__in_ite, __end, __base, __val, __got, __negative, __numpunct.thousands_sep(), __grouping, _IsSigned()); -# endif - } - - __err = __STATIC_CAST(ios_base::iostate, __result ? ios_base::goodbit : ios_base::failbit); - - if (__in_ite == __end) - __err |= ios_base::eofbit; - return __in_ite; -} - -// __read_float and its helper functions. -template <class _InputIter, class _CharT> -_InputIter _STLP_CALL -__copy_sign(_InputIter __first, _InputIter __last, __iostring& __v, - _CharT __xplus, _CharT __xminus) { - if (__first != __last) { - _CharT __c = *__first; - if (__c == __xplus) - ++__first; - else if (__c == __xminus) { - __v.push_back('-'); - ++__first; - } - } - return __first; -} - - -template <class _InputIter, class _CharT> -bool _STLP_CALL -__copy_digits(_InputIter& __first, _InputIter __last, - __iostring& __v, const _CharT* __digits) { - bool __ok = false; - - for ( ; __first != __last; ++__first) { - _CharT __c = *__first; - if (__get_fdigit(__c, __digits)) { - __v.push_back((char)__c); - __ok = true; - } - else - break; - } - return __ok; -} - -template <class _InputIter, class _CharT> -bool _STLP_CALL -__copy_grouped_digits(_InputIter& __first, _InputIter __last, - __iostring& __v, const _CharT * __digits, - _CharT __sep, const string& __grouping, - bool& __grouping_ok) { - bool __ok = false; - char __group_sizes[64]; - char*__group_sizes_end = __group_sizes; - char __current_group_size = 0; - - for ( ; __first != __last; ++__first) { - _CharT __c = *__first; - bool __tmp = __get_fdigit_or_sep(__c, __sep, __digits); - if (__tmp) { - if (__c == ',') { - *__group_sizes_end++ = __current_group_size; - __current_group_size = 0; - } - else { - __ok = true; - __v.push_back((char)__c); - ++__current_group_size; - } - } - else - break; - } - - if (__group_sizes_end != __group_sizes) - *__group_sizes_end++ = __current_group_size; - __grouping_ok = __valid_grouping(__group_sizes, __group_sizes_end, __grouping.data(), __grouping.data() + __grouping.size()); - return __ok; -} - - -template <class _InputIter, class _CharT> -bool _STLP_CALL -__read_float(__iostring& __buf, _InputIter& __in_ite, _InputIter& __end, ios_base& __s, _CharT*) { - // Create a string, copying characters of the form - // [+-]? [0-9]* .? [0-9]* ([eE] [+-]? [0-9]+)? - - bool __digits_before_dot /* = false */; - bool __digits_after_dot = false; - bool __ok; - - bool __grouping_ok = true; - - const ctype<_CharT>& __ct = *__STATIC_CAST(const ctype<_CharT>*, __s._M_ctype_facet()); - const numpunct<_CharT>& __numpunct = *__STATIC_CAST(const numpunct<_CharT>*, __s._M_numpunct_facet()); - const string& __grouping = __s._M_grouping(); // cached copy - - _CharT __dot = __numpunct.decimal_point(); - _CharT __sep = __numpunct.thousands_sep(); - - _CharT __digits[10]; - _CharT __xplus; - _CharT __xminus; - - _CharT __pow_e; - _CharT __pow_E; - - _Initialize_get_float(__ct, __xplus, __xminus, __pow_e, __pow_E, __digits); - - // Get an optional sign - __in_ite = __copy_sign(__in_ite, __end, __buf, __xplus, __xminus); - - // Get an optional string of digits. - if (!__grouping.empty()) - __digits_before_dot = __copy_grouped_digits(__in_ite, __end, __buf, __digits, - __sep, __grouping, __grouping_ok); - else - __digits_before_dot = __copy_digits(__in_ite, __end, __buf, __digits); - - // Get an optional decimal point, and an optional string of digits. - if (__in_ite != __end && *__in_ite == __dot) { - __buf.push_back('.'); - ++__in_ite; - __digits_after_dot = __copy_digits(__in_ite, __end, __buf, __digits); - } - - // There have to be some digits, somewhere. - __ok = __digits_before_dot || __digits_after_dot; - - // Get an optional exponent. - if (__ok && __in_ite != __end && (*__in_ite == __pow_e || *__in_ite == __pow_E)) { - __buf.push_back('e'); - ++__in_ite; - __in_ite = __copy_sign(__in_ite, __end, __buf, __xplus, __xminus); - __ok = __copy_digits(__in_ite, __end, __buf, __digits); - // If we have an exponent then the sign - // is optional but the digits aren't. - } - - return __ok; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -// -// num_get<>, num_put<> -// - -#if ( _STLP_STATIC_TEMPLATE_DATA > 0 ) -# if !defined (__BORLANDC__) -template <class _CharT, class _InputIterator> -locale::id num_get<_CharT, _InputIterator>::id; -# endif - -# if (defined (__CYGWIN__) || defined (__MINGW32__)) && \ - defined (_STLP_USE_DYNAMIC_LIB) && !defined (__BUILDING_STLPORT) -/* - * Under cygwin, when STLport is used as a shared library, the id needs - * to be specified as imported otherwise they will be duplicated in the - * calling executable. - */ -template <> -_STLP_DECLSPEC locale::id num_get<char, istreambuf_iterator<char, char_traits<char> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id num_get<char, const char*>::id; -*/ - -# if !defined (STLP_NO_WCHAR_T) -template <> -_STLP_DECLSPEC locale::id num_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id num_get<wchar_t, const wchar_t*>::id; -*/ -# endif - -# endif /* __CYGWIN__ && _STLP_USE_DYNAMIC_LIB */ - -#else /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -//typedef num_get<char, const char*> num_get_char; -typedef num_get<char, istreambuf_iterator<char, char_traits<char> > > num_get_char_2; - -//__DECLARE_INSTANCE(locale::id, num_get_char::id, ); -__DECLARE_INSTANCE(locale::id, num_get_char_2::id, ); - -# if !defined (_STLP_NO_WCHAR_T) - -//typedef num_get<wchar_t, const wchar_t*> num_get_wchar_t; -typedef num_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > > num_get_wchar_t_2; - -//__DECLARE_INSTANCE(locale::id, num_get_wchar_t::id, ); -__DECLARE_INSTANCE(locale::id, num_get_wchar_t_2::id, ); - -# endif - -#endif /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -#if !defined (_STLP_NO_BOOL) -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, - ios_base& __s, - ios_base::iostate& __err, bool& __x) const { - if (__s.flags() & ios_base::boolalpha) { - locale __loc = __s.getloc(); - const _Numpunct& __np = *__STATIC_CAST(const _Numpunct*, __s._M_numpunct_facet()); - // const numpunct<_CharT>& __np = use_facet<numpunct<_CharT> >(__loc) ; -// const ctype<_CharT>& __ct = use_facet<ctype<_CharT> >(__loc) ; - - const basic_string<_CharT> __truename = __np.truename(); - const basic_string<_CharT> __falsename = __np.falsename(); - bool __true_ok = true; - bool __false_ok = true; - - size_t __n = 0; - for ( ; __in_ite != __end; ++__in_ite) { - _CharT __c = *__in_ite; - __true_ok = __true_ok && (__c == __truename[__n]); - __false_ok = __false_ok && (__c == __falsename[__n]); - ++__n; - - if ((!__true_ok && !__false_ok) || - (__true_ok && __n >= __truename.size()) || - (__false_ok && __n >= __falsename.size())) { - ++__in_ite; - break; - } - } - if (__true_ok && __n < __truename.size()) __true_ok = false; - if (__false_ok && __n < __falsename.size()) __false_ok = false; - - if (__true_ok || __false_ok) { - __err = ios_base::goodbit; - __x = __true_ok; - } - else - __err = ios_base::failbit; - - if (__in_ite == __end) - __err |= ios_base::eofbit; - - return __in_ite; - } - - else { - long __lx; - _InputIter __tmp = this->do_get(__in_ite, __end, __s, __err, __lx); - if (!(__err & ios_base::failbit)) { - if (__lx == 0) - __x = false; - else if (__lx == 1) - __x = true; - else - __err |= ios_base::failbit; - } - return __tmp; - } -} - -#endif /* _STLP_NO_BOOL */ - -#if defined (_STLP_FIX_LIBRARY_ISSUES) -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, short& __val) const -{ return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); } - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, int& __val) const -{ return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); } - -#endif - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, long& __val) const -{ return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); } - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - unsigned short& __val) const -{ return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); } - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - unsigned int& __val) const -{ return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); } - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - unsigned long& __val) const -{ return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); } - - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - float& __val) const { - _STLP_PRIV __iostring __buf ; - bool __ok = _STLP_PRIV __read_float(__buf, __in_ite, __end, __str, (_CharT*)0 ); - _STLP_PRIV __string_to_float(__buf, __val); - __err = __STATIC_CAST(ios_base::iostate, __ok ? ios_base::goodbit : ios_base::failbit); - if (__in_ite == __end) - __err |= ios_base::eofbit; - return __in_ite; -} - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - double& __val) const { - _STLP_PRIV __iostring __buf ; - bool __ok = _STLP_PRIV __read_float(__buf, __in_ite, __end, __str, (_CharT*)0 ); - _STLP_PRIV __string_to_float(__buf, __val); - __err = __STATIC_CAST(ios_base::iostate, __ok ? ios_base::goodbit : ios_base::failbit); - if (__in_ite == __end) - __err |= ios_base::eofbit; - return __in_ite; -} - -#if !defined (_STLP_NO_LONG_DOUBLE) -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - long double& __val) const { - _STLP_PRIV __iostring __buf ; - bool __ok = _STLP_PRIV __read_float(__buf, __in_ite, __end, __str, (_CharT*)0 ); - _STLP_PRIV __string_to_float(__buf, __val); - __err = __STATIC_CAST(ios_base::iostate, __ok ? ios_base::goodbit : ios_base::failbit); - if (__in_ite == __end) - __err |= ios_base::eofbit; - return __in_ite; -} -#endif /* _STLP_NO_LONG_DOUBLE */ - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - void*& __p) const { -#if defined (_STLP_LONG_LONG) && !defined (__MRC__) //*ty 12/07/2001 - MrCpp can not cast from long long to void* - unsigned _STLP_LONG_LONG __val; -#else - unsigned long __val; -#endif - iter_type __tmp = _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); - if (!(__err & ios_base::failbit)) - __p = __REINTERPRET_CAST(void*,__val); - return __tmp; - } - -#if defined (_STLP_LONG_LONG) -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - _STLP_LONG_LONG& __val) const { - return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); -} - -template <class _CharT, class _InputIter> -_InputIter -num_get<_CharT, _InputIter>::do_get(_InputIter __in_ite, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, - unsigned _STLP_LONG_LONG& __val) const { - return _STLP_PRIV __do_get_integer(__in_ite, __end, __str, __err, __val, (_CharT*)0 ); -} -#endif /* _STLP_LONG_LONG */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_NUMERIC_FACETS_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_num_get.h b/WebKit/android/stlport/stl/_num_get.h deleted file mode 100644 index d764eea..0000000 --- a/WebKit/android/stlport/stl/_num_get.h +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_NUM_GET_H -#define _STLP_INTERNAL_NUM_GET_H - -#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H -# include <stl/_istreambuf_iterator.h> -#endif - -#ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -#endif - -#ifndef _STLP_INTERNAL_NUMPUNCT_H -# include <stl/_numpunct.h> -#endif - -#ifndef _STLP_INTERNAL_CTYPE_H -# include <stl/_ctype.h> -#endif - -#ifndef _STLP_INTERNAL_IOSTREAM_STRING_H -# include <stl/_iostream_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// num_get facets - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _CharT, class _InputIter> -#else -template <class _CharT, class _InputIter = istreambuf_iterator<_CharT, char_traits<_CharT> > > -#endif -class num_get: public locale::facet { - friend class _Locale_impl; -public: - typedef _CharT char_type; - typedef _InputIter iter_type; - - explicit num_get(size_t __refs = 0): locale::facet(__refs) {} - -#if !defined (_STLP_NO_BOOL) - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, bool& __val) const - { return do_get(__ii, __end, __str, __err, __val); } -#endif - -#if defined (_STLP_FIX_LIBRARY_ISSUES) - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, short& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, int& __val) const - { return do_get(__ii, __end, __str, __err, __val); } -#endif - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, long& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned short& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned int& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned long& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - -#if defined (_STLP_LONG_LONG) - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, _STLP_LONG_LONG& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned _STLP_LONG_LONG& __val) const - { return do_get(__ii, __end, __str, __err, __val); } -#endif /* _STLP_LONG_LONG */ - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, float& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, double& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - -#if !defined (_STLP_NO_LONG_DOUBLE) - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, long double& __val) const - { return do_get(__ii, __end, __str, __err, __val); } -# endif - - _InputIter get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, void*& __val) const - { return do_get(__ii, __end, __str, __err, __val); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~num_get() {} - - typedef string string_type; - typedef ctype<_CharT> _Ctype; - typedef numpunct<_CharT> _Numpunct; - -#if !defined (_STLP_NO_BOOL) - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, bool& __val) const; -#endif - - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, long& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned short& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned int& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned long& __val) const; - -#if defined (_STLP_FIX_LIBRARY_ISSUES) - // issue 118 : those are actually not supposed to be here - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, short& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, int& __val) const; -#endif - - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, float& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, double& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, void*& __p) const; - -#if !defined (_STLP_NO_LONG_DOUBLE) - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, long double& __val) const; -#endif - -#if defined (_STLP_LONG_LONG) - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, _STLP_LONG_LONG& __val) const; - virtual _InputIter do_get(_InputIter __ii, _InputIter __end, ios_base& __str, - ios_base::iostate& __err, unsigned _STLP_LONG_LONG& __val) const; -#endif - -}; - - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS num_get<char, istreambuf_iterator<char, char_traits<char> > >; -// _STLP_EXPORT_TEMPLATE_CLASS num_get<char, const char*>; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS num_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >; -// _STLP_EXPORT_TEMPLATE_CLASS num_get<wchar_t, const wchar_t*>; -# endif -#endif - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) - -_STLP_MOVE_TO_PRIV_NAMESPACE - -_STLP_DECLSPEC bool _STLP_CALL __valid_grouping(const char*, const char*, const char*, const char*); - -template <class _InputIter, class _Integer, class _CharT> -bool _STLP_CALL -__get_decimal_integer(_InputIter& __first, _InputIter& __last, _Integer& __val, _CharT*); - -# if !defined (_STLP_NO_WCHAR_T) -bool _STLP_DECLSPEC _STLP_CALL __get_fdigit(wchar_t&, const wchar_t*); -bool _STLP_DECLSPEC _STLP_CALL __get_fdigit_or_sep(wchar_t&, wchar_t, const wchar_t*); -# endif - -inline void _STLP_CALL -_Initialize_get_float(const ctype<char>&, - char& Plus, char& Minus, - char& pow_e, char& pow_E, - char*) { - Plus = '+'; - Minus = '-'; - pow_e = 'e'; - pow_E = 'E'; -} - -# if !defined (_STLP_NO_WCHAR_T) -void _STLP_DECLSPEC _STLP_CALL _Initialize_get_float(const ctype<wchar_t>&, - wchar_t&, wchar_t&, wchar_t&, wchar_t&, wchar_t*); -# endif -void _STLP_DECLSPEC _STLP_CALL __string_to_float(const __iostring&, float&); -void _STLP_DECLSPEC _STLP_CALL __string_to_float(const __iostring&, double&); -# if !defined (_STLP_NO_LONG_DOUBLE) -void _STLP_DECLSPEC _STLP_CALL __string_to_float(const __iostring&, long double&); -# endif - -_STLP_MOVE_TO_STD_NAMESPACE - -#endif /* _STLP_EXPOSE_STREAM_IMPLEMENTATION */ - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_num_get.c> -#endif - -#endif /* _STLP_INTERNAL_NUM_GET_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_num_put.c b/WebKit/android/stlport/stl/_num_put.c deleted file mode 100644 index 5bc7c3b..0000000 --- a/WebKit/android/stlport/stl/_num_put.c +++ /dev/null @@ -1,552 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_NUM_PUT_C -#define _STLP_NUM_PUT_C - -#ifndef _STLP_INTERNAL_NUM_PUT_H -# include <stl/_num_put.h> -#endif - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// __do_put_float and its helper functions. Strategy: write the output -// to a buffer of char, transform the buffer to _CharT, and then copy -// it to the output. - -//---------------------------------------------------------------------- -// num_put facet - -template <class _CharT, class _OutputIter> -_OutputIter _STLP_CALL -__copy_float_and_fill(const _CharT* __first, const _CharT* __last, - _OutputIter __oi, - ios_base::fmtflags __flags, - streamsize __width, _CharT __fill, - _CharT __xplus, _CharT __xminus) { - if (__width <= __last - __first) - return copy(__first, __last, __oi); - else { - streamsize __pad = __width - (__last - __first); - ios_base::fmtflags __dir = __flags & ios_base::adjustfield; - - if (__dir == ios_base::left) { - __oi = copy(__first, __last, __oi); - return __fill_n(__oi, __pad, __fill); - } - else if (__dir == ios_base::internal && __first != __last && - (*__first == __xplus || *__first == __xminus)) { - *__oi++ = *__first++; - __oi = __fill_n(__oi, __pad, __fill); - return copy(__first, __last, __oi); - } - else { - __oi = __fill_n(__oi, __pad, __fill); - return copy(__first, __last, __oi); - } - } -} - -#if !defined (_STLP_NO_WCHAR_T) -// Helper routine for wchar_t -template <class _OutputIter> -_OutputIter _STLP_CALL -__put_float(__iostring &__str, _OutputIter __oi, - ios_base& __f, wchar_t __fill, - wchar_t __decimal_point, wchar_t __sep, - size_t __group_pos, const string& __grouping) { - const ctype<wchar_t>& __ct = *__STATIC_CAST(const ctype<wchar_t>*, __f._M_ctype_facet()); - - __iowstring __wbuf; - __convert_float_buffer(__str, __wbuf, __ct, __decimal_point); - - if (!__grouping.empty()) { - __insert_grouping(__wbuf, __group_pos, __grouping, - __sep, __ct.widen('+'), __ct.widen('-'), 0); - } - - return __copy_float_and_fill(__CONST_CAST(wchar_t*, __wbuf.data()), - __CONST_CAST(wchar_t*, __wbuf.data()) + __wbuf.size(), __oi, - __f.flags(), __f.width(0), __fill, __ct.widen('+'), __ct.widen('-')); -} -#endif /* WCHAR_T */ - -// Helper routine for char -template <class _OutputIter> -_OutputIter _STLP_CALL -__put_float(__iostring &__str, _OutputIter __oi, - ios_base& __f, char __fill, - char __decimal_point, char __sep, - size_t __group_pos, const string& __grouping) { - if ((__group_pos < __str.size()) && (__str[__group_pos] == '.')) { - __str[__group_pos] = __decimal_point; - } - - if (!__grouping.empty()) { - __insert_grouping(__str, __group_pos, - __grouping, __sep, '+', '-', 0); - } - - return __copy_float_and_fill(__CONST_CAST(char*, __str.data()), - __CONST_CAST(char*, __str.data()) + __str.size(), __oi, - __f.flags(), __f.width(0), __fill, '+', '-'); -} - -template <class _CharT, class _OutputIter, class _Float> -_OutputIter _STLP_CALL -__do_put_float(_OutputIter __s, ios_base& __f, - _CharT __fill, _Float __x) { - __iostring __buf; - - size_t __group_pos = __write_float(__buf, __f.flags(), (int)__f.precision(), __x); - - const numpunct<_CharT>& __np = *__STATIC_CAST(const numpunct<_CharT>*, __f._M_numpunct_facet()); - - return __put_float(__buf, __s, __f, __fill, - __np.decimal_point(), __np.thousands_sep(), - __group_pos, __f._M_grouping()); -} - -inline void __get_money_digits_aux (__iostring &__buf, ios_base &, _STLP_LONGEST_FLOAT_TYPE __x) -{ __get_floor_digits(__buf, __x); } - -#if !defined (_STLP_NO_WCHAR_T) -inline void __get_money_digits_aux (__iowstring &__wbuf, ios_base &__f, _STLP_LONGEST_FLOAT_TYPE __x) { - __iostring __buf; - __get_floor_digits(__buf, __x); - - const ctype<wchar_t>& __ct = *__STATIC_CAST(const ctype<wchar_t>*, __f._M_ctype_facet()); - __convert_float_buffer(__buf, __wbuf, __ct, wchar_t(0), false); -} -#endif - -template <class _CharT> -void _STLP_CALL __get_money_digits(_STLP_BASIC_IOSTRING(_CharT) &__buf, ios_base& __f, _STLP_LONGEST_FLOAT_TYPE __x) -{ __get_money_digits_aux(__buf, __f, __x); } - -// _M_do_put_integer and its helper functions. - -template <class _CharT, class _OutputIter> -_OutputIter _STLP_CALL -__copy_integer_and_fill(const _CharT* __buf, ptrdiff_t __len, - _OutputIter __oi, - ios_base::fmtflags __flg, streamsize __wid, _CharT __fill, - _CharT __xplus, _CharT __xminus) { - if (__len >= __wid) - return copy(__buf, __buf + __len, __oi); - else { - //casting numeric_limits<ptrdiff_t>::max to streamsize only works is ptrdiff_t is signed or streamsize representation - //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)()), - __STATIC_CAST(streamsize, __wid - __len))); - ios_base::fmtflags __dir = __flg & ios_base::adjustfield; - - if (__dir == ios_base::left) { - __oi = copy(__buf, __buf + __len, __oi); - return __fill_n(__oi, __pad, __fill); - } - else if (__dir == ios_base::internal && __len != 0 && - (__buf[0] == __xplus || __buf[0] == __xminus)) { - *__oi++ = __buf[0]; - __oi = __fill_n(__oi, __pad, __fill); - return copy(__buf + 1, __buf + __len, __oi); - } - else if (__dir == ios_base::internal && __len >= 2 && - (__flg & ios_base::showbase) && - (__flg & ios_base::basefield) == ios_base::hex) { - *__oi++ = __buf[0]; - *__oi++ = __buf[1]; - __oi = __fill_n(__oi, __pad, __fill); - return copy(__buf + 2, __buf + __len, __oi); - } - else { - __oi = __fill_n(__oi, __pad, __fill); - return copy(__buf, __buf + __len, __oi); - } - } -} - -#if !defined (_STLP_NO_WCHAR_T) -// Helper function for wchar_t -template <class _OutputIter> -_OutputIter _STLP_CALL -__put_integer(char* __buf, char* __iend, _OutputIter __s, - ios_base& __f, - ios_base::fmtflags __flags, wchar_t __fill) { - locale __loc = __f.getloc(); - // const ctype<wchar_t>& __ct = use_facet<ctype<wchar_t> >(__loc); - const ctype<wchar_t>& __ct = *__STATIC_CAST(const ctype<wchar_t>*, __f._M_ctype_facet()); - - wchar_t __xplus = __ct.widen('+'); - wchar_t __xminus = __ct.widen('-'); - - wchar_t __wbuf[64]; - __ct.widen(__buf, __iend, __wbuf); - ptrdiff_t __len = __iend - __buf; - wchar_t* __eend = __wbuf + __len; - - // const numpunct<wchar_t>& __np = use_facet<numpunct<wchar_t> >(__loc); - // const string& __grouping = __np.grouping(); - - const numpunct<wchar_t>& __np = *__STATIC_CAST(const numpunct<wchar_t>*, __f._M_numpunct_facet()); - const string& __grouping = __f._M_grouping(); - - if (!__grouping.empty()) { - int __basechars; - if (__flags & ios_base::showbase) - switch (__flags & ios_base::basefield) { - case ios_base::hex: __basechars = 2; break; - case ios_base::oct: __basechars = 1; break; - default: __basechars = 0; - } - else - __basechars = 0; - - __len = __insert_grouping(__wbuf, __eend, __grouping, __np.thousands_sep(), - __xplus, __xminus, __basechars); - } - - return __copy_integer_and_fill((wchar_t*)__wbuf, __len, __s, - __flags, __f.width(0), __fill, __xplus, __xminus); -} -#endif - -// Helper function for char -template <class _OutputIter> -_OutputIter _STLP_CALL -__put_integer(char* __buf, char* __iend, _OutputIter __s, - ios_base& __f, ios_base::fmtflags __flags, char __fill) { - char __grpbuf[64]; - ptrdiff_t __len = __iend - __buf; - - // const numpunct<char>& __np = use_facet<numpunct<char> >(__f.getloc()); - // const string& __grouping = __np.grouping(); - - const numpunct<char>& __np = *__STATIC_CAST(const numpunct<char>*, __f._M_numpunct_facet()); - const string& __grouping = __f._M_grouping(); - - if (!__grouping.empty()) { - int __basechars; - if (__flags & ios_base::showbase) - switch (__flags & ios_base::basefield) { - case ios_base::hex: __basechars = 2; break; - case ios_base::oct: __basechars = 1; break; - default: __basechars = 0; - } - else - __basechars = 0; - - // make sure there is room at the end of the buffer - // we pass to __insert_grouping - copy(__buf, __iend, (char *) __grpbuf); - __buf = __grpbuf; - __iend = __grpbuf + __len; - __len = __insert_grouping(__buf, __iend, __grouping, __np.thousands_sep(), - '+', '-', __basechars); - } - - return __copy_integer_and_fill(__buf, __len, __s, __flags, __f.width(0), __fill, '+', '-'); -} - -#if defined (_STLP_LONG_LONG) -typedef _STLP_LONG_LONG __max_int_t; -typedef unsigned _STLP_LONG_LONG __umax_int_t; -#else -typedef long __max_int_t; -typedef unsigned long __umax_int_t; -#endif - -_STLP_DECLSPEC const char* _STLP_CALL __hex_char_table_lo(); -_STLP_DECLSPEC const char* _STLP_CALL __hex_char_table_hi(); - -template <class _Integer> -inline char* _STLP_CALL -__write_decimal_backward(char* __ptr, _Integer __x, ios_base::fmtflags __flags, const __true_type& /* is_signed */) { - const bool __negative = __x < 0 ; - __max_int_t __temp = __x; - __umax_int_t __utemp = __negative?-__temp:__temp; - - for (; __utemp != 0; __utemp /= 10) - *--__ptr = (char)((int)(__utemp % 10) + '0'); - // put sign if needed or requested - if (__negative) - *--__ptr = '-'; - else if (__flags & ios_base::showpos) - *--__ptr = '+'; - return __ptr; -} - -template <class _Integer> -inline char* _STLP_CALL -__write_decimal_backward(char* __ptr, _Integer __x, ios_base::fmtflags __flags, const __false_type& /* is_signed */) { - for (; __x != 0; __x /= 10) - *--__ptr = (char)((int)(__x % 10) + '0'); - // put sign if requested - if (__flags & ios_base::showpos) - *--__ptr = '+'; - return __ptr; -} - -template <class _Integer> -char* _STLP_CALL -__write_integer_backward(char* __buf, ios_base::fmtflags __flags, _Integer __x) { - char* __ptr = __buf; - - if (__x == 0) { - *--__ptr = '0'; - if ((__flags & ios_base::showpos) && ((__flags & (ios_base::oct | ios_base::hex)) == 0)) - *--__ptr = '+'; - // oct or hex base shall not be added to the 0 value (see '#' flag in C formating strings) - } - else { - switch (__flags & ios_base::basefield) { - case ios_base::oct: - { - __umax_int_t __temp = __x; - // if the size of integer is less than 8, clear upper part - if ( sizeof(__x) < 8 && sizeof(__umax_int_t) >= 8 ) - __temp &= 0xFFFFFFFF; - - for (; __temp != 0; __temp >>=3) - *--__ptr = (char)((((unsigned)__temp)& 0x7) + '0'); - - // put leading '0' if showbase is set - if (__flags & ios_base::showbase) - *--__ptr = '0'; - } - break; - case ios_base::hex: - { - const char* __table_ptr = (__flags & ios_base::uppercase) ? - __hex_char_table_hi() : __hex_char_table_lo(); - __umax_int_t __temp = __x; - // if the size of integer is less than 8, clear upper part - if ( sizeof(__x) < 8 && sizeof(__umax_int_t) >= 8 ) - __temp &= 0xFFFFFFFF; - - for (; __temp != 0; __temp >>=4) - *--__ptr = __table_ptr[((unsigned)__temp & 0xF)]; - - if (__flags & ios_base::showbase) { - *--__ptr = __table_ptr[16]; - *--__ptr = '0'; - } - } - break; - //case ios_base::dec: - default: - { -#if defined(__HP_aCC) && (__HP_aCC == 1) - bool _IsSigned = !((_Integer)-1 > 0); - if (_IsSigned) - __ptr = __write_decimal_backward(__ptr, __x, __flags, __true_type() ); - else - __ptr = __write_decimal_backward(__ptr, __x, __flags, __false_type() ); -#else - typedef typename __bool2type<numeric_limits<_Integer>::is_signed>::_Ret _IsSigned; - __ptr = __write_decimal_backward(__ptr, __x, __flags, _IsSigned()); -#endif - } - break; - } - } - - // return pointer to beginning of the string - return __ptr; -} - -template <class _CharT, class _OutputIter, class _Integer> -_OutputIter _STLP_CALL -__do_put_integer(_OutputIter __s, ios_base& __f, _CharT __fill, _Integer __x) { - // buffer size = number of bytes * number of digit necessary in the smallest Standard base (base 8, 3 digits/byte) - // plus the longest base representation '0x' - // Do not use __buf_size to define __buf static buffer, some compilers (HP aCC) do not accept const variable as - // the specification of a static buffer size. - char __buf[sizeof(_Integer) * 3 + 2]; - const ptrdiff_t __buf_size = sizeof(__buf) / sizeof(char); - ios_base::fmtflags __flags = __f.flags(); - char* __ibeg = __write_integer_backward((char*)__buf+__buf_size, __flags, __x); - return __put_integer(__ibeg, (char*)__buf+__buf_size, __s, __f, __flags, __fill); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -// -// num_put<> -// - -#if (_STLP_STATIC_TEMPLATE_DATA > 0) - -# if !defined (__BORLANDC__) -template <class _CharT, class _OutputIterator> -locale::id num_put<_CharT, _OutputIterator>::id; -# endif - -# if (defined (__CYGWIN__) || defined (__MINGW32__)) && \ - defined (_STLP_USE_DYNAMIC_LIB) && !defined (__BUILDING_STLPORT) -/* - * Under cygwin, when STLport is used as a shared library, the id needs - * to be specified as imported otherwise they will be duplicated in the - * calling executable. - */ -template <> -_STLP_DECLSPEC locale::id num_put<char, ostreambuf_iterator<char, char_traits<char> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id num_put<char, char*>::id; -*/ - -# if !defined (_STLP_NO_WCHAR_T) -template <> -_STLP_DECLSPEC locale::id num_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id num_put<wchar_t, wchar_t*>::id; -*/ -# endif - -# endif /* __CYGWIN__ && _STLP_USE_DYNAMIC_LIB */ - -#else /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -//typedef num_put<char, char*> num_put_char; -typedef num_put<char, ostreambuf_iterator<char, char_traits<char> > > num_put_char_2; - -//__DECLARE_INSTANCE(locale::id, num_put_char::id, ); -__DECLARE_INSTANCE(locale::id, num_put_char_2::id, ); - -# if !defined (_STLP_NO_WCHAR_T) - -//typedef num_put<wchar_t, wchar_t*> num_put_wchar_t; -typedef num_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > > num_put_wchar_t_2; - -//__DECLARE_INSTANCE(locale::id, num_put_wchar_t::id, ); -__DECLARE_INSTANCE(locale::id, num_put_wchar_t_2::id, ); - -# endif - -#endif /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -// issue 118 - -#if !defined (_STLP_NO_BOOL) -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, - char_type __fill, bool __val) const { - if (!(__f.flags() & ios_base::boolalpha)) - return this->do_put(__s, __f, __fill, __STATIC_CAST(long,__val)); - - locale __loc = __f.getloc(); - // typedef numpunct<_CharT> _Punct; - // const _Punct& __np = use_facet<_Punct>(__loc); - - const numpunct<_CharT>& __np = *__STATIC_CAST(const numpunct<_CharT>*, __f._M_numpunct_facet()); - - basic_string<_CharT> __str = __val ? __np.truename() : __np.falsename(); - - // Reuse __copy_integer_and_fill. Since internal padding makes no - // sense for bool, though, make sure we use something else instead. - // The last two argument to __copy_integer_and_fill are dummies. - ios_base::fmtflags __flags = __f.flags(); - if ((__flags & ios_base::adjustfield) == ios_base::internal) - __flags = (__flags & ~ios_base::adjustfield) | ios_base::right; - - return _STLP_PRIV __copy_integer_and_fill(__str.c_str(), __str.size(), __s, - __flags, __f.width(0), __fill, - (_CharT) 0, (_CharT) 0); -} - -#endif - -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - long __val) const -{ return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); } - -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - unsigned long __val) const -{ return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); } - -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - double __val) const -{ return _STLP_PRIV __do_put_float(__s, __f, __fill, __val); } - -#if !defined (_STLP_NO_LONG_DOUBLE) -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - long double __val) const -{ return _STLP_PRIV __do_put_float(__s, __f, __fill, __val); } -#endif - -#if defined (_STLP_LONG_LONG) -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - _STLP_LONG_LONG __val) const -{ return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); } - -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - unsigned _STLP_LONG_LONG __val) const -{ return _STLP_PRIV __do_put_integer(__s, __f, __fill, __val); } -#endif /* _STLP_LONG_LONG */ - - -// lib.facet.num.put.virtuals "12 For conversion from void* the specifier is %p." -template <class _CharT, class _OutputIter> -_OutputIter -num_put<_CharT, _OutputIter>::do_put(_OutputIter __s, ios_base& __f, _CharT /*__fill*/, - const void* __val) const { - const ctype<_CharT>& __c_type = *__STATIC_CAST(const ctype<_CharT>*, __f._M_ctype_facet()); - ios_base::fmtflags __save_flags = __f.flags(); - - __f.setf(ios_base::hex, ios_base::basefield); - __f.setf(ios_base::showbase); - __f.setf(ios_base::internal, ios_base::adjustfield); - __f.width((sizeof(void*) * 2) + 2); // digits in pointer type plus '0x' prefix -# if defined(_STLP_LONG_LONG) && !defined(__MRC__) //*ty 11/24/2001 - MrCpp can not cast from void* to long long - _OutputIter result = this->do_put(__s, __f, __c_type.widen('0'), __REINTERPRET_CAST(unsigned _STLP_LONG_LONG,__val)); -# else - _OutputIter result = this->do_put(__s, __f, __c_type.widen('0'), __REINTERPRET_CAST(unsigned long,__val)); -# endif - __f.flags(__save_flags); - return result; -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_NUM_PUT_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_num_put.h b/WebKit/android/stlport/stl/_num_put.h deleted file mode 100644 index 077cd93..0000000 --- a/WebKit/android/stlport/stl/_num_put.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_NUM_PUT_H -#define _STLP_INTERNAL_NUM_PUT_H - -#ifndef _STLP_INTERNAL_NUMPUNCT_H -# include <stl/_numpunct.h> -#endif - -#ifndef _STLP_INTERNAL_CTYPE_H -# include <stl/_ctype.h> -#endif - -#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H -# include <stl/_ostreambuf_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_IOSTREAM_STRING_H -# include <stl/_iostream_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// num_put facet - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _CharT, class _OutputIter> -#else -template <class _CharT, class _OutputIter = ostreambuf_iterator<_CharT, char_traits<_CharT> > > -#endif -class num_put: public locale::facet { - friend class _Locale_impl; -public: - typedef _CharT char_type; - typedef _OutputIter iter_type; - - explicit num_put(size_t __refs = 0) : locale::facet(__refs) {} - -#if !defined (_STLP_NO_BOOL) - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - bool __val) const { - return do_put(__s, __f, __fill, __val); - } -#endif - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - long __val) const { - return do_put(__s, __f, __fill, __val); - } - - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - unsigned long __val) const { - return do_put(__s, __f, __fill, __val); - } - -#if defined (_STLP_LONG_LONG) - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - _STLP_LONG_LONG __val) const { - return do_put(__s, __f, __fill, __val); - } - - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - unsigned _STLP_LONG_LONG __val) const { - return do_put(__s, __f, __fill, __val); - } -#endif - - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - double __val) const { - return do_put(__s, __f, __fill, (double)__val); - } - -#if !defined (_STLP_NO_LONG_DOUBLE) - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - long double __val) const { - return do_put(__s, __f, __fill, __val); - } -#endif - - iter_type put(iter_type __s, ios_base& __f, char_type __fill, - const void * __val) const { - return do_put(__s, __f, __fill, __val); - } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - ~num_put() {} -#if !defined (_STLP_NO_BOOL) - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, bool __val) const; -#endif - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, long __val) const; - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, unsigned long __val) const; - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, double __val) const; -#if !defined (_STLP_NO_LONG_DOUBLE) - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, long double __val) const; -#endif - -#if defined (_STLP_LONG_LONG) - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, _STLP_LONG_LONG __val) const; - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, - unsigned _STLP_LONG_LONG __val) const ; -#endif - virtual _OutputIter do_put(_OutputIter __s, ios_base& __f, _CharT __fill, const void* __val) const; -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS num_put<char, ostreambuf_iterator<char, char_traits<char> > >; -// _STLP_EXPORT_TEMPLATE_CLASS num_put<char, char*>; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS num_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >; -// _STLP_EXPORT_TEMPLATE_CLASS num_put<wchar_t, wchar_t*>; -# endif -#endif - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Integer> -char* _STLP_CALL -__write_integer_backward(char* __buf, ios_base::fmtflags __flags, _Integer __x); - -/* - * Returns the position on the right of the digits that has to be considered - * for the application of the grouping policy. - */ -extern size_t _STLP_CALL __write_float(__iostring&, ios_base::fmtflags, int, double); -# if !defined (_STLP_NO_LONG_DOUBLE) -extern size_t _STLP_CALL __write_float(__iostring&, ios_base::fmtflags, int, long double); -# endif - -/* - * Gets the digits of the integer part. - */ -void _STLP_CALL __get_floor_digits(__iostring&, _STLP_LONGEST_FLOAT_TYPE); - -template <class _CharT> -void _STLP_CALL __get_money_digits(_STLP_BASIC_IOSTRING(_CharT)&, ios_base&, _STLP_LONGEST_FLOAT_TYPE); - -# if !defined (_STLP_NO_WCHAR_T) -extern void _STLP_CALL __convert_float_buffer(__iostring const&, __iowstring&, const ctype<wchar_t>&, wchar_t, bool = true); -# endif -extern void _STLP_CALL __adjust_float_buffer(__iostring&, char); - -extern char* _STLP_CALL -__write_integer(char* buf, ios_base::fmtflags flags, long x); - -extern ptrdiff_t _STLP_CALL __insert_grouping(char* first, char* last, const string&, char, char, char, int); -extern void _STLP_CALL __insert_grouping(__iostring&, size_t, const string&, char, char, char, int); -# if !defined (_STLP_NO_WCHAR_T) -extern ptrdiff_t _STLP_CALL __insert_grouping(wchar_t*, wchar_t*, const string&, wchar_t, wchar_t, wchar_t, int); -extern void _STLP_CALL __insert_grouping(__iowstring&, size_t, const string&, wchar_t, wchar_t, wchar_t, int); -# endif - -_STLP_MOVE_TO_STD_NAMESPACE - -#endif /* _STLP_EXPOSE_STREAM_IMPLEMENTATION */ - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_num_put.c> -#endif - -#endif /* _STLP_INTERNAL_NUMERIC_FACETS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_numeric.c b/WebKit/android/stlport/stl/_numeric.c deleted file mode 100644 index 6bd07ff..0000000 --- a/WebKit/android/stlport/stl/_numeric.c +++ /dev/null @@ -1,106 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_NUMERIC_C -#define _STLP_NUMERIC_C - -#ifndef _STLP_INTERNAL_NUMERIC_H -# include <stl/_numeric.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIterator, class _OutputIterator, class _Tp, - class _BinaryOperation> -_OutputIterator -__partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*, _BinaryOperation __binary_op) { - _STLP_DEBUG_CHECK(__check_range(__first, __last)) - if (__first == __last) return __result; - *__result = *__first; - - _Tp __val = *__first; - while (++__first != __last) { - __val = __binary_op(__val, *__first); - *++__result = __val; - } - return ++__result; -} - -template <class _InputIterator, class _OutputIterator, class _Tp, - class _BinaryOperation> -_OutputIterator -__adjacent_difference(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*, - _BinaryOperation __binary_op) { - _STLP_DEBUG_CHECK(__check_range(__first, __last)) - if (__first == __last) return __result; - *__result = *__first; - _Tp __val = *__first; - while (++__first != __last) { - _Tp __tmp = *__first; - *++__result = __binary_op(__tmp, __val); - __val = __tmp; - } - return ++__result; -} - - -template <class _Tp, class _Integer, class _MonoidOperation> -_Tp __power(_Tp __x, _Integer __n, _MonoidOperation __opr) { - _STLP_MPWFIX_TRY - if (__n == 0) - return __identity_element(__opr); - else { - while ((__n & 1) == 0) { - __n >>= 1; - __x = __opr(__x, __x); - } - _Tp __result = __x; - _STLP_MPWFIX_TRY - __n >>= 1; - while (__n != 0) { - __x = __opr(__x, __x); - if ((__n & 1) != 0) - __result = __opr(__result, __x); - __n >>= 1; - } - return __result; - _STLP_MPWFIX_CATCH - } - _STLP_MPWFIX_CATCH_ACTION(__x = _Tp()) -} - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_NUMERIC_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_numeric.h b/WebKit/android/stlport/stl/_numeric.h deleted file mode 100644 index 4844da1..0000000 --- a/WebKit/android/stlport/stl/_numeric.h +++ /dev/null @@ -1,191 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_NUMERIC_H -#define _STLP_INTERNAL_NUMERIC_H - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _InputIterator, class _Tp> -_STLP_INLINE_LOOP -_Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp _Init) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - _Init = _Init + *__first; - return _Init; -} - -template <class _InputIterator, class _Tp, class _BinaryOperation> -_STLP_INLINE_LOOP -_Tp accumulate(_InputIterator __first, _InputIterator __last, _Tp _Init, - _BinaryOperation __binary_op) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - for ( ; __first != __last; ++__first) - _Init = __binary_op(_Init, *__first); - return _Init; -} - -template <class _InputIterator1, class _InputIterator2, class _Tp> -_STLP_INLINE_LOOP -_Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _Tp _Init) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - for ( ; __first1 != __last1; ++__first1, ++__first2) - _Init = _Init + (*__first1 * *__first2); - return _Init; -} - -template <class _InputIterator1, class _InputIterator2, class _Tp, - class _BinaryOperation1, class _BinaryOperation2> -_STLP_INLINE_LOOP -_Tp inner_product(_InputIterator1 __first1, _InputIterator1 __last1, - _InputIterator2 __first2, _Tp _Init, - _BinaryOperation1 __binary_op1, - _BinaryOperation2 __binary_op2) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first1, __last1)) - for ( ; __first1 != __last1; ++__first1, ++__first2) - _Init = __binary_op1(_Init, __binary_op2(*__first1, *__first2)); - return _Init; -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIterator, class _OutputIterator, class _Tp, - class _BinaryOperation> -_OutputIterator -__partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*, _BinaryOperation __binary_op); - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIterator, class _OutputIterator> -inline _OutputIterator -partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result) { - return _STLP_PRIV __partial_sum(__first, __last, __result, _STLP_VALUE_TYPE(__first, _InputIterator), - _STLP_PRIV __plus(_STLP_VALUE_TYPE(__first, _InputIterator))); -} - -template <class _InputIterator, class _OutputIterator, class _BinaryOperation> -inline _OutputIterator -partial_sum(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _BinaryOperation __binary_op) { - return _STLP_PRIV __partial_sum(__first, __last, __result, _STLP_VALUE_TYPE(__first, _InputIterator), - __binary_op); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIterator, class _OutputIterator, class _Tp, - class _BinaryOperation> -_OutputIterator -__adjacent_difference(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _Tp*, - _BinaryOperation __binary_op); - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIterator, class _OutputIterator> -inline _OutputIterator -adjacent_difference(_InputIterator __first, - _InputIterator __last, _OutputIterator __result) { - return _STLP_PRIV __adjacent_difference(__first, __last, __result, - _STLP_VALUE_TYPE(__first, _InputIterator), - _STLP_PRIV __minus(_STLP_VALUE_TYPE(__first, _InputIterator))); -} - -template <class _InputIterator, class _OutputIterator, class _BinaryOperation> -_OutputIterator -adjacent_difference(_InputIterator __first, _InputIterator __last, - _OutputIterator __result, _BinaryOperation __binary_op) { - return _STLP_PRIV __adjacent_difference(__first, __last, __result, - _STLP_VALUE_TYPE(__first, _InputIterator), - __binary_op); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, class _Integer, class _MonoidOperation> -_Tp __power(_Tp __x, _Integer __n, _MonoidOperation __opr); - -_STLP_MOVE_TO_STD_NAMESPACE - -#if !defined (_STLP_NO_EXTENSIONS) - -// Returns __x ** __n, where __n >= 0. _Note that "multiplication" -// is required to be associative, but not necessarily commutative. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, class _Integer> -inline _Tp __power(_Tp __x, _Integer __n) { - return __power(__x, __n, multiplies<_Tp>()); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -// Alias for the internal name __power. Note that power is an extension, -// not part of the C++ standard. -template <class _Tp, class _Integer, class _MonoidOperation> -inline _Tp power(_Tp __x, _Integer __n, _MonoidOperation __opr) { - return _STLP_PRIV __power(__x, __n, __opr); -} - -template <class _Tp, class _Integer> -inline _Tp power(_Tp __x, _Integer __n) { - return _STLP_PRIV __power(__x, __n, multiplies<_Tp>()); -} - -// iota is not part of the C++ standard. It is an extension. - -template <class _ForwardIterator, class _Tp> -_STLP_INLINE_LOOP -void iota(_ForwardIterator __first, _ForwardIterator __last, _Tp __val) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - while (__first != __last) - *__first++ = __val++; -} -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_numeric.c> -#endif - -#endif /* _STLP_INTERNAL_NUMERIC_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_numpunct.h b/WebKit/android/stlport/stl/_numpunct.h deleted file mode 100644 index 504d979..0000000 --- a/WebKit/android/stlport/stl/_numpunct.h +++ /dev/null @@ -1,184 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_NUMPUNCT_H -#define _STLP_INTERNAL_NUMPUNCT_H - -#ifndef _STLP_IOS_BASE_H -# include <stl/_ios_base.h> -#endif - -# ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -# endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// numpunct facets - -template <class _CharT> class numpunct {}; -template <class _CharT> class numpunct_byname {}; -template <class _Ch, class _InIt> class num_get; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC numpunct<char> : public locale::facet -{ - friend class _Locale_impl; - -#ifndef _STLP_NO_FRIEND_TEMPLATES - template <class _Ch, class _InIt> friend class num_get; -#endif -public: - typedef char char_type; - typedef string string_type; - - explicit numpunct(size_t __refs = 0) - : locale::facet(__refs), _M_truename("true"), _M_falsename("false") {} - - char decimal_point() const { return do_decimal_point(); } - char thousands_sep() const { return do_thousands_sep(); } - string grouping() const { return do_grouping(); } - string truename() const { return do_truename(); } - string falsename() const { return do_falsename(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -#ifndef _STLP_NO_FRIEND_TEMPLATES -protected: -#endif - ~numpunct(); - - string _M_truename; - string _M_falsename; - string _M_grouping; - - virtual char do_decimal_point() const; - virtual char do_thousands_sep() const; - virtual string do_grouping() const; - virtual string do_truename() const; - virtual string do_falsename() const; -}; - -# if ! defined (_STLP_NO_WCHAR_T) - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC numpunct<wchar_t> : public locale::facet -{ - friend class _Locale_impl; -public: - typedef wchar_t char_type; - typedef wstring string_type; - - explicit numpunct(size_t __refs = 0) - : locale::facet(__refs), _M_truename(L"true"), _M_falsename(L"false") {} - - wchar_t decimal_point() const { return do_decimal_point(); } - wchar_t thousands_sep() const { return do_thousands_sep(); } - string grouping() const { return do_grouping(); } - wstring truename() const { return do_truename(); } - wstring falsename() const { return do_falsename(); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - wstring _M_truename; - wstring _M_falsename; - string _M_grouping; - - ~numpunct(); - - virtual wchar_t do_decimal_point() const; - virtual wchar_t do_thousands_sep() const; - virtual string do_grouping() const; - virtual wstring do_truename() const; - virtual wstring do_falsename() const; -}; - -# endif /* WCHAR_T */ - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC numpunct_byname<char> : public numpunct<char> { -public: - typedef char char_type; - typedef string string_type; - - explicit numpunct_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - - ~numpunct_byname(); - - virtual char do_decimal_point() const; - virtual char do_thousands_sep() const; - virtual string do_grouping() const; - -private: - _Locale_numeric* _M_numeric; - - //explicitely defined as private to avoid warnings: - typedef numpunct_byname<char> _Self; - numpunct_byname(_Self const&); - _Self& operator = (_Self const&); - friend _Locale_name_hint* _Locale_extract_hint(numpunct_byname<char>*); -}; - -# ifndef _STLP_NO_WCHAR_T -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC numpunct_byname<wchar_t>: public numpunct<wchar_t> { -public: - typedef wchar_t char_type; - typedef wstring string_type; - - explicit numpunct_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0); - -protected: - - ~numpunct_byname(); - - virtual wchar_t do_decimal_point() const; - virtual wchar_t do_thousands_sep() const; - virtual string do_grouping() const; - -private: - _Locale_numeric* _M_numeric; - - //explicitely defined as private to avoid warnings: - typedef numpunct_byname<wchar_t> _Self; - numpunct_byname(_Self const&); - _Self& operator = (_Self const&); -}; - -# endif /* WCHAR_T */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_NUMPUNCT_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_ostream.c b/WebKit/android/stlport/stl/_ostream.c deleted file mode 100644 index 6baf4ab..0000000 --- a/WebKit/android/stlport/stl/_ostream.c +++ /dev/null @@ -1,446 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_OSTREAM_C -#define _STLP_OSTREAM_C - -#ifndef _STLP_INTERNAL_OSTREAM_H -# include <stl/_ostream.h> -#endif - -#if !defined (_STLP_INTERNAL_NUM_PUT_H) -# include <stl/_num_put.h> // For basic_streambuf and iterators -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Definitions of non-inline member functions. - -// Constructor, destructor - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>::basic_ostream(basic_streambuf<_CharT, _Traits>* __buf) - : basic_ios<_CharT, _Traits>() { - this->init(__buf); -} - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>::~basic_ostream() -{} - -// Output directly from a streambuf. -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& -basic_ostream<_CharT, _Traits>::operator<<(basic_streambuf<_CharT, _Traits>* __from) { - sentry __sentry(*this); - if (__sentry) { - if (__from) { - bool __any_inserted = __from->gptr() != __from->egptr() - ? this->_M_copy_buffered(__from, this->rdbuf()) - : this->_M_copy_unbuffered(__from, this->rdbuf()); - if (!__any_inserted) - this->setstate(ios_base::failbit); - } - else - this->setstate(ios_base::badbit); - } - - return *this; -} - -// Helper functions for the streambuf version of operator<<. The -// exception-handling code is complicated because exceptions thrown -// while extracting characters are treated differently than exceptions -// thrown while inserting characters. - -template <class _CharT, class _Traits> -bool basic_ostream<_CharT, _Traits> - ::_M_copy_buffered(basic_streambuf<_CharT, _Traits>* __from, - basic_streambuf<_CharT, _Traits>* __to) { - bool __any_inserted = false; - - while (__from->egptr() != __from->gptr()) { - const ptrdiff_t __avail = __from->egptr() - __from->gptr(); - - streamsize __nwritten; - _STLP_TRY { - __nwritten = __to->sputn(__from->gptr(), __avail); - __from->gbump((int)__nwritten); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - return __any_inserted; - } - - if (__nwritten == __avail) { - _STLP_TRY { - if (this->_S_eof(__from->sgetc())) - return true; - else - __any_inserted = true; - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::failbit); - return false; - } - } - else if (__nwritten != 0) - return true; - else - return __any_inserted; - } - - // No characters are in the buffer, but we aren't at EOF. Switch to - // unbuffered mode. - return __any_inserted || this->_M_copy_unbuffered(__from, __to); -} - -/* - * Helper struct (guard) to put back a character in a streambuf - * whenever an exception or an eof occur. - */ -template <class _CharT, class _Traits> -struct _SPutBackC { - typedef basic_streambuf<_CharT, _Traits> _StreamBuf; - typedef typename _StreamBuf::int_type int_type; - _SPutBackC(_StreamBuf *pfrom) - : __pfrom(pfrom), __c(0), __do_guard(false) {} - ~_SPutBackC() { - if (__do_guard) { - __pfrom->sputbackc(_Traits::to_char_type(__c)); - } - } - - void guard(int_type c) { - __c = c; - __do_guard = true; - } - void release() { - __do_guard = false; - } - -private: - _StreamBuf *__pfrom; - int_type __c; - bool __do_guard; -}; - -template <class _CharT, class _Traits> -bool basic_ostream<_CharT, _Traits> - ::_M_copy_unbuffered(basic_streambuf<_CharT, _Traits>* __from, - basic_streambuf<_CharT, _Traits>* __to) { - typedef _SPutBackC<_CharT, _Traits> _SPutBackCGuard; - bool __any_inserted = false; - int_type __c; - - _STLP_TRY { - _SPutBackCGuard __cguard(__from); - for (;;) { - _STLP_TRY { - __c = __from->sbumpc(); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::failbit); - return __any_inserted; - } - - if ( this->_S_eof(__c) ) - return __any_inserted; - - __cguard.guard(__c); - if ( this->_S_eof( __to->sputc(_Traits::to_char_type(__c)) ) ) { - return __any_inserted; - } - - __cguard.release(); - __any_inserted = true; - } - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - return __any_inserted; - } -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Helper function for numeric output. -template <class _CharT, class _Traits, class _Number> -basic_ostream<_CharT, _Traits>& _STLP_CALL -__put_num(basic_ostream<_CharT, _Traits>& __os, _Number __x) { - typedef typename basic_ostream<_CharT, _Traits>::sentry _Sentry; - _Sentry __sentry(__os); - bool __failed = true; - - if (__sentry) { - _STLP_TRY { - typedef num_put<_CharT, ostreambuf_iterator<_CharT, _Traits> > _NumPut; - __failed = (use_facet<_NumPut>(__os.getloc())).put(ostreambuf_iterator<_CharT, _Traits>(__os.rdbuf()), - __os, __os.fill(), - __x).failed(); - } - _STLP_CATCH_ALL { - __os._M_handle_exception(ios_base::badbit); - } - } - if (__failed) - __os.setstate(ios_base::badbit); - return __os; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -/* - * In the following operators we try to limit code bloat by limiting the - * number of __put_num instanciations. - */ -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(short __x) { - _STLP_STATIC_ASSERT( sizeof(short) <= sizeof(long) ) - long __tmp = ((this->flags() & _Basic_ios::basefield) != ios_base::dec) ? - __STATIC_CAST(long, __STATIC_CAST(unsigned short, __x)): __x; - return _STLP_PRIV __put_num(*this, __tmp); -} - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned short __x) { - _STLP_STATIC_ASSERT( sizeof(unsigned short) <= sizeof(unsigned long) ) - return _STLP_PRIV __put_num(*this, __STATIC_CAST(unsigned long,__x)); -} - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(int __x) { - _STLP_STATIC_ASSERT( sizeof(int) <= sizeof(long) ) - long __tmp = ((this->flags() & _Basic_ios::basefield) != ios_base::dec) ? - __STATIC_CAST(long, __STATIC_CAST(unsigned int, __x)): __x; - return _STLP_PRIV __put_num(*this, __tmp); -} - -template <class _CharT, class _Traits> -#if defined (_WIN64) || !defined (_STLP_MSVC) || (_STLP_MSVC < 1300) -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned int __x) { - _STLP_STATIC_ASSERT( sizeof(unsigned int) <= sizeof(unsigned long) ) -#else -/* We define this operator with size_t rather than unsigned int to avoid - * 64 bits warning. - */ -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(size_t __x) { - _STLP_STATIC_ASSERT( sizeof(size_t) <= sizeof(unsigned long) ) -#endif - return _STLP_PRIV __put_num(*this, __STATIC_CAST(unsigned long,__x)); -} - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(long __x) -{ return _STLP_PRIV __put_num(*this, __x); } - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(unsigned long __x) -{ return _STLP_PRIV __put_num(*this, __x); } - -#ifdef _STLP_LONG_LONG -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<< (_STLP_LONG_LONG __x) -{ return _STLP_PRIV __put_num(*this, __x); } - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<< (unsigned _STLP_LONG_LONG __x) -{ return _STLP_PRIV __put_num(*this, __x); } -#endif - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(float __x) -{ return _STLP_PRIV __put_num(*this, __STATIC_CAST(double,__x)); } - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(double __x) -{ return _STLP_PRIV __put_num(*this, __x); } - -#ifndef _STLP_NO_LONG_DOUBLE -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(long double __x) -{ return _STLP_PRIV __put_num(*this, __x); } -#endif - -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(const void* __x) -{ return _STLP_PRIV __put_num(*this, __x); } - -#ifndef _STLP_NO_BOOL -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& basic_ostream<_CharT, _Traits>::operator<<(bool __x) -{ return _STLP_PRIV __put_num(*this, __x); } -#endif - -template <class _CharT, class _Traits> -void basic_ostream<_CharT, _Traits>::_M_put_char(_CharT __c) { - sentry __sentry(*this); - if (__sentry) { - bool __failed = true; - _STLP_TRY { - streamsize __npad = this->width() > 0 ? this->width() - 1 : 0; - // if (__npad <= 1) - if (__npad == 0) - __failed = this->_S_eof(this->rdbuf()->sputc(__c)); - else if ((this->flags() & ios_base::adjustfield) == ios_base::left) { - __failed = this->_S_eof(this->rdbuf()->sputc(__c)); - __failed = __failed || - this->rdbuf()->_M_sputnc(this->fill(), __npad) != __npad; - } - else { - __failed = this->rdbuf()->_M_sputnc(this->fill(), __npad) != __npad; - __failed = __failed || this->_S_eof(this->rdbuf()->sputc(__c)); - } - - this->width(0); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - - if (__failed) - this->setstate(ios_base::badbit); - } -} - -template <class _CharT, class _Traits> -void basic_ostream<_CharT, _Traits>::_M_put_nowiden(const _CharT* __s) { - sentry __sentry(*this); - if (__sentry) { - bool __failed = true; - streamsize __n = _Traits::length(__s); - streamsize __npad = this->width() > __n ? this->width() - __n : 0; - - _STLP_TRY { - if (__npad == 0) - __failed = this->rdbuf()->sputn(__s, __n) != __n; - else if ((this->flags() & ios_base::adjustfield) == ios_base::left) { - __failed = this->rdbuf()->sputn(__s, __n) != __n; - __failed = __failed || - this->rdbuf()->_M_sputnc(this->fill(), __npad) != __npad; - } - else { - __failed = this->rdbuf()->_M_sputnc(this->fill(), __npad) != __npad; - __failed = __failed || this->rdbuf()->sputn(__s, __n) != __n; - } - - this->width(0); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - - if (__failed) - this->setstate(ios_base::failbit); - } -} - -template <class _CharT, class _Traits> -void basic_ostream<_CharT, _Traits>::_M_put_widen(const char* __s) { - sentry __sentry(*this); - if (__sentry) { - bool __failed = true; - streamsize __n = char_traits<char>::length(__s); - streamsize __npad = this->width() > __n ? this->width() - __n : 0; - - _STLP_TRY { - if (__npad == 0) - __failed = !this->_M_put_widen_aux(__s, __n); - else if ((this->flags() & ios_base::adjustfield) == ios_base::left) { - __failed = !this->_M_put_widen_aux(__s, __n); - __failed = __failed || - this->rdbuf()->_M_sputnc(this->fill(), __npad) != __npad; - } - else { - __failed = this->rdbuf()->_M_sputnc(this->fill(), __npad) != __npad; - __failed = __failed || !this->_M_put_widen_aux(__s, __n); - } - - this->width(0); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - - if (__failed) - this->setstate(ios_base::failbit); - } -} - -template <class _CharT, class _Traits> -bool basic_ostream<_CharT, _Traits>::_M_put_widen_aux(const char* __s, - streamsize __n) { - basic_streambuf<_CharT, _Traits>* __buf = this->rdbuf(); - - for ( ; __n > 0 ; --__n) - if (this->_S_eof(__buf->sputc(this->widen(*__s++)))) - return false; - return true; -} - -// Unformatted output of a single character. -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& -basic_ostream<_CharT, _Traits>::put(char_type __c) { - sentry __sentry(*this); - bool __failed = true; - - if (__sentry) { - _STLP_TRY { - __failed = this->_S_eof(this->rdbuf()->sputc(__c)); - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - } - - if (__failed) - this->setstate(ios_base::badbit); - - return *this; -} - -// Unformatted output of a single character. -template <class _CharT, class _Traits> -basic_ostream<_CharT, _Traits>& -basic_ostream<_CharT, _Traits>::write(const char_type* __s, streamsize __n) { - sentry __sentry(*this); - bool __failed = true; - - if (__sentry) { - _STLP_TRY { - __failed = this->rdbuf()->sputn(__s, __n) != __n; - } - _STLP_CATCH_ALL { - this->_M_handle_exception(ios_base::badbit); - } - } - - if (__failed) - this->setstate(ios_base::badbit); - - return *this; -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_OSTREAM_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_ostream.h b/WebKit/android/stlport/stl/_ostream.h deleted file mode 100644 index 0e4c364..0000000 --- a/WebKit/android/stlport/stl/_ostream.h +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - -#ifndef _STLP_INTERNAL_OSTREAM_H -#define _STLP_INTERNAL_OSTREAM_H - -#ifndef _STLP_INTERNAL_IOS_H -# include <stl/_ios.h> // For basic_ios<>. Includes <iosfwd>. -#endif - -#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H -# include <stl/_ostreambuf_iterator.h> -#endif - -#if !defined (_STLP_NO_UNCAUGHT_EXCEPT_SUPPORT) && !defined (_STLP_INTERNAL_EXCEPTION) -# include <stl/_exception.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -template <class _CharT, class _Traits> -class _Osentry; -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _CharT, class _Traits> -bool __init_bostr(basic_ostream<_CharT, _Traits>& __str); - -_STLP_MOVE_TO_STD_NAMESPACE - -//---------------------------------------------------------------------- -// class basic_ostream<> - -template <class _CharT, class _Traits> -class basic_ostream : virtual public basic_ios<_CharT, _Traits> { - typedef basic_ostream<_CharT, _Traits> _Self; - -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1300 && _STLP_MSVC <= 1310) - //explicitely defined as private to avoid warnings: - basic_ostream(_Self const&); - _Self& operator = (_Self const&); -#endif - -public: // Types - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - typedef basic_ios<_CharT, _Traits> _Basic_ios; - -public: // Constructor and destructor. - explicit basic_ostream(basic_streambuf<_CharT, _Traits>* __buf); - ~basic_ostream(); - -public: // Hooks for manipulators. - typedef basic_ios<_CharT, _Traits>& (_STLP_CALL *__ios_fn)(basic_ios<_CharT, _Traits>&); - typedef ios_base& (_STLP_CALL *__ios_base_fn)(ios_base&); - typedef _Self& (_STLP_CALL *__ostream_fn)(_Self&); - _Self& operator<< (__ostream_fn __f) { return __f(*this); } - _Self & operator<< (__ios_base_fn __f) { __f(*this); return *this; } - _Self& operator<< (__ios_fn __ff) { __ff(*this); return *this; } - -private: - bool _M_copy_buffered(basic_streambuf<_CharT, _Traits>* __from, - basic_streambuf<_CharT, _Traits>* __to); - bool _M_copy_unbuffered(basic_streambuf<_CharT, _Traits>* __from, - basic_streambuf<_CharT, _Traits>* __to); - -public: - void _M_put_char(_CharT __c); - - void _M_put_nowiden(const _CharT* __s); - void _M_put_widen(const char* __s); - bool _M_put_widen_aux(const char* __s, streamsize __n); - -public: // Unformatted output. - _Self& put(char_type __c); - _Self& write(const char_type* __s, streamsize __n); - -public: // Formatted output. - // Formatted output from a streambuf. - _Self& operator<<(basic_streambuf<_CharT, _Traits>* __buf); -# ifndef _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER - // this is needed for compiling with option char = unsigned - _Self& operator<<(unsigned char __x) { _M_put_char(__x); return *this; } -# endif - _Self& operator<<(short __x); - _Self& operator<<(unsigned short __x); - _Self& operator<<(int __x); -#if defined (_WIN64) || !defined (_STLP_MSVC) || (_STLP_MSVC < 1300) - _Self& operator<<(unsigned int __x); -#else -/* We define this operator with size_t rather than unsigned int to avoid - * 64 bits warning. - */ - _Self& operator<<(size_t __x); -#endif - _Self& operator<<(long __x); - _Self& operator<<(unsigned long __x); -#ifdef _STLP_LONG_LONG - _Self& operator<< (_STLP_LONG_LONG __x); - _Self& operator<< (unsigned _STLP_LONG_LONG __x); -#endif - _Self& operator<<(float __x); - _Self& operator<<(double __x); -# ifndef _STLP_NO_LONG_DOUBLE - _Self& operator<<(long double __x); -# endif - _Self& operator<<(const void* __x); -# ifndef _STLP_NO_BOOL - _Self& operator<<(bool __x); -# endif - -public: // Buffer positioning and manipulation. - _Self& flush() { - if (this->rdbuf()) - if (this->rdbuf()->pubsync() == -1) - this->setstate(ios_base::badbit); - return *this; - } - - pos_type tellp() { - return this->rdbuf() && !this->fail() - ? this->rdbuf()->pubseekoff(0, ios_base::cur, ios_base::out) - : pos_type(-1); - } - - _Self& seekp(pos_type __pos) { - if (this->rdbuf() && !this->fail()) { - if (this->rdbuf()->pubseekpos(__pos) == pos_type(-1)) { - this->setstate(ios_base::failbit); - } - } - return *this; - } - - _Self& seekp(off_type __off, ios_base::seekdir __dir) { - if (this->rdbuf() && !this->fail()) - this->rdbuf()->pubseekoff(__off, __dir); - return *this; - } - -#if defined (_STLP_USE_TEMPLATE_EXPORT) - // If we are using DLL specs, we have not to use inner classes - // end class declaration here - typedef _Osentry<_CharT, _Traits> sentry; -}; -# define sentry _Osentry - template <class _CharT, class _Traits> - class _Osentry { - typedef _Osentry<_CharT, _Traits> _Self; -#else - class sentry { - typedef sentry _Self; -#endif - private: - basic_ostream<_CharT, _Traits>& _M_str; - // basic_streambuf<_CharT, _Traits>* _M_buf; - bool _M_ok; - public: - explicit sentry(basic_ostream<_CharT, _Traits>& __str) - : _M_str(__str), /* _M_buf(__str.rdbuf()), */ _M_ok(_STLP_PRIV __init_bostr(__str)) - {} - - ~sentry() { - if (_M_str.flags() & ios_base::unitbuf) -#if !defined (_STLP_NO_UNCAUGHT_EXCEPT_SUPPORT) - if (!uncaught_exception()) -#endif - _M_str.flush(); - } - - operator bool() const { return _M_ok; } - private: // Disable assignment and copy constructor. - //Implementation is here only to avoid warning with some compilers. - sentry(const _Self& __s) : _M_str(__s._M_str) {} - _Self& operator=(const _Self&) { return *this; } - }; -#if defined (_STLP_USE_TEMPLATE_EXPORT) -# undef sentry -#else - // close basic_ostream class definition here -}; -#endif - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_ostream<char, char_traits<char> >; -_STLP_EXPORT_TEMPLATE_CLASS _Osentry<char, char_traits<char> >; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_ostream<wchar_t, char_traits<wchar_t> >; -_STLP_EXPORT_TEMPLATE_CLASS _Osentry<wchar_t, char_traits<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Helper functions for istream<>::sentry constructor. -template <class _CharT, class _Traits> -bool __init_bostr(basic_ostream<_CharT, _Traits>& __str) { - if (__str.good()) { - // boris : check if this is needed ! - if (!__str.rdbuf()) - __str.setstate(ios_base::badbit); - if (__str.tie()) - __str.tie()->flush(); - return __str.good(); - } - else - return false; -} - -template <class _CharT, class _Traits> -inline basic_streambuf<_CharT, _Traits>* _STLP_CALL -__get_ostreambuf(basic_ostream<_CharT, _Traits>& __St) -{ return __St.rdbuf(); } - -_STLP_MOVE_TO_STD_NAMESPACE - -// Non-member functions. -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, _CharT __c){ - __os._M_put_char(__c); - return __os; -} - -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, const _CharT* __s) { - __os._M_put_nowiden(__s); - return __os; -} - -#if defined (_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER) -// some specializations - -inline basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __os, char __c) { - __os._M_put_char(__c); - return __os; -} - -inline basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __os, signed char __c) { - __os._M_put_char(__c); - return __os; -} - -inline basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __os, unsigned char __c) { - __os._M_put_char(__c); - return __os; -} - -inline basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __os, const char* __s) { - __os._M_put_nowiden(__s); - return __os; -} - -inline basic_ostream<char, char_traits<char> >& _STLP_CALL -operator<<(basic_ostream<char, char_traits<char> >& __os, const signed char* __s) { - __os._M_put_nowiden(__REINTERPRET_CAST(const char*,__s)); - return __os; -} - -inline basic_ostream<char, char_traits<char> >& -operator<<(basic_ostream<char, char_traits<char> >& __os, const unsigned char* __s) { - __os._M_put_nowiden(__REINTERPRET_CAST(const char*,__s)); - return __os; -} - -#else - -// also for compilers who might use that -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, char __c) { - __os._M_put_char(__os.widen(__c)); - return __os; -} - -template <class _Traits> -inline basic_ostream<char, _Traits>& _STLP_CALL -operator<<(basic_ostream<char, _Traits>& __os, char __c) { - __os._M_put_char(__c); - return __os; -} - -template <class _Traits> -inline basic_ostream<char, _Traits>& _STLP_CALL -operator<<(basic_ostream<char, _Traits>& __os, signed char __c) { - __os._M_put_char(__c); - return __os; -} - -template <class _Traits> -inline basic_ostream<char, _Traits>& _STLP_CALL -operator<<(basic_ostream<char, _Traits>& __os, unsigned char __c) { - __os._M_put_char(__c); - return __os; -} - -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, const char* __s) { - __os._M_put_widen(__s); - return __os; -} - -template <class _Traits> -inline basic_ostream<char, _Traits>& _STLP_CALL -operator<<(basic_ostream<char, _Traits>& __os, const char* __s) { - __os._M_put_nowiden(__s); - return __os; -} - -template <class _Traits> -inline basic_ostream<char, _Traits>& _STLP_CALL -operator<<(basic_ostream<char, _Traits>& __os, const signed char* __s) { - __os._M_put_nowiden(__REINTERPRET_CAST(const char*,__s)); - return __os; -} - -template <class _Traits> -inline basic_ostream<char, _Traits>& -operator<<(basic_ostream<char, _Traits>& __os, const unsigned char* __s) { - __os._M_put_nowiden(__REINTERPRET_CAST(const char*,__s)); - return __os; -} -#endif /* _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER */ - -//---------------------------------------------------------------------- -// basic_ostream manipulators. - -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -endl(basic_ostream<_CharT, _Traits>& __os) { - __os.put(__os.widen('\n')); - __os.flush(); - return __os; -} - -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -ends(basic_ostream<_CharT, _Traits>& __os) { - __os.put(_STLP_DEFAULT_CONSTRUCTED(_CharT)); - return __os; -} - -template <class _CharT, class _Traits> -inline basic_ostream<_CharT, _Traits>& _STLP_CALL -flush(basic_ostream<_CharT, _Traits>& __os) { - __os.flush(); - return __os; -} - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_ostream.c> -#endif - -#endif /* _STLP_INTERNAL_OSTREAM_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_ostreambuf_iterator.h b/WebKit/android/stlport/stl/_ostreambuf_iterator.h deleted file mode 100644 index d886549..0000000 --- a/WebKit/android/stlport/stl/_ostreambuf_iterator.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H -#define _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template<class _CharT, class _Traits> -extern basic_streambuf<_CharT, _Traits>* _STLP_CALL __get_ostreambuf(basic_ostream<_CharT, _Traits>&); - -_STLP_MOVE_TO_STD_NAMESPACE - -// The default template argument is declared in iosfwd -template <class _CharT, class _Traits> -class ostreambuf_iterator : - public iterator<output_iterator_tag, void, void, void, void> { -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef typename _Traits::int_type int_type; - typedef basic_streambuf<_CharT, _Traits> streambuf_type; - typedef basic_ostream<_CharT, _Traits> ostream_type; - - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - -public: - ostreambuf_iterator(streambuf_type* __buf) _STLP_NOTHROW : _M_buf(__buf), _M_ok(__buf!=0) {} - // ostreambuf_iterator(ostream_type& __o) _STLP_NOTHROW : _M_buf(__get_ostreambuf(__o)), _M_ok(_M_buf != 0) {} - inline ostreambuf_iterator(ostream_type& __o) _STLP_NOTHROW; - - ostreambuf_iterator<_CharT, _Traits>& operator=(char_type __c) { - _M_ok = _M_ok && !traits_type::eq_int_type(_M_buf->sputc(__c), - traits_type::eof()); - return *this; - } - - ostreambuf_iterator<_CharT, _Traits>& operator*() { return *this; } - ostreambuf_iterator<_CharT, _Traits>& operator++() { return *this; } - ostreambuf_iterator<_CharT, _Traits>& operator++(int) { return *this; } - - bool failed() const { return !_M_ok; } - -private: - streambuf_type* _M_buf; - bool _M_ok; -}; - -template <class _CharT, class _Traits> -inline ostreambuf_iterator<_CharT, _Traits>::ostreambuf_iterator(basic_ostream<_CharT, _Traits>& __o) _STLP_NOTHROW - : _M_buf(_STLP_PRIV __get_ostreambuf(__o)), _M_ok(_M_buf != 0) {} - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS ostreambuf_iterator<char, char_traits<char> >; -# if defined (INSTANTIATE_WIDE_STREAMS) -_STLP_EXPORT_TEMPLATE_CLASS ostreambuf_iterator<wchar_t, char_traits<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -template <class _CharT, class _Traits> -inline output_iterator_tag _STLP_CALL -iterator_category(const ostreambuf_iterator<_CharT, _Traits>&) { return output_iterator_tag(); } -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_pair.h b/WebKit/android/stlport/stl/_pair.h deleted file mode 100644 index d431fe0..0000000 --- a/WebKit/android/stlport/stl/_pair.h +++ /dev/null @@ -1,181 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_PAIR_H -#define _STLP_INTERNAL_PAIR_H - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -# include <stl/type_traits.h> -#endif - -#ifndef _STLP_MOVE_CONSTRUCT_FWK_H -# include <stl/_move_construct_fwk.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _T1, class _T2> -struct pair { - typedef _T1 first_type; - typedef _T2 second_type; - - _T1 first; - _T2 second; -#if defined (_STLP_CONST_CONSTRUCTOR_BUG) - pair() {} -#else - pair() : first(_T1()), second(_T2()) {} -#endif - pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) {} - -#if defined (_STLP_MEMBER_TEMPLATES) && !(defined (_STLP_MSVC) && (_STLP_MSVC < 1200)) - template <class _U1, class _U2> - pair(const pair<_U1, _U2>& __p) : first(__p.first), second(__p.second) {} - - pair(const pair<_T1,_T2>& __o) : first(__o.first), second(__o.second) {} -#endif - - pair(__move_source<pair<_T1, _T2> > src) : first(_STLP_PRIV _AsMoveSource(src.get().first)), - second(_STLP_PRIV _AsMoveSource(src.get().second)) - {} - - __TRIVIAL_DESTRUCTOR(pair) -}; - -template <class _T1, class _T2> -inline bool _STLP_CALL operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) -{ return __x.first == __y.first && __x.second == __y.second; } - -template <class _T1, class _T2> -inline bool _STLP_CALL operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { - return __x.first < __y.first || - (!(__y.first < __x.first) && __x.second < __y.second); -} - -#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) -template <class _T1, class _T2> -inline bool _STLP_CALL operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) -{ return !(__x == __y); } - -template <class _T1, class _T2> -inline bool _STLP_CALL operator>(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) -{ return __y < __x; } - -template <class _T1, class _T2> -inline bool _STLP_CALL operator<=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) -{ return !(__y < __x); } - -template <class _T1, class _T2> -inline bool _STLP_CALL operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) -{ return !(__x < __y); } -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) && !defined (_STLP_NO_EXTENSIONS) -template <class _T1, class _T2, int _Sz> -inline pair<_T1, _T2 const*> make_pair(_T1 const& __x, - _T2 const (&__y)[_Sz]) -{ return pair<_T1, _T2 const*>(__x, static_cast<_T2 const*>(__y)); } - -template <class _T1, class _T2, int _Sz> -inline pair<_T1 const*, _T2> make_pair(_T1 const (&__x)[_Sz], - _T2 const& __y) -{ return pair<_T1 const*, _T2>(static_cast<_T1 const*>(__x), __y); } - -template <class _T1, class _T2, int _Sz1, int _Sz2> -inline pair<_T1 const*, _T2 const*> make_pair(_T1 const (&__x)[_Sz1], - _T2 const (&__y)[_Sz2]) { - return pair<_T1 const*, _T2 const*>(static_cast<_T1 const*>(__x), - static_cast<_T2 const*>(__y)); -} -#endif - -template <class _T1, class _T2> -inline pair<_T1, _T2> _STLP_CALL make_pair(_T1 __x, _T2 __y) -{ return pair<_T1, _T2>(__x, __y); } - -_STLP_END_NAMESPACE - -#if defined (_STLP_USE_NAMESPACES) || !defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) -_STLP_BEGIN_RELOPS_NAMESPACE - -template <class _Tp> -inline bool _STLP_CALL operator!=(const _Tp& __x, const _Tp& __y) -{ return !(__x == __y); } - -template <class _Tp> -inline bool _STLP_CALL operator>(const _Tp& __x, const _Tp& __y) -{ return __y < __x; } - -template <class _Tp> -inline bool _STLP_CALL operator<=(const _Tp& __x, const _Tp& __y) -{ return !(__y < __x); } - -template <class _Tp> -inline bool _STLP_CALL operator>=(const _Tp& __x, const _Tp& __y) -{ return !(__x < __y); } - -_STLP_END_RELOPS_NAMESPACE -#endif - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -_STLP_BEGIN_NAMESPACE - -template <class _T1, class _T2> -struct __type_traits<pair<_T1, _T2> > { - typedef __type_traits<_T1> _T1Traits; - typedef __type_traits<_T2> _T2Traits; - typedef typename _Land2<typename _T1Traits::has_trivial_default_constructor, - typename _T2Traits::has_trivial_default_constructor>::_Ret has_trivial_default_constructor; - typedef typename _Land2<typename _T1Traits::has_trivial_copy_constructor, - typename _T2Traits::has_trivial_copy_constructor>::_Ret has_trivial_copy_constructor; - typedef typename _Land2<typename _T1Traits::has_trivial_assignment_operator, - typename _T2Traits::has_trivial_assignment_operator>::_Ret has_trivial_assignment_operator; - typedef typename _Land2<typename _T1Traits::has_trivial_destructor, - typename _T2Traits::has_trivial_destructor>::_Ret has_trivial_destructor; - typedef __false_type is_POD_type; - -#if defined (__BORLANDC__) && (__BORLANDC__ < 0x560) - // disable incorrect "dependent type qualifier" error - typedef __false_type implemented; -#endif -}; - -template <class _T1, class _T2> -struct __move_traits<pair<_T1, _T2> > - : _STLP_PRIV __move_traits_help1<_T1, _T2> {}; - -_STLP_END_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#endif /* _STLP_INTERNAL_PAIR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_prolog.h b/WebKit/android/stlport/stl/_prolog.h deleted file mode 100644 index 1d27656..0000000 --- a/WebKit/android/stlport/stl/_prolog.h +++ /dev/null @@ -1,25 +0,0 @@ -/* NOTE : this header has no guards and is MEANT for multiple inclusion! - * If you are using "header protection" option with your compiler, - * please also find #pragma which disables it and put it here, to - * allow reentrancy of this header. - */ - -#ifdef std -# undef std /* We undef "std" on entry , as STLport headers may include native ones. */ -#endif - -#ifdef _STLP_PROLOG_HEADER_INCLUDED -# error STlport prolog header can not be reincluded as long as epilog has not be included. -#endif - -#define _STLP_PROLOG_HEADER_INCLUDED - -#ifndef _STLP_FEATURES_H -# include <stl/config/features.h> -#endif - -/* If the platform provides any specific prolog actions, - * like #pragmas, do include platform-specific prolog file */ -#if defined (_STLP_HAS_SPECIFIC_PROLOG_EPILOG) -# include <stl/config/_prolog.h> -#endif diff --git a/WebKit/android/stlport/stl/_pthread_alloc.h b/WebKit/android/stlport/stl/_pthread_alloc.h deleted file mode 100644 index 2826185..0000000 --- a/WebKit/android/stlport/stl/_pthread_alloc.h +++ /dev/null @@ -1,472 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_PTHREAD_ALLOC_H -#define _STLP_PTHREAD_ALLOC_H - -/* - * Pthread-specific node allocator. - * This is similar to the default allocator, except that free-list - * information is kept separately for each thread, avoiding locking. - * This should be reasonably fast even in the presence of threads. - * The down side is that storage may not be well-utilized. - * It is not an error to allocate memory in thread A and deallocate - * it in thread B. But this effectively transfers ownership of the memory, - * so that it can only be reallocated by thread B. Thus this can effectively - * result in a storage leak if it's done on a regular basis. - * It can also result in frequent sharing of - * cache lines among processors, with potentially serious performance - * consequences. - */ - -#if !defined (_STLP_PTHREADS) -# error POSIX specific allocator implementation. Your system do not seems to \ -have this interface so please comment the _STLP_USE_PERTHREAD_ALLOC macro \ -or report to the STLport forum. -#endif - -#if defined (_STLP_USE_NO_IOSTREAMS) -# error You cannot use per thread allocator implementation without building \ -STLport libraries. -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -struct _Pthread_alloc_per_thread_state; - -// Pthread-specific allocator. -class _STLP_CLASS_DECLSPEC _Pthread_alloc { -public: // but only for internal use: - typedef _Pthread_alloc_per_thread_state __state_type; - typedef char value_type; - -public: - // Return a recycled or new per thread state. - static __state_type * _STLP_CALL _S_get_per_thread_state(); - - /* n must be > 0 */ - static void * _STLP_CALL allocate(size_t& __n); - - /* p may not be 0 */ - static void _STLP_CALL deallocate(void *__p, size_t __n); - - // boris : versions for per_thread_allocator - /* n must be > 0 */ - static void * _STLP_CALL allocate(size_t& __n, __state_type* __a); - - /* p may not be 0 */ - static void _STLP_CALL deallocate(void *__p, size_t __n, __state_type* __a); - - static void * _STLP_CALL reallocate(void *__p, size_t __old_sz, size_t& __new_sz); -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -typedef _STLP_PRIV _Pthread_alloc __pthread_alloc; -typedef __pthread_alloc pthread_alloc; - -template <class _Tp> -class pthread_allocator : public __stlport_class<pthread_allocator<_Tp> > { - typedef pthread_alloc _S_Alloc; // The underlying allocator. -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - typedef _Tp value_type; - -#ifdef _STLP_MEMBER_TEMPLATE_CLASSES - template <class _NewType> struct rebind { - typedef pthread_allocator<_NewType> other; - }; -#endif - - pthread_allocator() _STLP_NOTHROW {} - pthread_allocator(const pthread_allocator<_Tp>& a) _STLP_NOTHROW {} - -#if defined (_STLP_MEMBER_TEMPLATES) /* && defined (_STLP_FUNCTION_PARTIAL_ORDER) */ - template <class _OtherType> pthread_allocator(const pthread_allocator<_OtherType>&) - _STLP_NOTHROW {} -#endif - - ~pthread_allocator() _STLP_NOTHROW {} - - pointer address(reference __x) const { return &__x; } - const_pointer address(const_reference __x) const { return &__x; } - - // __n is permitted to be 0. The C++ standard says nothing about what - // the return value is when __n == 0. - _Tp* allocate(size_type __n, const void* = 0) { - if (__n > max_size()) { - __THROW_BAD_ALLOC; - } - if (__n != 0) { - size_type __buf_size = __n * sizeof(value_type); - _Tp* __ret = __REINTERPRET_CAST(value_type*, _S_Alloc::allocate(__buf_size)); -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - if (__ret != 0) { - memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size); - } -#endif - return __ret; - } - else - return 0; - } - - void deallocate(pointer __p, size_type __n) { - _STLP_ASSERT( (__p == 0) == (__n == 0) ) - if (__p != 0) { -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - memset((char*)__p, _STLP_SHRED_BYTE, __n * sizeof(value_type)); -#endif - _S_Alloc::deallocate(__p, __n * sizeof(value_type)); - } - } - - size_type max_size() const _STLP_NOTHROW - { return size_t(-1) / sizeof(_Tp); } - - void construct(pointer __p, const _Tp& __val) { _STLP_PLACEMENT_NEW (__p) _Tp(__val); } - void destroy(pointer _p) { _p->~_Tp(); } - -#if defined (_STLP_NO_EXTENSIONS) - /* STLport extension giving rounded size of an allocated memory buffer - * This method do not have to be part of a user defined allocator implementation - * and won't even be called if such a function was granted. - */ -protected: -#endif - _Tp* allocate(size_type __n, size_type& __allocated_n) { - if (__n > max_size()) { - __THROW_BAD_ALLOC; - } - if (__n != 0) { - size_type __buf_size = __n * sizeof(value_type); - _Tp* __ret = __REINTERPRET_CAST(value_type*, _S_Alloc::allocate(__buf_size)); -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - if (__ret != 0) { - memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size); - } -#endif - __allocated_n = __buf_size / sizeof(value_type); - return __ret; - } - else - return 0; - } -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC pthread_allocator<void> { -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; -#ifdef _STLP_MEMBER_TEMPLATE_CLASSES - template <class _NewType> struct rebind { - typedef pthread_allocator<_NewType> other; - }; -#endif -}; - -template <class _T1, class _T2> -inline bool operator==(const pthread_allocator<_T1>&, - const pthread_allocator<_T2>& a2) -{ return true; } - -#ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER -template <class _T1, class _T2> -inline bool operator!=(const pthread_allocator<_T1>&, - const pthread_allocator<_T2>&) -{ return false; } -#endif - - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - -# if defined (_STLP_USE_RAW_SGI_ALLOCATORS) -template <class _Tp> -struct _Alloc_traits<_Tp, _Pthread_alloc> -{ typedef __allocator<_Tp, _Pthread_alloc> allocator_type; }; -# endif - -template <class _Tp, class _Atype> -struct _Alloc_traits<_Tp, pthread_allocator<_Atype> > -{ typedef pthread_allocator<_Tp> allocator_type; }; - -#endif - -#if defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) - -template <class _Tp1, class _Tp2> -inline pthread_allocator<_Tp2>& -__stl_alloc_rebind(pthread_allocator<_Tp1>& __x, const _Tp2*) -{ return (pthread_allocator<_Tp2>&)__x; } - -template <class _Tp1, class _Tp2> -inline pthread_allocator<_Tp2> -__stl_alloc_create(pthread_allocator<_Tp1>&, const _Tp2*) -{ return pthread_allocator<_Tp2>(); } - -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -struct __pthread_alloc_type_traits { - typedef typename _IsSTLportClass<pthread_allocator<_Tp> >::_Ret _STLportAlloc; - //The default allocator implementation which is recognize thanks to the - //__stlport_class inheritance is a stateless object so: - typedef _STLportAlloc has_trivial_default_constructor; - typedef _STLportAlloc has_trivial_copy_constructor; - typedef _STLportAlloc has_trivial_assignment_operator; - typedef _STLportAlloc has_trivial_destructor; - typedef _STLportAlloc is_POD_type; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> -struct __type_traits<pthread_allocator<_Tp> > : _STLP_PRIV __pthread_alloc_type_traits<_Tp> {}; -#else -_STLP_TEMPLATE_NULL -struct __type_traits<pthread_allocator<char> > : _STLP_PRIV __pthread_alloc_type_traits<char> {}; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_TEMPLATE_NULL -struct __type_traits<pthread_allocator<wchar_t> > : _STLP_PRIV __pthread_alloc_type_traits<wchar_t> {}; -# endif -# if defined (_STLP_USE_PTR_SPECIALIZATIONS) -_STLP_TEMPLATE_NULL -struct __type_traits<pthread_allocator<void*> > : _STLP_PRIV __pthread_alloc_type_traits<void*> {}; -# endif -#endif - -// -// per_thread_allocator<> : this allocator always return memory to the same thread -// it was allocated from. -// - -template <class _Tp> -class per_thread_allocator { - typedef pthread_alloc _S_Alloc; // The underlying allocator. - typedef pthread_alloc::__state_type __state_type; -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef _Tp* pointer; - typedef const _Tp* const_pointer; - typedef _Tp& reference; - typedef const _Tp& const_reference; - typedef _Tp value_type; - -#ifdef _STLP_MEMBER_TEMPLATE_CLASSES - template <class _NewType> struct rebind { - typedef per_thread_allocator<_NewType> other; - }; -#endif - - per_thread_allocator() _STLP_NOTHROW { - _M_state = _S_Alloc::_S_get_per_thread_state(); - } - per_thread_allocator(const per_thread_allocator<_Tp>& __a) _STLP_NOTHROW : _M_state(__a._M_state){} - -#if defined (_STLP_MEMBER_TEMPLATES) /* && defined (_STLP_FUNCTION_PARTIAL_ORDER) */ - template <class _OtherType> per_thread_allocator(const per_thread_allocator<_OtherType>& __a) - _STLP_NOTHROW : _M_state(__a._M_state) {} -#endif - - ~per_thread_allocator() _STLP_NOTHROW {} - - pointer address(reference __x) const { return &__x; } - const_pointer address(const_reference __x) const { return &__x; } - - // __n is permitted to be 0. The C++ standard says nothing about what - // the return value is when __n == 0. - _Tp* allocate(size_type __n, const void* = 0) { - if (__n > max_size()) { - __THROW_BAD_ALLOC; - } - if (__n != 0) { - size_type __buf_size = __n * sizeof(value_type); - _Tp* __ret = __REINTERPRET_CAST(_Tp*, _S_Alloc::allocate(__buf_size, _M_state)); -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - if (__ret != 0) { - memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size); - } -#endif - return __ret; - } - else - return 0; - } - - void deallocate(pointer __p, size_type __n) { - _STLP_ASSERT( (__p == 0) == (__n == 0) ) - if (__p != 0) { -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - memset((char*)__p, _STLP_SHRED_BYTE, __n * sizeof(value_type)); -#endif - _S_Alloc::deallocate(__p, __n * sizeof(value_type), _M_state); - } - } - - size_type max_size() const _STLP_NOTHROW - { return size_t(-1) / sizeof(_Tp); } - - void construct(pointer __p, const _Tp& __val) { _STLP_PLACEMENT_NEW (__p) _Tp(__val); } - void destroy(pointer _p) { _p->~_Tp(); } - - // state is being kept here - __state_type* _M_state; - -#if defined (_STLP_NO_EXTENSIONS) - /* STLport extension giving rounded size of an allocated memory buffer - * This method do not have to be part of a user defined allocator implementation - * and won't even be called if such a function was granted. - */ -protected: -#endif - _Tp* allocate(size_type __n, size_type& __allocated_n) { - if (__n > max_size()) { - __THROW_BAD_ALLOC; - } - if (__n != 0) { - size_type __buf_size = __n * sizeof(value_type); - _Tp* __ret = __REINTERPRET_CAST(value_type*, _S_Alloc::allocate(__buf_size, _M_state)); -#if defined (_STLP_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_ALLOC) - if (__ret != 0) { - memset((char*)__ret, _STLP_SHRED_BYTE, __buf_size); - } -#endif - __allocated_n = __buf_size / sizeof(value_type); - return __ret; - } - else - return 0; - } -}; - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC per_thread_allocator<void> { -public: - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef void* pointer; - typedef const void* const_pointer; - typedef void value_type; -#ifdef _STLP_MEMBER_TEMPLATE_CLASSES - template <class _NewType> struct rebind { - typedef per_thread_allocator<_NewType> other; - }; -#endif -}; - -template <class _T1, class _T2> -inline bool operator==(const per_thread_allocator<_T1>& __a1, - const per_thread_allocator<_T2>& __a2) -{ return __a1._M_state == __a2._M_state; } - -#ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER -template <class _T1, class _T2> -inline bool operator!=(const per_thread_allocator<_T1>& __a1, - const per_thread_allocator<_T2>& __a2) -{ return __a1._M_state != __a2._M_state; } -#endif - - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - -template <class _Tp, class _Atype> -struct _Alloc_traits<_Tp, per_thread_allocator<_Atype> > -{ typedef per_thread_allocator<_Tp> allocator_type; }; - -#endif - -#if defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) - -template <class _Tp1, class _Tp2> -inline per_thread_allocator<_Tp2>& -__stl_alloc_rebind(per_thread_allocator<_Tp1>& __x, const _Tp2*) -{ return (per_thread_allocator<_Tp2>&)__x; } - -template <class _Tp1, class _Tp2> -inline per_thread_allocator<_Tp2> -__stl_alloc_create(per_thread_allocator<_Tp1>&, const _Tp2*) -{ return per_thread_allocator<_Tp2>(); } - -#endif /* _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE */ - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -struct __perthread_alloc_type_traits { - typedef typename _IsSTLportClass<per_thread_allocator<_Tp> >::_Ret _STLportAlloc; - //The default allocator implementation which is recognize thanks to the - //__stlport_class inheritance is a stateless object so: - typedef __false_type has_trivial_default_constructor; - typedef _STLportAlloc has_trivial_copy_constructor; - typedef _STLportAlloc has_trivial_assignment_operator; - typedef _STLportAlloc has_trivial_destructor; - typedef __false_type is_POD_type; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> -struct __type_traits<per_thread_allocator<_Tp> > : _STLP_PRIV __perthread_alloc_type_traits<_Tp> {}; -#else -_STLP_TEMPLATE_NULL -struct __type_traits<per_thread_allocator<char> > : _STLP_PRIV __perthread_alloc_type_traits<char> {}; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_TEMPLATE_NULL -struct __type_traits<per_thread_allocator<wchar_t> > : _STLP_PRIV __perthread_alloc_type_traits<wchar_t> {}; -# endif -# if defined (_STLP_USE_PTR_SPECIALIZATIONS) -_STLP_TEMPLATE_NULL -struct __type_traits<per_thread_allocator<void*> > : _STLP_PRIV __perthread_alloc_type_traits<void*> {}; -# endif -#endif - - -_STLP_END_NAMESPACE - -#endif /* _STLP_PTHREAD_ALLOC */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_ptrs_specialize.h b/WebKit/android/stlport/stl/_ptrs_specialize.h deleted file mode 100644 index 92340db..0000000 --- a/WebKit/android/stlport/stl/_ptrs_specialize.h +++ /dev/null @@ -1,80 +0,0 @@ -#ifndef _STLP_PTRS_SPECIALIZE_H -#define _STLP_PTRS_SPECIALIZE_H - -#ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -#endif - -// the following is a workaround for arrow operator problems -#if defined ( _STLP_NO_ARROW_OPERATOR ) -// User wants to disable proxy -> operators -# define _STLP_DEFINE_ARROW_OPERATOR -# define _STLP_ARROW_SPECIALIZE_WITH_PTRS(_Tp) -#else -// Compiler can handle generic -> operator. -# define _STLP_ARROW_SPECIALIZE_WITH_PTRS(_Tp) -# if defined (__BORLANDC__) -# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(*(*this)); } -# elif defined(__WATCOMC__) -# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { reference x = operator*(); return &x; } -# else -# define _STLP_DEFINE_ARROW_OPERATOR pointer operator->() const { return &(operator*()); } -# endif -#endif /* _STLP_NO_ARROW_OPERATOR */ - -// Important pointers specializations - -#ifdef _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS -# define _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type) -# define _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type) -#else -# define _STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type) _STLP_TEMPLATE_NULL struct __type_traits<_Type> : __type_traits_aux<1> {}; -# define _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type*) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type*) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type**) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type* const *) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type**) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(_Type***) \ -_STLP_TYPE_TRAITS_POD_SPECIALIZE(const _Type***) -#endif - -# define _STLP_POINTERS_SPECIALIZE(_Type) _STLP_TYPE_TRAITS_POD_SPECIALIZE_V(_Type) _STLP_ARROW_SPECIALIZE_WITH_PTRS(_Type) - -_STLP_BEGIN_NAMESPACE - -# if !defined ( _STLP_NO_BOOL ) -_STLP_POINTERS_SPECIALIZE( bool ) -# endif -_STLP_TYPE_TRAITS_POD_SPECIALIZE_V(void) -# ifndef _STLP_NO_SIGNED_BUILTINS - _STLP_POINTERS_SPECIALIZE( signed char ) -# endif - _STLP_POINTERS_SPECIALIZE( char ) - _STLP_POINTERS_SPECIALIZE( unsigned char ) - _STLP_POINTERS_SPECIALIZE( short ) - _STLP_POINTERS_SPECIALIZE( unsigned short ) - _STLP_POINTERS_SPECIALIZE( int ) - _STLP_POINTERS_SPECIALIZE( unsigned int ) - _STLP_POINTERS_SPECIALIZE( long ) - _STLP_POINTERS_SPECIALIZE( unsigned long ) - _STLP_POINTERS_SPECIALIZE( float ) - _STLP_POINTERS_SPECIALIZE( double ) -# if !defined ( _STLP_NO_LONG_DOUBLE ) - _STLP_POINTERS_SPECIALIZE( long double ) -# endif -# if defined ( _STLP_LONG_LONG) - _STLP_POINTERS_SPECIALIZE( _STLP_LONG_LONG ) - _STLP_POINTERS_SPECIALIZE( unsigned _STLP_LONG_LONG ) -# endif -#if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT) - _STLP_POINTERS_SPECIALIZE( wchar_t ) -# endif - -_STLP_END_NAMESPACE - -# undef _STLP_ARROW_SPECIALIZE -# undef _STLP_ARROW_SPECIALIZE_WITH_PTRS -# undef _STLP_TYPE_TRAITS_POD_SPECIALIZE_V - -#endif diff --git a/WebKit/android/stlport/stl/_queue.h b/WebKit/android/stlport/stl/_queue.h deleted file mode 100644 index 4920615..0000000 --- a/WebKit/android/stlport/stl/_queue.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_QUEUE_H -#define _STLP_INTERNAL_QUEUE_H - -#ifndef _STLP_INTERNAL_DEQUE_H -# include <stl/_deque.h> -#endif - -#ifndef _STLP_INTERNAL_VECTOR_H -# include <stl/_vector.h> -#endif - -#ifndef _STLP_INTERNAL_HEAP_H -# include <stl/_heap.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#if defined(__SC__) && !defined(__DMC__) //*ty 12/07/2001 - since "comp" is a built-in type and reserved under SCpp -# define comp _Comp -#endif - -_STLP_BEGIN_NAMESPACE - -# if ! defined ( _STLP_LIMITED_DEFAULT_TEMPLATES ) -template <class _Tp, class _Sequence = deque<_Tp> > -# elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS ) -# define _STLP_QUEUE_ARGS _Tp -template <class _Tp> -# else -template <class _Tp, class _Sequence> -# endif -class queue -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) -# if defined (_STLP_QUEUE_ARGS) - : public __stlport_class<queue<_Tp> > -# else - : public __stlport_class<queue<_Tp, _Sequence> > -# endif -#endif -{ -# if defined ( _STLP_QUEUE_ARGS ) - typedef deque<_Tp> _Sequence; - typedef queue<_Tp> _Self; -# else - typedef queue<_Tp, _Sequence> _Self; -# endif -public: - typedef typename _Sequence::value_type value_type; - typedef typename _Sequence::size_type size_type; - typedef _Sequence container_type; - - typedef typename _Sequence::reference reference; - typedef typename _Sequence::const_reference const_reference; - -protected: - //c is a Standard name (23.2.3.1), do no make it STLport naming convention compliant. - _Sequence c; -public: - queue() : c() {} - explicit queue(const _Sequence& __c) : c(__c) {} - - queue(__move_source<_Self> src) - : c(_STLP_PRIV _AsMoveSource(src.get().c)) {} - - bool empty() const { return c.empty(); } - size_type size() const { return c.size(); } - reference front() { return c.front(); } - const_reference front() const { return c.front(); } - reference back() { return c.back(); } - const_reference back() const { return c.back(); } - void push(const value_type& __x) { c.push_back(__x); } - void pop() { c.pop_front(); } - const _Sequence& _Get_s() const { return c; } -}; - -#ifndef _STLP_QUEUE_ARGS -# define _STLP_QUEUE_ARGS _Tp, _Sequence -# define _STLP_QUEUE_HEADER_ARGS class _Tp, class _Sequence -#else -# define _STLP_QUEUE_HEADER_ARGS class _Tp -#endif - -template < _STLP_QUEUE_HEADER_ARGS > -inline bool _STLP_CALL -operator==(const queue<_STLP_QUEUE_ARGS >& __x, const queue<_STLP_QUEUE_ARGS >& __y) { - return __x._Get_s() == __y._Get_s(); -} - -template < _STLP_QUEUE_HEADER_ARGS > -inline bool _STLP_CALL -operator<(const queue<_STLP_QUEUE_ARGS >& __x, const queue<_STLP_QUEUE_ARGS >& __y) { - return __x._Get_s() < __y._Get_s(); -} - -_STLP_RELOPS_OPERATORS( template < _STLP_QUEUE_HEADER_ARGS >, queue<_STLP_QUEUE_ARGS > ) - -# if !(defined ( _STLP_LIMITED_DEFAULT_TEMPLATES ) || defined ( _STLP_TEMPLATE_PARAM_SUBTYPE_BUG )) -template <class _Tp, class _Sequence = vector<_Tp>, - class _Compare = less<_STLP_HEADER_TYPENAME _Sequence::value_type> > -# elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS ) -template <class _Tp> -# else -template <class _Tp, class _Sequence, class _Compare> -# endif -class priority_queue -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) -# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) - : public __stlport_class<priority_queue<_Tp> > -# else - : public __stlport_class<priority_queue<_Tp, _Sequence> > -# endif -#endif -{ -# ifdef _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS - typedef vector<_Tp> _Sequence; - typedef less< typename vector<_Tp>::value_type> _Compare; - typedef priority_queue<_Tp> _Self; -# else - typedef priority_queue<_Tp, _Sequence, _Compare> _Self; -# endif -public: - typedef typename _Sequence::value_type value_type; - typedef typename _Sequence::size_type size_type; - typedef _Sequence container_type; - - typedef typename _Sequence::reference reference; - typedef typename _Sequence::const_reference const_reference; -protected: - //c is a Standard name (23.2.3.2), do no make it STLport naming convention compliant. - _Sequence c; - _Compare comp; -public: - priority_queue() : c() {} - explicit priority_queue(const _Compare& __x) : c(), comp(__x) {} - priority_queue(const _Compare& __x, const _Sequence& __s) - : c(__s), comp(__x) - { make_heap(c.begin(), c.end(), comp); } - - priority_queue(__move_source<_Self> src) - : c(_STLP_PRIV _AsMoveSource(src.get().c)), - comp(_STLP_PRIV _AsMoveSource(src.get().comp)) {} - -#ifdef _STLP_MEMBER_TEMPLATES - template <class _InputIterator> - priority_queue(_InputIterator __first, _InputIterator __last) - : c(__first, __last) { make_heap(c.begin(), c.end(), comp); } - - template <class _InputIterator> - priority_queue(_InputIterator __first, - _InputIterator __last, const _Compare& __x) - : c(__first, __last), comp(__x) - { make_heap(c.begin(), c.end(), comp); } - - template <class _InputIterator> - priority_queue(_InputIterator __first, _InputIterator __last, - const _Compare& __x, const _Sequence& __s) - : c(__s), comp(__x) - { - c.insert(c.end(), __first, __last); - make_heap(c.begin(), c.end(), comp); - } - -#else /* _STLP_MEMBER_TEMPLATES */ - priority_queue(const value_type* __first, const value_type* __last) - : c(__first, __last) { make_heap(c.begin(), c.end(), comp); } - - priority_queue(const value_type* __first, const value_type* __last, - const _Compare& __x) - : c(__first, __last), comp(__x) - { make_heap(c.begin(), c.end(), comp); } - - priority_queue(const value_type* __first, const value_type* __last, - const _Compare& __x, const _Sequence& __c) - : c(__c), comp(__x) - { - c.insert(c.end(), __first, __last); - make_heap(c.begin(), c.end(), comp); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - bool empty() const { return c.empty(); } - size_type size() const { return c.size(); } - const_reference top() const { return c.front(); } - void push(const value_type& __x) { - _STLP_TRY { - c.push_back(__x); - push_heap(c.begin(), c.end(), comp); - } - _STLP_UNWIND(c.clear()) - } - void pop() { - _STLP_TRY { - pop_heap(c.begin(), c.end(), comp); - c.pop_back(); - } - _STLP_UNWIND(c.clear()) - } -}; - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp, class _Sequence> -struct __move_traits<queue<_Tp, _Sequence> > : - _STLP_PRIV __move_traits_aux<_Sequence> -{}; - -template <class _Tp, class _Sequence, class _Compare> -struct __move_traits<priority_queue<_Tp, _Sequence, _Compare> > : - _STLP_PRIV __move_traits_aux2<_Sequence, _Compare> -{}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#undef _STLP_QUEUE_ARGS -#undef _STLP_QUEUE_HEADER_ARGS -#undef comp - -#endif /* _STLP_INTERNAL_QUEUE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_range_errors.h b/WebKit/android/stlport/stl/_range_errors.h deleted file mode 100644 index 583d265..0000000 --- a/WebKit/android/stlport/stl/_range_errors.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ - -#ifndef _STLP_RANGE_ERRORS_H -#define _STLP_RANGE_ERRORS_H - -// A few places in the STL throw range errors, using standard exception -// classes defined in <stdexcept>. This header file provides functions -// to throw those exception objects. - -// _STLP_DONT_THROW_RANGE_ERRORS is a hook so that users can disable -// this exception throwing. -#if defined (_STLP_CAN_THROW_RANGE_ERRORS) && defined (_STLP_USE_EXCEPTIONS) && \ - !defined (_STLP_DONT_THROW_RANGE_ERRORS) -# define _STLP_THROW_RANGE_ERRORS -#endif - -// For the STLport iostreams, only declaration here, definition is in the lib -#if !defined (_STLP_USE_NO_IOSTREAMS) && \ - !defined (_STLP_USE_NO_EXTERN_RANGE_ERRORS) && \ - !defined (_STLP_EXTERN_RANGE_ERRORS) -# define _STLP_EXTERN_RANGE_ERRORS -#endif - -_STLP_BEGIN_NAMESPACE -void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_runtime_error(const char* __msg); -void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_range_error(const char* __msg); -void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg); -void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_length_error(const char* __msg); -void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg); -void _STLP_FUNCTION_THROWS _STLP_DECLSPEC _STLP_CALL __stl_throw_overflow_error(const char* __msg); -_STLP_END_NAMESPACE - -#if !defined (_STLP_EXTERN_RANGE_ERRORS) - -# if defined(_STLP_THROW_RANGE_ERRORS) -# ifndef _STLP_INTERNAL_STDEXCEPT -# include <stl/_stdexcept.h> -# endif -# ifndef _STLP_STRING -# include <string> -# endif -# define _STLP_THROW_MSG(ex,msg) throw ex(string(msg)) -# else -# if defined (_STLP_RTTI_BUG) -# define _STLP_THROW_MSG(ex,msg) TerminateProcess(GetCurrentProcess(), 0) -# else -# ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -# endif -# ifndef _STLP_INTERNAL_CSTDIO -# include <stl/_cstdio.h> -# endif -# define _STLP_THROW_MSG(ex,msg) puts(msg),_STLP_ABORT() -# endif -# endif - -// For mode without library and throwing range errors, include the -// stdexcept header and throw the appropriate exceptions directly. - -_STLP_BEGIN_NAMESPACE - -inline void _STLP_DECLSPEC _STLP_CALL __stl_throw_runtime_error(const char* __msg) -{ _STLP_THROW_MSG(runtime_error, __msg); } - -inline void _STLP_DECLSPEC _STLP_CALL __stl_throw_range_error(const char* __msg) -{ _STLP_THROW_MSG(range_error, __msg); } - -inline void _STLP_DECLSPEC _STLP_CALL __stl_throw_out_of_range(const char* __msg) -{ _STLP_THROW_MSG(out_of_range, __msg); } - -inline void _STLP_DECLSPEC _STLP_CALL __stl_throw_length_error(const char* __msg) -{ _STLP_THROW_MSG(length_error, __msg); } - -inline void _STLP_DECLSPEC _STLP_CALL __stl_throw_invalid_argument(const char* __msg) -{ _STLP_THROW_MSG(invalid_argument, __msg); } - -inline void _STLP_DECLSPEC _STLP_CALL __stl_throw_overflow_error(const char* __msg) -{ _STLP_THROW_MSG(overflow_error, __msg); } - -_STLP_END_NAMESPACE - -# undef _STLP_THROW_MSG - -#endif /* EXTERN_RANGE_ERRORS */ - -#endif /* _STLP_RANGE_ERRORS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_raw_storage_iter.h b/WebKit/android/stlport/stl/_raw_storage_iter.h deleted file mode 100644 index 6e4bc2e..0000000 --- a/WebKit/android/stlport/stl/_raw_storage_iter.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H -#define _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _ForwardIterator, class _Tp> -class raw_storage_iterator - : public iterator<output_iterator_tag,void,void,void,void> -{ -protected: - _ForwardIterator _M_iter; -public: - typedef output_iterator_tag iterator_category; -# ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; -# endif - explicit raw_storage_iterator(_ForwardIterator __x) : _M_iter(__x) {} - raw_storage_iterator<_ForwardIterator, _Tp>& operator*() { return *this; } - raw_storage_iterator<_ForwardIterator, _Tp>& operator=(const _Tp& __element) { - _Param_Construct(&*_M_iter, __element); - return *this; - } - raw_storage_iterator<_ForwardIterator, _Tp>& operator++() { - ++_M_iter; - return *this; - } - raw_storage_iterator<_ForwardIterator, _Tp> operator++(int) { - raw_storage_iterator<_ForwardIterator, _Tp> __tmp = *this; - ++_M_iter; - return __tmp; - } -}; - -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES -template <class _ForwardIterator, class _Tp> -inline output_iterator_tag iterator_category(const raw_storage_iterator<_ForwardIterator, _Tp>&) { return output_iterator_tag(); } -#endif -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_RAW_STORAGE_ITERATOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_relops_cont.h b/WebKit/android/stlport/stl/_relops_cont.h deleted file mode 100644 index cd8ec05..0000000 --- a/WebKit/android/stlport/stl/_relops_cont.h +++ /dev/null @@ -1,29 +0,0 @@ -// This is an implementation file which -// is intended to be included multiple times with different _STLP_ASSOCIATIVE_CONTAINER -// setting - -#if !defined (_STLP_EQUAL_OPERATOR_SPECIALIZED) -_STLP_TEMPLATE_HEADER -inline bool _STLP_CALL operator==(const _STLP_TEMPLATE_CONTAINER& __x, - const _STLP_TEMPLATE_CONTAINER& __y) { - return __x.size() == __y.size() && - equal(__x.begin(), __x.end(), __y.begin()); -} -#endif /* _STLP_EQUAL_OPERATOR_SPECIALIZED */ - -_STLP_TEMPLATE_HEADER -inline bool _STLP_CALL operator<(const _STLP_TEMPLATE_CONTAINER& __x, - const _STLP_TEMPLATE_CONTAINER& __y) { - return lexicographical_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()); -} - -_STLP_RELOPS_OPERATORS( _STLP_TEMPLATE_HEADER , _STLP_TEMPLATE_CONTAINER ) - -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -_STLP_TEMPLATE_HEADER -inline void _STLP_CALL swap(_STLP_TEMPLATE_CONTAINER& __x, - _STLP_TEMPLATE_CONTAINER& __y) { - __x.swap(__y); -} -#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ diff --git a/WebKit/android/stlport/stl/_relops_hash_cont.h b/WebKit/android/stlport/stl/_relops_hash_cont.h deleted file mode 100644 index 421c805..0000000 --- a/WebKit/android/stlport/stl/_relops_hash_cont.h +++ /dev/null @@ -1,13 +0,0 @@ -/* This is an implementation file which is intended to be included - * multiple times with different _STLP_TEMPLATE_CONTAINER settings. - */ - -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) - -_STLP_TEMPLATE_HEADER -inline void _STLP_CALL -swap(_STLP_TEMPLATE_CONTAINER& __hm1, _STLP_TEMPLATE_CONTAINER& __hm2) { - __hm1.swap(__hm2); -} - -#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ diff --git a/WebKit/android/stlport/stl/_rope.c b/WebKit/android/stlport/stl/_rope.c deleted file mode 100644 index 61a8fda..0000000 --- a/WebKit/android/stlport/stl/_rope.c +++ /dev/null @@ -1,1433 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -// Set buf_start, buf_end, and buf_ptr appropriately, filling tmp_buf -// if necessary. Assumes path_end[leaf_index] and leaf_pos are correct. -// Results in a valid buf_ptr if the iterator can be legitimately -// dereferenced. -#ifndef _STLP_ROPEIMPL_H -#define _STLP_ROPEIMPL_H - -#ifndef _STLP_INTERNAL_ROPE_H -# include <stl/_rope.h> -#endif - -#ifndef _STLP_INTERNAL_CSTDIO -# include <stl/_cstdio.h> -#endif - -#if !defined (_STLP_USE_NO_IOSTREAMS) -# ifndef _STLP_IOSTREAM -# include <iostream> -# endif -#endif - -#include <stl/_range_errors.h> - -_STLP_BEGIN_NAMESPACE - -# if defined ( _STLP_NESTED_TYPE_PARAM_BUG ) -# define __allocator__ _Alloc -# else -# define __allocator__ allocator_type -# endif - -template<class _CharT, class _Alloc> -_Rope_iterator<_CharT, _Alloc>::_Rope_iterator(rope<_CharT,_Alloc>* __r, size_t __pos) - : _Rope_iterator_base<_CharT,_Alloc>(__r->_M_tree_ptr._M_data, __pos), - _M_root_rope(__r) { _RopeRep::_S_ref(this->_M_root); } - -template<class _CharT, class _Alloc> -_Rope_iterator<_CharT, _Alloc>::_Rope_iterator(rope<_CharT,_Alloc>& __r, size_t __pos): - _Rope_iterator_base<_CharT,_Alloc>(__r._M_tree_ptr._M_data, __pos), - _M_root_rope(&__r) { -#if !defined (__DMC__) - _RopeRep::_S_ref(this->_M_root); if (!(__r.empty()))_S_setcache(*this); -#else - _Rope_iterator_base<_CharT, _Alloc>* __x = this; - _RopeRep::_S_ref(this->_M_root); if (!(__r.empty()))_S_setcache(*__x); -#endif -} - -template<class _CharT, class _Alloc> -void _Rope_RopeRep<_CharT, _Alloc>::_M_free_c_string() { - _CharT* __cstr = _M_c_string; - if (0 != __cstr) { - size_t _p_size = _M_size._M_data + 1; - _STLP_STD::_Destroy_Range(__cstr, __cstr + _p_size); - _M_size.deallocate(__cstr, _p_size); - } -} - -// Set buf_start, buf_end, and buf_ptr appropriately, filling tmp_buf -// if necessary. Assumes _M_path_end[leaf_index] and leaf_pos are correct. -// Results in a valid buf_ptr if the iterator can be legitimately -// dereferenced. -template <class _CharT, class _Alloc> -void _Rope_iterator_base<_CharT,_Alloc>::_S_setbuf( - _Rope_iterator_base<_CharT,_Alloc>& __x) { - const _RopeRep* __leaf = __x._M_path_end._M_data[__x._M_leaf_index]; - size_t __leaf_pos = __x._M_leaf_pos; - size_t __pos = __x._M_current_pos; - - switch(__leaf->_M_tag) { - case _RopeRep::_S_leaf: - typedef _Rope_RopeLeaf<_CharT, _Alloc> _RopeLeaf; - __x._M_buf_start = __STATIC_CAST(const _RopeLeaf*, __leaf)->_M_data; - __x._M_buf_ptr = __x._M_buf_start + (__pos - __leaf_pos); - __x._M_buf_end = __x._M_buf_start + __leaf->_M_size._M_data; - break; - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - { - size_t __len = _S_iterator_buf_len; - size_t __buf_start_pos = __leaf_pos; - size_t __leaf_end = __leaf_pos + __leaf->_M_size._M_data; - typedef _Rope_RopeFunction<_CharT, _Alloc> _RopeFunction; - char_producer<_CharT>* __fn = __STATIC_CAST(const _RopeFunction*, __leaf)->_M_fn; - - if (__buf_start_pos + __len <= __pos) { - __buf_start_pos = __pos - __len/4; - if (__buf_start_pos + __len > __leaf_end) { - __buf_start_pos = __leaf_end - __len; - } - } - if (__buf_start_pos + __len > __leaf_end) { - __len = __leaf_end - __buf_start_pos; - } - (*__fn)(__buf_start_pos - __leaf_pos, __len, __x._M_tmp_buf._M_data); - __x._M_buf_ptr = __x._M_tmp_buf._M_data + (__pos - __buf_start_pos); - __x._M_buf_start = __x._M_tmp_buf._M_data; - __x._M_buf_end = __x._M_tmp_buf._M_data + __len; - } - break; - default: - _STLP_ASSERT(0) - ; - } -} - -// Set path and buffer inside a rope iterator. We assume that -// pos and root are already set. -template <class _CharT, class _Alloc> -void _Rope_iterator_base<_CharT,_Alloc>::_S_setcache( - _Rope_iterator_base<_CharT,_Alloc>& __x) { - const _RopeRep* __path[_RopeRep::_S_max_rope_depth+1]; - const _RopeRep* __curr_rope; - int __curr_depth = -1; /* index into path */ - size_t __curr_start_pos = 0; - size_t __pos = __x._M_current_pos; - unsigned char __dirns = 0; // Bit vector marking right turns in the path - - _STLP_ASSERT(__pos <= __x._M_root->_M_size._M_data) - if (__pos >= __x._M_root->_M_size._M_data) { - __x._M_buf_ptr = 0; - return; - } - __curr_rope = __x._M_root; - if (0 != __curr_rope->_M_c_string) { - /* Treat the root as a leaf. */ - __x._M_buf_start = __curr_rope->_M_c_string; - __x._M_buf_end = __curr_rope->_M_c_string + __curr_rope->_M_size._M_data; - __x._M_buf_ptr = __curr_rope->_M_c_string + __pos; - __x._M_path_end._M_data[0] = __curr_rope; - __x._M_leaf_index = 0; - __x._M_leaf_pos = 0; - return; - } - for(;;) { - ++__curr_depth; - _STLP_ASSERT(__curr_depth <= _RopeRep::_S_max_rope_depth) - __path[__curr_depth] = __curr_rope; - switch(__curr_rope->_M_tag) { - case _RopeRep::_S_leaf: - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - __x._M_leaf_pos = __curr_start_pos; - goto done; - case _RopeRep::_S_concat: - { - const _RopeConcat* __c = __STATIC_CAST(const _RopeConcat*, __curr_rope); - _RopeRep* __left = __c->_M_left; - size_t __left_len = __left->_M_size._M_data; - - __dirns <<= 1; - if (__pos >= __curr_start_pos + __left_len) { - __dirns |= 1; - __curr_rope = __c->_M_right; - __curr_start_pos += __left_len; - } else { - __curr_rope = __left; - } - } - break; - } - } -done: - // Copy last section of path into _M_path_end. - { - int __i = -1; - int __j = __curr_depth + 1 - _S_path_cache_len; - - if (__j < 0) __j = 0; - while (__j <= __curr_depth) { - __x._M_path_end._M_data[++__i] = __path[__j++]; - } - __x._M_leaf_index = __i; - } - __x._M_path_directions = __dirns; - _S_setbuf(__x); -} - -// Specialized version of the above. Assumes that -// the path cache is valid for the previous position. -template <class _CharT, class _Alloc> -void _Rope_iterator_base<_CharT,_Alloc>::_S_setcache_for_incr( -_Rope_iterator_base<_CharT,_Alloc>& __x) { - int __current_index = __x._M_leaf_index; - const _RopeRep* __current_node = __x._M_path_end._M_data[__current_index]; - size_t __len = __current_node->_M_size._M_data; - size_t __node_start_pos = __x._M_leaf_pos; - unsigned char __dirns = __x._M_path_directions; - const _RopeConcat* __c; - - _STLP_ASSERT(__x._M_current_pos <= __x._M_root->_M_size._M_data) - if (__x._M_current_pos - __node_start_pos < __len) { - /* More stuff in this leaf, we just didn't cache it. */ - _S_setbuf(__x); - return; - } - _STLP_ASSERT(__node_start_pos + __len == __x._M_current_pos) - // node_start_pos is starting position of last_node. - while (--__current_index >= 0) { - if (!(__dirns & 1) /* Path turned left */) - break; - __current_node = __x._M_path_end._M_data[__current_index]; - __c = __STATIC_CAST(const _RopeConcat*, __current_node); - // Otherwise we were in the right child. Thus we should pop - // the concatenation node. - __node_start_pos -= __c->_M_left->_M_size._M_data; - __dirns >>= 1; - } - if (__current_index < 0) { - // We underflowed the cache. Punt. - _S_setcache(__x); - return; - } - __current_node = __x._M_path_end._M_data[__current_index]; - __c = __STATIC_CAST(const _RopeConcat*, __current_node); - // current_node is a concatenation node. We are positioned on the first - // character in its right child. - // node_start_pos is starting position of current_node. - __node_start_pos += __c->_M_left->_M_size._M_data; - __current_node = __c->_M_right; - __x._M_path_end._M_data[++__current_index] = __current_node; - __dirns |= 1; - while (_RopeRep::_S_concat == __current_node->_M_tag) { - ++__current_index; - if (_S_path_cache_len == __current_index) { - int __i; - for (__i = 0; __i < _S_path_cache_len-1; ++__i) { - __x._M_path_end._M_data[__i] = __x._M_path_end._M_data[__i+1]; - } - --__current_index; - } - __current_node = __STATIC_CAST(const _RopeConcat*, __current_node)->_M_left; - __x._M_path_end._M_data[__current_index] = __current_node; - __dirns <<= 1; - // node_start_pos is unchanged. - } - __x._M_leaf_index = __current_index; - __x._M_leaf_pos = __node_start_pos; - __x._M_path_directions = __dirns; - _S_setbuf(__x); -} - -template <class _CharT, class _Alloc> -void _Rope_iterator_base<_CharT,_Alloc>::_M_incr(size_t __n) { - _M_current_pos += __n; - if (0 != _M_buf_ptr) { - size_t __chars_left = _M_buf_end - _M_buf_ptr; - if (__chars_left > __n) { - _M_buf_ptr += __n; - } else if (__chars_left == __n) { - _M_buf_ptr += __n; - _S_setcache_for_incr(*this); - } else { - _M_buf_ptr = 0; - } - } -} - -template <class _CharT, class _Alloc> -void _Rope_iterator_base<_CharT,_Alloc>::_M_decr(size_t __n) { - if (0 != _M_buf_ptr) { - size_t __chars_left = _M_buf_ptr - _M_buf_start; - if (__chars_left >= __n) { - _M_buf_ptr -= __n; - } else { - _M_buf_ptr = 0; - } - } - _M_current_pos -= __n; -} - -template <class _CharT, class _Alloc> -void _Rope_iterator<_CharT,_Alloc>::_M_check() { - if (_M_root_rope->_M_tree_ptr._M_data != this->_M_root) { - // _Rope was modified. Get things fixed up. - _RopeRep::_S_unref(this->_M_root); - this->_M_root = _M_root_rope->_M_tree_ptr._M_data; - _RopeRep::_S_ref(this->_M_root); - this->_M_buf_ptr = 0; - } -} - -// There are several reasons for not doing this with virtual destructors -// and a class specific delete operator: -// - A class specific delete operator can't easily get access to -// allocator instances if we need them. -// - Any virtual function would need a 4 or byte vtable pointer; -// this only requires a one byte tag per object. -template <class _CharT, class _Alloc> -void _Rope_RopeRep<_CharT,_Alloc>::_M_free_tree() { - switch (_M_tag) { - case _S_leaf: - { - typedef _Rope_RopeLeaf<_CharT, _Alloc> _RopeLeaf; - _RopeLeaf* __l = __STATIC_CAST(_RopeLeaf*, this); - _STLP_STD::_Destroy(__l); // ->_Rope_RopeLeaf<_CharT,_Alloc>::~_Rope_RopeLeaf(); - _STLP_CREATE_ALLOCATOR(allocator_type,(const allocator_type&)_M_size, - _RopeLeaf).deallocate(__l, 1); - break; - } - case _S_concat: - { - typedef _Rope_RopeConcatenation<_CharT, _Alloc> _RopeConcatenation; - _RopeConcatenation* __c = __STATIC_CAST(_RopeConcatenation*, this); - _STLP_STD::_Destroy(__c); - _STLP_CREATE_ALLOCATOR(allocator_type,(const allocator_type&)_M_size, - _RopeConcatenation).deallocate(__c, 1); - break; - } - case _S_function: - { - typedef _Rope_RopeFunction<_CharT, _Alloc> _RopeFunction; - _RopeFunction* __f = __STATIC_CAST(_RopeFunction*, this); - _STLP_STD::_Destroy(__f); - _STLP_CREATE_ALLOCATOR(allocator_type, (const allocator_type&)_M_size, - _RopeFunction).deallocate(__f, 1); - break; - } - case _S_substringfn: - { - typedef _Rope_RopeSubstring<_CharT, _Alloc> _RopeSubstring; - _RopeSubstring* __rss = __STATIC_CAST(_RopeSubstring*, this); - _STLP_STD::_Destroy(__rss); - _STLP_CREATE_ALLOCATOR(allocator_type, (const allocator_type&)_M_size, - _RopeSubstring).deallocate(__rss, 1); - break; - } - } -} - -# if defined ( _STLP_NESTED_TYPE_PARAM_BUG ) -# define __RopeLeaf__ _Rope_RopeLeaf<_CharT,_Alloc> -# define __RopeRep__ _Rope_RopeRep<_CharT,_Alloc> -# define _RopeLeaf _Rope_RopeLeaf<_CharT,_Alloc> -# define _RopeRep _Rope_RopeRep<_CharT,_Alloc> -# define size_type size_t -# else -# define __RopeLeaf__ _STLP_TYPENAME_ON_RETURN_TYPE rope<_CharT,_Alloc>::_RopeLeaf -# define __RopeRep__ _STLP_TYPENAME_ON_RETURN_TYPE rope<_CharT,_Alloc>::_RopeRep -# endif - -template <class _CharT, class _Alloc> -void rope<_CharT, _Alloc>::_M_throw_out_of_range() const { - __stl_throw_out_of_range("rope"); -} - -// Concatenate a C string onto a leaf rope by copying the rope data. -// Used for short ropes. -template <class _CharT, class _Alloc> -__RopeLeaf__* -rope<_CharT,_Alloc>::_S_leaf_concat_char_iter ( - _RopeLeaf* __r, const _CharT* __iter, size_t __len) { - size_t __old_len = __r->_M_size._M_data; - _CharT* __new_data = __r->_M_size.allocate(_S_rounded_up_size(__old_len + __len)); - _RopeLeaf* __result; - - _STLP_PRIV __ucopy_n(__r->_M_data, __old_len, __new_data); - _STLP_PRIV __ucopy_n(__iter, __len, __new_data + __old_len); - _S_construct_null(__new_data + __old_len + __len); - _STLP_TRY { - __result = _S_new_RopeLeaf(__new_data, __old_len + __len, __r->get_allocator()); - } - _STLP_UNWIND(_RopeRep::_S_free_string(__new_data, __old_len + __len, - __r->get_allocator())) - return __result; -} - -template <class _CharT, class _Alloc> -void _Terminate_RopeLeaf(_Rope_RopeLeaf<_CharT,_Alloc> *__r, - size_t __size, const __true_type& /*basic char type*/) { - _S_construct_null(__r->_M_data + __size); - _STLP_ASSERT(__r->_M_c_string == __r->_M_data) -} - -template <class _CharT, class _Alloc> -void _Terminate_RopeLeaf(_Rope_RopeLeaf<_CharT,_Alloc> *__r, - size_t, const __false_type& /*basic char type*/) { - if (__r->_M_c_string != __r->_M_data && 0 != __r->_M_c_string) { - __r->_M_free_c_string(); - __r->_M_c_string = 0; - } -} - -// As above, but it's OK to clobber original if refcount is 1 -template <class _CharT, class _Alloc> -__RopeLeaf__* -rope<_CharT,_Alloc>::_S_destr_leaf_concat_char_iter (_RopeLeaf* __r, const _CharT* __iter, size_t __len) { - //_STLP_ASSERT(__r->_M_ref_count >= 1) - if ( /* __r->_M_ref_count > 1 */ __r->_M_incr() > 2 ) { // - ptr - __r->_M_decr(); // - ptr - return _S_leaf_concat_char_iter(__r, __iter, __len); - } - __r->_M_decr(); // - ptr, __r->_M_ref_count == 1 or 0 - size_t __old_len = __r->_M_size._M_data; - if (_S_rounded_up_size(__old_len) == _S_rounded_up_size(__old_len + __len)) { - // The space has been partially initialized for the standard - // character types. But that doesn't matter for those types. - _STLP_PRIV __ucopy_n(__iter, __len, __r->_M_data + __old_len); - _Terminate_RopeLeaf(__r, __old_len + __len, _IsBasicCharType()); - __r->_M_size._M_data = __old_len + __len; - // _STLP_ASSERT(__r->_M_ref_count == 1) - // __r->_M_ref_count = 2; - __r->_M_incr(); // i.e. __r->_M_ref_count = 2 - return __r; - } else { - _RopeLeaf* __result = _S_leaf_concat_char_iter(__r, __iter, __len); - //_STLP_ASSERT(__result->_M_ref_count == 1) - return __result; - } -} - -// Assumes left and right are not 0. -// Does not increment (nor decrement on exception) child reference counts. -// Result has ref count 1. -template <class _CharT, class _Alloc> -__RopeRep__* -rope<_CharT,_Alloc>::_S_tree_concat (_RopeRep* __left, _RopeRep* __right) { - _RopeConcatenation* __result = - _S_new_RopeConcatenation(__left, __right, __left->get_allocator()); - size_t __depth = __result->_M_depth; - - _STLP_ASSERT(__left->get_allocator() == __right->get_allocator()) - if (__depth > 20 && (__result->_M_size._M_data < 1000 || - __depth > _RopeRep::_S_max_rope_depth)) { - _RopeRep* __balanced; - - _STLP_TRY { - __balanced = _S_balance(__result); - // _STLP_ASSERT(__result == __balanced || - // 1 == __result->_M_ref_count && - // 1 == __balanced->_M_ref_count) - __result->_M_unref_nonnil(); - } - _STLP_UNWIND((_STLP_CREATE_ALLOCATOR(allocator_type,(allocator_type&)__left->_M_size, - _RopeConcatenation).deallocate(__result,1))) - // In case of exception, we need to deallocate - // otherwise dangling result node. But caller - // still owns its children. Thus unref is - // inappropriate. - return __balanced; - } else { - return __result; - } -} - -template <class _CharT, class _Alloc> -__RopeRep__* -rope<_CharT,_Alloc>::_S_concat_char_iter (_RopeRep* __r, - const _CharT*__s, size_t __slen) { - _RopeRep* __result; - if (0 == __slen) { - _S_ref(__r); - return __r; - } - if (0 == __r) - return _S_RopeLeaf_from_unowned_char_ptr(__s, __slen, __r->get_allocator()); - if (_RopeRep::_S_leaf == __r->_M_tag && - __r->_M_size._M_data + __slen <= _S_copy_max) { - __result = _S_leaf_concat_char_iter((_RopeLeaf*)__r, __s, __slen); - // _STLP_ASSERT(1 == __result->_M_ref_count) - return __result; - } - if (_RopeRep::_S_concat == __r->_M_tag && - _RopeRep::_S_leaf == ((_RopeConcatenation*)__r)->_M_right->_M_tag) { - _RopeLeaf* __right = (_RopeLeaf* )(((_RopeConcatenation* )__r)->_M_right); - if (__right->_M_size._M_data + __slen <= _S_copy_max) { - _RopeRep* __left = ((_RopeConcatenation*)__r)->_M_left; - _RopeRep* __nright = _S_leaf_concat_char_iter((_RopeLeaf*)__right, __s, __slen); - __left->_M_ref_nonnil(); - _STLP_TRY { - __result = _S_tree_concat(__left, __nright); - } - _STLP_UNWIND(_S_unref(__left); _S_unref(__nright)) - // _STLP_ASSERT(1 == __result->_M_ref_count) - return __result; - } - } - _RopeRep* __nright = - _S_RopeLeaf_from_unowned_char_ptr(__s, __slen, __r->get_allocator()); - _STLP_TRY { - __r->_M_ref_nonnil(); - __result = _S_tree_concat(__r, __nright); - } - _STLP_UNWIND(_S_unref(__r); _S_unref(__nright)) - // _STLP_ASSERT(1 == __result->_M_ref_count) - return __result; -} - -template <class _CharT, class _Alloc> -__RopeRep__* -rope<_CharT,_Alloc>::_S_destr_concat_char_iter( - _RopeRep* __r, const _CharT* __s, size_t __slen) { - _RopeRep* __result; - if (0 == __r) - return _S_RopeLeaf_from_unowned_char_ptr(__s, __slen, - __r->get_allocator()); - // size_t __count = __r->_M_ref_count; - size_t __orig_size = __r->_M_size._M_data; - // _STLP_ASSERT(__count >= 1) - if ( /* __count > 1 */ __r->_M_incr() > 2 ) { - __r->_M_decr(); - return _S_concat_char_iter(__r, __s, __slen); - } - if (0 == __slen) { - return __r; - } - __r->_M_decr(); - if (__orig_size + __slen <= _S_copy_max && _RopeRep::_S_leaf == __r->_M_tag) { - return _S_destr_leaf_concat_char_iter((_RopeLeaf*)__r, __s, __slen); - } - if (_RopeRep::_S_concat == __r->_M_tag) { - _RopeLeaf* __right = __STATIC_CAST(_RopeLeaf*, __STATIC_CAST(_RopeConcatenation*, __r)->_M_right); - if (_RopeRep::_S_leaf == __right->_M_tag && - __right->_M_size._M_data + __slen <= _S_copy_max) { - _RopeRep* __new_right = _S_destr_leaf_concat_char_iter(__right, __s, __slen); - if (__right == __new_right) { - // _STLP_ASSERT(__new_right->_M_ref_count == 2) - // __new_right->_M_ref_count = 1; - __new_right->_M_decr(); - } else { - // _STLP_ASSERT(__new_right->_M_ref_count >= 1) - __right->_M_unref_nonnil(); - } - // _STLP_ASSERT(__r->_M_ref_count == 1) - // __r->_M_ref_count = 2; // One more than before. - __r->_M_incr(); - __STATIC_CAST(_RopeConcatenation*, __r)->_M_right = __new_right; - // E.Musser : moved below - // __r->_M_size._M_data = __orig_size + __slen; - if (0 != __r->_M_c_string) { - __r->_M_free_c_string(); - __r->_M_c_string = 0; - } - __r->_M_size._M_data = __orig_size + __slen; - return __r; - } - } - _RopeRep* __right = - _S_RopeLeaf_from_unowned_char_ptr(__s, __slen, __r->get_allocator()); - __r->_M_ref_nonnil(); - _STLP_TRY { - __result = _S_tree_concat(__r, __right); - } - _STLP_UNWIND(_S_unref(__r); _S_unref(__right)) - // _STLP_ASSERT(1 == __result->_M_ref_count) - return __result; -} - -template <class _CharT, class _Alloc> -__RopeRep__* -rope<_CharT,_Alloc>::_S_concat_rep(_RopeRep* __left, _RopeRep* __right) { - if (0 == __left) { - _S_ref(__right); - return __right; - } - if (0 == __right) { - __left->_M_ref_nonnil(); - return __left; - } - if (_RopeRep::_S_leaf == __right->_M_tag) { - if (_RopeRep::_S_leaf == __left->_M_tag) { - if (__right->_M_size._M_data + __left->_M_size._M_data <= _S_copy_max) { - return _S_leaf_concat_char_iter(__STATIC_CAST(_RopeLeaf*, __left), - __STATIC_CAST(_RopeLeaf*, __right)->_M_data, - __right->_M_size._M_data); - } - } else if (_RopeRep::_S_concat == __left->_M_tag && - _RopeRep::_S_leaf == __STATIC_CAST(_RopeConcatenation*, __left)->_M_right->_M_tag) { - _RopeLeaf* __leftright = - __STATIC_CAST(_RopeLeaf*, __STATIC_CAST(_RopeConcatenation*, __left)->_M_right); - if (__leftright->_M_size._M_data + __right->_M_size._M_data <= _S_copy_max) { - _RopeRep* __leftleft = __STATIC_CAST(_RopeConcatenation*, __left)->_M_left; - _RopeRep* __rest = _S_leaf_concat_char_iter(__leftright, - __STATIC_CAST(_RopeLeaf*, __right)->_M_data, - __right->_M_size._M_data); - __leftleft->_M_ref_nonnil(); - _STLP_TRY { - return _S_tree_concat(__leftleft, __rest); - } - _STLP_UNWIND(_S_unref(__leftleft); _S_unref(__rest)) - } - } - } - __left->_M_ref_nonnil(); - __right->_M_ref_nonnil(); - _STLP_TRY { - return _S_tree_concat(__left, __right); - } - _STLP_UNWIND(_S_unref(__left); _S_unref(__right)) - _STLP_RET_AFTER_THROW(0) -} - -template <class _CharT, class _Alloc> -__RopeRep__* -rope<_CharT,_Alloc>::_S_substring(_RopeRep* __base, - size_t __start, size_t __endp1) { - if (0 == __base) return 0; - size_t __len = __base->_M_size._M_data; - size_t __adj_endp1; - const size_t __lazy_threshold = 128; - - if (__endp1 >= __len) { - if (0 == __start) { - __base->_M_ref_nonnil(); - return __base; - } else { - __adj_endp1 = __len; - } - } else { - __adj_endp1 = __endp1; - } - switch(__base->_M_tag) { - case _RopeRep::_S_concat: - { - _RopeConcatenation* __c = __STATIC_CAST(_RopeConcatenation*, __base); - _RopeRep* __left = __c->_M_left; - _RopeRep* __right = __c->_M_right; - size_t __left_len = __left->_M_size._M_data; - _RopeRep* __result; - - if (__adj_endp1 <= __left_len) { - return _S_substring(__left, __start, __endp1); - } else if (__start >= __left_len) { - return _S_substring(__right, __start - __left_len, - __adj_endp1 - __left_len); - } - _Self_destruct_ptr __left_result(_S_substring(__left, __start, __left_len)); - _Self_destruct_ptr __right_result(_S_substring(__right, 0, __endp1 - __left_len)); - _STLP_MPWFIX_TRY //*TY 06/01/2000 - mpw forgets to call dtor on __left_result and __right_result without this try block - __result = _S_concat_rep(__left_result, __right_result); - // _STLP_ASSERT(1 == __result->_M_ref_count) - return __result; - _STLP_MPWFIX_CATCH //*TY 06/01/2000 - - } - case _RopeRep::_S_leaf: - { - _RopeLeaf* __l = __STATIC_CAST(_RopeLeaf*, __base); - _RopeLeaf* __result; - size_t __result_len; - if (__start >= __adj_endp1) return 0; - __result_len = __adj_endp1 - __start; - if (__result_len > __lazy_threshold) goto lazy; - const _CharT* __section = __l->_M_data + __start; - // We should sometimes create substring node instead. - __result = _S_RopeLeaf_from_unowned_char_ptr(__section, __result_len, - __base->get_allocator()); - return __result; - } - case _RopeRep::_S_substringfn: - // Avoid introducing multiple layers of substring nodes. - { - _RopeSubstring* __old = __STATIC_CAST(_RopeSubstring*, __base); - size_t __result_len; - if (__start >= __adj_endp1) return 0; - __result_len = __adj_endp1 - __start; - if (__result_len > __lazy_threshold) { - _RopeSubstring* __result = _S_new_RopeSubstring(__old->_M_base, - __start + __old->_M_start, - __adj_endp1 - __start, - __base->get_allocator()); - return __result; - } // *** else fall through: *** - } - case _RopeRep::_S_function: - { - _RopeFunction* __f = __STATIC_CAST(_RopeFunction*, __base); - if (__start >= __adj_endp1) return 0; - size_t __result_len = __adj_endp1 - __start; - - if (__result_len > __lazy_threshold) goto lazy; - _CharT* __section = __base->_M_size.allocate(_S_rounded_up_size(__result_len)); - _STLP_TRY { - (*(__f->_M_fn))(__start, __result_len, __section); - } - _STLP_UNWIND(_RopeRep::_S_free_string(__section, - __result_len, __base->get_allocator())) - _S_construct_null(__section + __result_len); - return _S_new_RopeLeaf(__section, __result_len, - __base->get_allocator()); - } - } - /*NOTREACHED*/ - _STLP_ASSERT(false) - lazy: - { - // Create substring node. - return _S_new_RopeSubstring(__base, __start, __adj_endp1 - __start, - __base->get_allocator()); - } -} - -template<class _CharT> -class _Rope_flatten_char_consumer : public _Rope_char_consumer<_CharT> { -private: - _CharT* _M_buf_ptr; -public: - _Rope_flatten_char_consumer(_CharT* __buffer) { - _M_buf_ptr = __buffer; - } - ~_Rope_flatten_char_consumer() {} - bool operator() (const _CharT* __leaf, size_t __n) { - _STLP_PRIV __ucopy_n(__leaf, __n, _M_buf_ptr); - _M_buf_ptr += __n; - return true; - } -}; - -template<class _CharT> -class _Rope_find_char_char_consumer : public _Rope_char_consumer<_CharT> { -private: - _CharT _M_pattern; -public: - size_t _M_count; // Number of nonmatching characters - _Rope_find_char_char_consumer(_CharT __p) - : _M_pattern(__p), _M_count(0) {} - ~_Rope_find_char_char_consumer() {} - bool operator() (const _CharT* __leaf, size_t __n) { - size_t __i; - for (__i = 0; __i < __n; ++__i) { - if (__leaf[__i] == _M_pattern) { - _M_count += __i; return false; - } - } - _M_count += __n; return true; - } -}; - -#if !defined (_STLP_USE_NO_IOSTREAMS) -template<class _CharT, class _Traits> -// Here _CharT is both the stream and rope character type. -class _Rope_insert_char_consumer : public _Rope_char_consumer<_CharT> { -private: - typedef basic_ostream<_CharT,_Traits> _Insert_ostream; - typedef _Rope_insert_char_consumer<_CharT,_Traits> _Self; - _Insert_ostream& _M_o; - - //explicitely defined as private to avoid warnings: - _Self& operator = (_Self const&); -public: - _Rope_insert_char_consumer(_Insert_ostream& __writer) - : _M_o(__writer) {} -# if defined(__MRC__) || (defined(__SC__) && !defined(__DMC__)) //*TY 05/23/2000 - added support for mpw compiler's trigger function approach to generate vtable - ~_Rope_insert_char_consumer(); //*TY 05/23/2000 - -# else //*TY 05/23/2000 - - ~_Rope_insert_char_consumer() {} -# endif //*TY 05/23/2000 - - // Caller is presumed to own the ostream - bool operator() (const _CharT* __leaf, size_t __n); - // Returns true to continue traversal. -}; - -# if defined (__MRC__) || (defined (__SC__) && !defined (__DMC__)) //*TY 05/23/2000 - added support for mpw compiler's trigger function approach to generate vtable -template<class _CharT, class _Traits> -_Rope_insert_char_consumer<_CharT, _Traits>:: ~_Rope_insert_char_consumer() {} -# endif //*TY 05/23/2000 - - -template<class _CharT, class _Traits> -bool _Rope_insert_char_consumer<_CharT, _Traits>::operator() - (const _CharT* __leaf, size_t __n) { - size_t __i; - // We assume that formatting is set up correctly for each element. - for (__i = 0; __i < __n; ++__i) _M_o.put(__leaf[__i]); - return true; -} -#endif /* !_STLP_USE_NO_IOSTREAMS */ - -template <class _CharT, class _Alloc, class _CharConsumer> -bool _S_apply_to_pieces(_CharConsumer& __c, - _Rope_RopeRep<_CharT, _Alloc> * __r, - size_t __begin, size_t __end) { - typedef _Rope_RopeRep<_CharT, _Alloc> _RopeRep; - typedef _Rope_RopeConcatenation<_CharT,_Alloc> _RopeConcatenation; - typedef _Rope_RopeLeaf<_CharT,_Alloc> _RopeLeaf; - typedef _Rope_RopeFunction<_CharT,_Alloc> _RopeFunction; - - if (0 == __r) return true; - switch(__r->_M_tag) { - case _RopeRep::_S_concat: - { - _RopeConcatenation* __conc = __STATIC_CAST(_RopeConcatenation*, __r); - _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); - 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); - if (!_S_apply_to_pieces(__c, __right, - __right_start - __left_len, - __end - __left_len)) { - return false; - } - } - } - return true; - case _RopeRep::_S_leaf: - { - _RopeLeaf* __l = __STATIC_CAST(_RopeLeaf*, __r); - return __c(__l->_M_data + __begin, __end - __begin); - } - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - { - _RopeFunction* __f = __STATIC_CAST(_RopeFunction*, __r); - size_t __len = __end - __begin; - bool __result; - _CharT* __buffer = __r->get_allocator().allocate(__len); - _STLP_TRY { - (*(__f->_M_fn))(__begin, __len, __buffer); - __result = __c(__buffer, __len); - __r->get_allocator().deallocate(__buffer, __len); - } - _STLP_UNWIND((__r->get_allocator().deallocate(__buffer, __len))) - return __result; - } - default: - _STLP_ASSERT(false) - /*NOTREACHED*/ - return false; - } -} - -#if !defined (_STLP_USE_NO_IOSTREAMS) -template<class _CharT, class _Traits> -inline void _Rope_fill(basic_ostream<_CharT, _Traits>& __o, streamsize __n) { - char __f = __o.fill(); - for (streamsize __i = 0; __i < __n; ++__i) __o.put(__f); -} - -template<class _CharT, class _Traits, class _Alloc> -basic_ostream<_CharT, _Traits>& _S_io_get(basic_ostream<_CharT, _Traits>& __o, - const rope<_CharT, _Alloc>& __r, const __true_type& /*_IsBasicCharType*/) { - streamsize __w = __o.width(); - const bool __left = (__o.flags() & ios::left) != 0; - size_t __rope_len = __r.size(); - _Rope_insert_char_consumer<_CharT, _Traits> __c(__o); - - const bool __need_pad = (((sizeof(streamsize) > sizeof(size_t)) && (__STATIC_CAST(streamsize, __rope_len) < __w)) || - ((sizeof(streamsize) <= sizeof(size_t)) && (__rope_len < __STATIC_CAST(size_t, __w)))); - streamsize __pad_len = __need_pad ? __w - __rope_len : 0; - - if (!__left && __pad_len > 0) { - _Rope_fill(__o, __pad_len); - } - __r.apply_to_pieces(0, __rope_len, __c); - if (__left && __pad_len > 0) { - _Rope_fill(__o, __pad_len); - } - return __o; -} - -template<class _CharT, class _Traits, class _Alloc> -basic_ostream<_CharT, _Traits>& _S_io_get(basic_ostream<_CharT, _Traits>& __o, - const rope<_CharT, _Alloc>& __r, const __false_type& /*_IsBasicCharType*/) { - streamsize __w = __o.width(); - size_t __rope_len = __r.size(); - _Rope_insert_char_consumer<_CharT, _Traits> __c(__o); - - __o.width(__w /__rope_len); - _STLP_TRY { - __r.apply_to_pieces(0, __rope_len, __c); - __o.width(__w); - } - _STLP_UNWIND(__o.width(__w)) - return __o; -} - -template<class _CharT, class _Traits, class _Alloc> -basic_ostream<_CharT, _Traits>& operator<<(basic_ostream<_CharT, _Traits>& __o, - const rope<_CharT, _Alloc>& __r) { - typedef typename _IsIntegral<_CharT>::_Ret _Char_Is_Integral; - return _S_io_get(__o, __r, _Char_Is_Integral()); -} -#endif /* NO_IOSTREAMS */ - -template <class _CharT, class _Alloc> -_CharT* rope<_CharT,_Alloc>::_S_flatten(_RopeRep* __r, - size_t __start, size_t __len, - _CharT* __buffer) { - _Rope_flatten_char_consumer<_CharT> __c(__buffer); - _S_apply_to_pieces(__c, __r, __start, __start + __len); - return(__buffer + __len); -} - -template <class _CharT, class _Alloc> -size_t rope<_CharT,_Alloc>::find(_CharT __pattern, size_t __start) const { - _Rope_find_char_char_consumer<_CharT> __c(__pattern); - _S_apply_to_pieces(__c, _M_tree_ptr._M_data, __start, size()); - size_type __result_pos = __start + __c._M_count; -#ifndef _STLP_OLD_ROPE_SEMANTICS - if (__result_pos == size()) __result_pos = npos; -#endif - return __result_pos; -} - -template <class _CharT, class _Alloc> -_CharT* -rope<_CharT,_Alloc>::_S_flatten(_Rope_RopeRep<_CharT, _Alloc>* __r, _CharT* __buffer) { - if (0 == __r) return __buffer; - switch(__r->_M_tag) { - case _RopeRep::_S_concat: - { - _RopeConcatenation* __c = __STATIC_CAST(_RopeConcatenation*, __r); - _RopeRep* __left = __c->_M_left; - _RopeRep* __right = __c->_M_right; - _CharT* __rest = _S_flatten(__left, __buffer); - return _S_flatten(__right, __rest); - } - case _RopeRep::_S_leaf: - { - _RopeLeaf* __l = __STATIC_CAST(_RopeLeaf*, __r); - return _STLP_PRIV __ucopy_n(__l->_M_data, __l->_M_size._M_data, __buffer).second; - } - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - // We dont yet do anything with substring nodes. - // This needs to be fixed before ropefiles will work well. - { - _RopeFunction* __f = __STATIC_CAST(_RopeFunction*, __r); - (*(__f->_M_fn))(0, __f->_M_size._M_data, __buffer); - return __buffer + __f->_M_size._M_data; - } - default: - _STLP_ASSERT(false) - /*NOTREACHED*/ - return 0; - } -} - -#ifdef _STLP_DEBUG -// This needs work for _CharT != char -template <class _CharT, class _Alloc> -void rope<_CharT,_Alloc>::_S_dump(_RopeRep* __r, int __indent) { - for (int __i = 0; __i < __indent; ++__i) putchar(' '); - if (0 == __r) { - printf("NULL\n"); return; - } - if (_RopeRep::_S_concat == __r->_M_tag) { - _RopeConcatenation* __c = __STATIC_CAST(_RopeConcatenation*, __r); - _RopeRep* __left = __c->_M_left; - _RopeRep* __right = __c->_M_right; - printf("Concatenation %p (rc = %ld, depth = %d, len = %ld, %s balanced)\n", - __r, __r->_M_ref_count, __r->_M_depth, __r->_M_size._M_data, - __r->_M_is_balanced? "" : "not"); - _S_dump(__left, __indent + 2); - _S_dump(__right, __indent + 2); - return; - } - else { - const char* __kind; - - switch (__r->_M_tag) { - case _RopeRep::_S_leaf: - __kind = "Leaf"; - break; - case _RopeRep::_S_function: - __kind = "Function"; - break; - case _RopeRep::_S_substringfn: - __kind = "Function representing substring"; - break; - default: - __kind = "(corrupted kind field!)"; - } - printf("%s %p (rc = %ld, depth = %d, len = %ld) ", - __kind, __r, __r->_M_ref_count, __r->_M_depth, __r->_M_size._M_data); - if (sizeof(_CharT) == 1) { - const int __max_len = 40; - _Self_destruct_ptr __prefix(_S_substring(__r, 0, __max_len)); - _CharT __buffer[__max_len + 1]; - bool __too_big = __r->_M_size._M_data > __prefix->_M_size._M_data; - - _S_flatten(__prefix, __buffer); - __buffer[__prefix->_M_size._M_data] = _STLP_DEFAULT_CONSTRUCTED(_CharT); - printf("%s%s\n", (char*)__buffer, __too_big? "...\n" : "\n"); - } else { - printf("\n"); - } - } -} -#endif /* _STLP_DEBUG */ - -# define __ROPE_TABLE_BODY = { \ -/* 0 */1, /* 1 */2, /* 2 */3, /* 3 */5, /* 4 */8, /* 5 */13, /* 6 */21, \ -/* 7 */34, /* 8 */55, /* 9 */89, /* 10 */144, /* 11 */233, /* 12 */377, \ -/* 13 */610, /* 14 */987, /* 15 */1597, /* 16 */2584, /* 17 */4181, \ -/* 18 */6765ul, /* 19 */10946ul, /* 20 */17711ul, /* 21 */28657ul, /* 22 */46368ul, \ -/* 23 */75025ul, /* 24 */121393ul, /* 25 */196418ul, /* 26 */317811ul, \ -/* 27 */514229ul, /* 28 */832040ul, /* 29 */1346269ul, /* 30 */2178309ul, \ -/* 31 */3524578ul, /* 32 */5702887ul, /* 33 */9227465ul, /* 34 */14930352ul, \ -/* 35 */24157817ul, /* 36 */39088169ul, /* 37 */63245986ul, /* 38 */102334155ul, \ -/* 39 */165580141ul, /* 40 */267914296ul, /* 41 */433494437ul, \ -/* 42 */701408733ul, /* 43 */1134903170ul, /* 44 */1836311903ul, \ -/* 45 */2971215073ul } - -# if ( _STLP_STATIC_TEMPLATE_DATA > 0 ) -template <class _CharT, class _Alloc> -const unsigned long -rope<_CharT,_Alloc>::_S_min_len[__ROPE_DEPTH_SIZE] __ROPE_TABLE_BODY; -# else -__DECLARE_INSTANCE(const unsigned long, - crope::_S_min_len[__ROPE_DEPTH_SIZE], - __ROPE_TABLE_BODY); -# ifndef _STLP_NO_WCHAR_T -__DECLARE_INSTANCE(const unsigned long, - wrope::_S_min_len[__ROPE_DEPTH_SIZE], - __ROPE_TABLE_BODY); -# endif -# endif -# undef __ROPE_DEPTH_SIZE -# undef __ROPE_MAX_DEPTH -# undef __ROPE_TABLE_BODY - -// These are Fibonacci numbers < 2**32. - -template <class _CharT, class _Alloc> -__RopeRep__* rope<_CharT,_Alloc>::_S_balance(_RopeRep* __r) { - _RopeRep* __forest[_RopeRep::_S_max_rope_depth + 1] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, - 0,0,0,0,0,0}; - _RopeRep* __result = 0; - int __i; - // Invariant: - // The concatenation of forest in descending order is equal to __r. - // __forest[__i]._M_size._M_data >= _S_min_len[__i] - // __forest[__i]._M_depth = __i - // References from forest are included in refcount. - - _STLP_TRY { - _S_add_to_forest(__r, __forest); - for (__i = 0; __i <= _RopeRep::_S_max_rope_depth; ++__i) - if (0 != __forest[__i]) { - _Self_destruct_ptr __old(__result); - __result = _S_concat_rep(__forest[__i], __result); - __forest[__i]->_M_unref_nonnil(); -# ifdef _STLP_USE_EXCEPTIONS - __forest[__i] = 0; -# endif - } - } - _STLP_UNWIND(for(__i = 0; __i <= _RopeRep::_S_max_rope_depth; ++__i) - _S_unref(__forest[__i])) - if (__result->_M_depth > _RopeRep::_S_max_rope_depth) { - __stl_throw_range_error("rope too long"); - } - return(__result); -} - - -template <class _CharT, class _Alloc> -void -rope<_CharT,_Alloc>::_S_add_to_forest(_RopeRep* __r, _RopeRep** __forest) -{ - if (__r -> _M_is_balanced) { - _S_add_leaf_to_forest(__r, __forest); - return; - } - _STLP_ASSERT(__r->_M_tag == _RopeRep::_S_concat) - { - _RopeConcatenation* __c = (_RopeConcatenation*)__r; - - _S_add_to_forest(__c->_M_left, __forest); - _S_add_to_forest(__c->_M_right, __forest); - } -} - - -template <class _CharT, class _Alloc> -void -rope<_CharT,_Alloc>::_S_add_leaf_to_forest(_RopeRep* __r, _RopeRep** __forest) -{ - _RopeRep* __insertee; // included in refcount - _RopeRep* __too_tiny = 0; // included in refcount - int __i; // forest[0..__i-1] is empty - size_t __s = __r->_M_size._M_data; - - for (__i = 0; __s >= _S_min_len[__i+1]/* not this bucket */; ++__i) { - if (0 != __forest[__i]) { - _Self_destruct_ptr __old(__too_tiny); - __too_tiny = _S_concat_and_set_balanced(__forest[__i], __too_tiny); - __forest[__i]->_M_unref_nonnil(); - __forest[__i] = 0; - } - } - { - _Self_destruct_ptr __old(__too_tiny); - __insertee = _S_concat_and_set_balanced(__too_tiny, __r); - } - // Too_tiny dead, and no longer included in refcount. - // Insertee is live and included. - _STLP_ASSERT(_S_is_almost_balanced(__insertee)) - _STLP_ASSERT(__insertee->_M_depth <= __r->_M_depth + 1) - for (;; ++__i) { - if (0 != __forest[__i]) { - _Self_destruct_ptr __old(__insertee); - __insertee = _S_concat_and_set_balanced(__forest[__i], __insertee); - __forest[__i]->_M_unref_nonnil(); - __forest[__i] = 0; - _STLP_ASSERT(_S_is_almost_balanced(__insertee)) - } - _STLP_ASSERT(_S_min_len[__i] <= __insertee->_M_size._M_data) - _STLP_ASSERT(__forest[__i] == 0) - if (__i == _RopeRep::_S_max_rope_depth || - __insertee->_M_size._M_data < _S_min_len[__i+1]) { - __forest[__i] = __insertee; - // refcount is OK since __insertee is now dead. - return; - } - } -} - -template <class _CharT, class _Alloc> -_CharT -rope<_CharT,_Alloc>::_S_fetch(_RopeRep* __r, size_type __i) -{ - _CharT* __cstr = __r->_M_c_string; - - _STLP_ASSERT(__i < __r->_M_size._M_data) - if (0 != __cstr) return __cstr[__i]; - for(;;) { - switch(__r->_M_tag) { - case _RopeRep::_S_concat: - { - _RopeConcatenation* __c = (_RopeConcatenation*)__r; - _RopeRep* __left = __c->_M_left; - size_t __left_len = __left->_M_size._M_data; - - if (__i >= __left_len) { - __i -= __left_len; - __r = __c->_M_right; - } else { - __r = __left; - } - } - break; - case _RopeRep::_S_leaf: - { - _RopeLeaf* __l = (_RopeLeaf*)__r; - return __l->_M_data[__i]; - } - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - { - _RopeFunction* __f = (_RopeFunction*)__r; - _CharT __result; - - (*(__f->_M_fn))(__i, 1, &__result); - return __result; - } - } - } -#if defined(_STLP_NEED_UNREACHABLE_RETURN) - return 0; -#endif -} - -// Return a uniquely referenced character slot for the given -// position, or 0 if that's not possible. -template <class _CharT, class _Alloc> -_CharT* -rope<_CharT,_Alloc>::_S_fetch_ptr(_RopeRep* __r, size_type __i) -{ - _RopeRep* __clrstack[_RopeRep::_S_max_rope_depth]; - size_t __csptr = 0; - - for(;;) { - // if (__r->_M_ref_count > 1) return 0; - if ( __r->_M_incr() > 2 ) { - __r->_M_decr(); - return 0; - } - switch(__r->_M_tag) { - case _RopeRep::_S_concat: - { - _RopeConcatenation* __c = (_RopeConcatenation*)__r; - _RopeRep* __left = __c->_M_left; - size_t __left_len = __left->_M_size._M_data; - - if (__c->_M_c_string != 0) __clrstack[__csptr++] = __c; - if (__i >= __left_len) { - __i -= __left_len; - __r = __c->_M_right; - } else { - __r = __left; - } - } - break; - case _RopeRep::_S_leaf: - { - _RopeLeaf* __l = (_RopeLeaf*)__r; - if (__l->_M_c_string != __l->_M_data && __l->_M_c_string != 0) - __clrstack[__csptr++] = __l; - while (__csptr > 0) { - -- __csptr; - _RopeRep* __d = __clrstack[__csptr]; - __d->_M_free_c_string(); - __d->_M_c_string = 0; - } - return __l->_M_data + __i; - } - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - return 0; - } - } -#if defined(_STLP_NEED_UNREACHABLE_RETURN) - return 0; -#endif - -} - -// The following could be implemented trivially using -// lexicographical_compare_3way. -// We do a little more work to avoid dealing with rope iterators for -// flat strings. -template <class _CharT, class _Alloc> -int -rope<_CharT,_Alloc>::_S_compare (const _RopeRep* __left, - const _RopeRep* __right) { - size_t __left_len; - size_t __right_len; - - if (0 == __right) return 0 != __left; - if (0 == __left) return -1; - __left_len = __left->_M_size._M_data; - __right_len = __right->_M_size._M_data; - if (_RopeRep::_S_leaf == __left->_M_tag) { - const _RopeLeaf* __l = __STATIC_CAST(const _RopeLeaf*, __left); - if (_RopeRep::_S_leaf == __right->_M_tag) { - const _RopeLeaf* __r = __STATIC_CAST(const _RopeLeaf*, __right); - return _STLP_PRIV __lexicographical_compare_3way(__l->_M_data, __l->_M_data + __left_len, - __r->_M_data, __r->_M_data + __right_len); - } - else { - const_iterator __rstart(__right, 0); - const_iterator __rend(__right, __right_len); - return _STLP_PRIV __lexicographical_compare_3way(__l->_M_data, __l->_M_data + __left_len, - __rstart, __rend); - } - } - else { - const_iterator __lstart(__left, 0); - const_iterator __lend(__left, __left_len); - if (_RopeRep::_S_leaf == __right->_M_tag) { - const _RopeLeaf* __r = __STATIC_CAST(const _RopeLeaf*, __right); - return _STLP_PRIV __lexicographical_compare_3way(__lstart, __lend, - __r->_M_data, __r->_M_data + __right_len); - } - else { - const_iterator __rstart(__right, 0); - const_iterator __rend(__right, __right_len); - return _STLP_PRIV __lexicographical_compare_3way(__lstart, __lend, __rstart, __rend); - } - } -} - -// Assignment to reference proxies. -template <class _CharT, class _Alloc> -_Rope_char_ref_proxy<_CharT, _Alloc>& -_Rope_char_ref_proxy<_CharT, _Alloc>::operator= (_CharT __c) { - _RopeRep* __old = _M_root->_M_tree_ptr._M_data; - // First check for the case in which everything is uniquely - // referenced. In that case we can do this destructively. - _CharT* __ptr = _My_rope::_S_fetch_ptr(__old, _M_pos); - if (0 != __ptr) { - *__ptr = __c; - return *this; - } - _Self_destruct_ptr __left( - _My_rope::_S_substring(__old, 0, _M_pos)); - _Self_destruct_ptr __right( - _My_rope::_S_substring(__old, _M_pos+1, __old->_M_size._M_data)); - _Self_destruct_ptr __result_left( - _My_rope::_S_destr_concat_char_iter(__left, &__c, 1)); - - // _STLP_ASSERT(__left == __result_left || 1 == __result_left->_M_ref_count) - _RopeRep* __result = - _My_rope::_S_concat_rep(__result_left, __right); - // _STLP_ASSERT(1 <= __result->_M_ref_count) - _RopeRep::_S_unref(__old); - _M_root->_M_tree_ptr._M_data = __result; - return *this; -} - -template <class _CharT, class _Alloc> -_Rope_char_ptr_proxy<_CharT, _Alloc> -_Rope_char_ref_proxy<_CharT, _Alloc>::operator& () const { - return _Rope_char_ptr_proxy<_CharT, _Alloc>(*this); -} - -# if ( _STLP_STATIC_TEMPLATE_DATA > 0 ) -template<class _CharT, class _Alloc> -_CharT rope<_CharT,_Alloc>::_S_empty_c_str[1] = { _CharT() }; -# else -__DECLARE_INSTANCE(char, crope::_S_empty_c_str[1], ={0}); -# ifdef _STLP_HAS_WCHAR_T -__DECLARE_INSTANCE(wchar_t, wrope::_S_empty_c_str[1], ={0}); -# endif /* _STLP_HAS_WCHAR_T */ -# endif /* _STLP_STATIC_TEMPLATE_DATA */ -// # endif - -#if !defined (_STLP_STATIC_CONST_INIT_BUG) -# if !defined (__GNUC__) || (__GNUC__ != 2) || (__GNUC_MINOR__ != 96) -template <class _CharT, class _Alloc> -const size_t rope<_CharT, _Alloc>::npos; -# endif -#endif - -template<class _CharT, class _Alloc> -const _CharT* rope<_CharT,_Alloc>::c_str() const { - if (0 == _M_tree_ptr._M_data) { - // Possibly redundant, but probably fast. - _S_empty_c_str[0] = _STLP_DEFAULT_CONSTRUCTED(_CharT); - return _S_empty_c_str; - } - _CharT* __old_c_string = _M_tree_ptr._M_data->_M_c_string; - if (0 != __old_c_string) return __old_c_string; - size_t __s = size(); - _CharT* __result = _STLP_CREATE_ALLOCATOR(allocator_type,(const allocator_type&)_M_tree_ptr, _CharT).allocate(__s + 1); - _S_flatten(_M_tree_ptr._M_data, __result); - _S_construct_null(__result + __s); - __old_c_string = __STATIC_CAST(_CharT*, _Atomic_swap_ptr(__REINTERPRET_CAST(void* _STLP_VOLATILE*, &(_M_tree_ptr._M_data->_M_c_string)), - __result)); - if (0 != __old_c_string) { - // It must have been added in the interim. Hence it had to have been - // separately allocated. Deallocate the old copy, since we just - // replaced it. - _STLP_STD::_Destroy_Range(__old_c_string, __old_c_string + __s + 1); - _STLP_CREATE_ALLOCATOR(allocator_type,(const allocator_type&)_M_tree_ptr, _CharT).deallocate(__old_c_string, __s + 1); - } - return __result; -} - -template<class _CharT, class _Alloc> -const _CharT* rope<_CharT,_Alloc>::replace_with_c_str() { - if (0 == _M_tree_ptr._M_data) { - _S_empty_c_str[0] = _STLP_DEFAULT_CONSTRUCTED(_CharT); - return _S_empty_c_str; - } - _CharT* __old_c_string = _M_tree_ptr._M_data->_M_c_string; - if (_RopeRep::_S_leaf == _M_tree_ptr._M_data->_M_tag && 0 != __old_c_string) { - return __old_c_string; - } - size_t __s = size(); - _CharT* __result = _M_tree_ptr.allocate(_S_rounded_up_size(__s)); - _S_flatten(_M_tree_ptr._M_data, __result); - _S_construct_null(__result + __s); - _M_tree_ptr._M_data->_M_unref_nonnil(); - _M_tree_ptr._M_data = _S_new_RopeLeaf(__result, __s, _M_tree_ptr); - return __result; -} - -// Algorithm specializations. More should be added. - -#if (!defined (_STLP_MSVC) || (_STLP_MSVC >= 1310)) && \ - (!defined (__DMC__) || defined (__PUT_STATIC_DATA_MEMBERS_HERE)) -// I couldn't get this to work with VC++ -template<class _CharT,class _Alloc> -void _Rope_rotate(_Rope_iterator<_CharT,_Alloc> __first, - _Rope_iterator<_CharT,_Alloc> __middle, - _Rope_iterator<_CharT,_Alloc> __last) { - _STLP_ASSERT(__first.container() == __middle.container() && - __middle.container() == __last.container()) - rope<_CharT,_Alloc>& __r(__first.container()); - rope<_CharT,_Alloc> __prefix = __r.substr(0, __first.index()); - rope<_CharT,_Alloc> __suffix = - __r.substr(__last.index(), __r.size() - __last.index()); - rope<_CharT,_Alloc> __part1 = - __r.substr(__middle.index(), __last.index() - __middle.index()); - rope<_CharT,_Alloc> __part2 = - __r.substr(__first.index(), __middle.index() - __first.index()); - __r = __prefix; - __r += __part1; - __r += __part2; - __r += __suffix; -} - - -# if 0 -// Probably not useful for several reasons: -// - for SGIs 7.1 compiler and probably some others, -// this forces lots of rope<wchar_t, ...> instantiations, creating a -// code bloat and compile time problem. (Fixed in 7.2.) -// - wchar_t is 4 bytes wide on most UNIX platforms, making it unattractive -// for unicode strings. Unsigned short may be a better character -// type. -inline void rotate( - _Rope_iterator<wchar_t,_STLP_DEFAULT_ALLOCATOR(char) > __first, - _Rope_iterator<wchar_t,_STLP_DEFAULT_ALLOCATOR(char) > __middle, - _Rope_iterator<wchar_t,_STLP_DEFAULT_ALLOCATOR(char) > __last) { - _Rope_rotate(__first, __middle, __last); -} -# endif -#endif /* _STLP_MSVC */ - -# undef __RopeLeaf__ -# undef __RopeRep__ -# undef __RopeLeaf -# undef __RopeRep -# undef size_type - -_STLP_END_NAMESPACE - -# endif /* ROPEIMPL_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_rope.h b/WebKit/android/stlport/stl/_rope.h deleted file mode 100644 index 82fc84e..0000000 --- a/WebKit/android/stlport/stl/_rope.h +++ /dev/null @@ -1,2374 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -// rope<_CharT,_Alloc> is a sequence of _CharT. -// Ropes appear to be mutable, but update operations -// really copy enough of the data structure to leave the original -// valid. Thus ropes can be logically copied by just copying -// a pointer value. - -#ifndef _STLP_INTERNAL_ROPE_H -#define _STLP_INTERNAL_ROPE_H - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_IOSFWD -# include <iosfwd> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_ALGO_H -# include <stl/_algo.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#ifndef _STLP_INTERNAL_NUMERIC_H -# include <stl/_numeric.h> -#endif - -#ifndef _STLP_INTERNAL_HASH_FUN_H -# include <stl/_hash_fun.h> -#endif - -#ifndef _STLP_CHAR_TRAITS_H -# include <stl/char_traits.h> -#endif - -#ifndef _STLP_INTERNAL_THREADS_H -# include <stl/_threads.h> -#endif - -#ifdef _STLP_SGI_THREADS -# include <mutex.h> -#endif - -#ifndef _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE -# define _STLP_CREATE_ALLOCATOR(__atype,__a, _Tp) (_Alloc_traits<_Tp,__atype>::create_allocator(__a)) -#elif defined(__MRC__)||defined(__SC__) -# define _STLP_CREATE_ALLOCATOR(__atype,__a, _Tp) __stl_alloc_create<_Tp,__atype>(__a,(_Tp*)0) -#else -# define _STLP_CREATE_ALLOCATOR(__atype,__a, _Tp) __stl_alloc_create(__a,(_Tp*)0) -#endif - -_STLP_BEGIN_NAMESPACE - -// First a lot of forward declarations. The standard seems to require -// much stricter "declaration before use" than many of the implementations -// that preceded it. -template<class _CharT, _STLP_DEFAULT_ALLOCATOR_SELECT(_CharT) > class rope; -template<class _CharT, class _Alloc> struct _Rope_RopeConcatenation; -template<class _CharT, class _Alloc> struct _Rope_RopeRep; -template<class _CharT, class _Alloc> struct _Rope_RopeLeaf; -template<class _CharT, class _Alloc> struct _Rope_RopeFunction; -template<class _CharT, class _Alloc> struct _Rope_RopeSubstring; -template<class _CharT, class _Alloc> class _Rope_iterator; -template<class _CharT, class _Alloc> class _Rope_const_iterator; -template<class _CharT, class _Alloc> class _Rope_char_ref_proxy; -template<class _CharT, class _Alloc> class _Rope_char_ptr_proxy; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Some helpers, so we can use the power algorithm on ropes. -// See below for why this isn't local to the implementation. - -// This uses a nonstandard refcount convention. -// The result has refcount 0. -template<class _CharT, class _Alloc> -struct _Rope_Concat_fn - : public binary_function<rope<_CharT,_Alloc>, rope<_CharT,_Alloc>, - rope<_CharT,_Alloc> > { - rope<_CharT,_Alloc> operator() (const rope<_CharT,_Alloc>& __x, - const rope<_CharT,_Alloc>& __y) { - return __x + __y; - } -}; - -template <class _CharT, class _Alloc> -inline -rope<_CharT,_Alloc> -__identity_element(_Rope_Concat_fn<_CharT, _Alloc>) -{ return rope<_CharT,_Alloc>(); } - -_STLP_MOVE_TO_STD_NAMESPACE - -// Store an eos -template <class _CharT> -inline void _S_construct_null_aux(_CharT *__p, const __true_type&) -{ *__p = 0; } - -template <class _CharT> -inline void _S_construct_null_aux(_CharT *__p, const __false_type&) -{ _STLP_STD::_Construct(__p); } - -template <class _CharT> -inline void _S_construct_null(_CharT *__p) { - typedef typename _IsIntegral<_CharT>::_Ret _Char_Is_Integral; - _S_construct_null_aux(__p, _Char_Is_Integral()); -} - -// char_producers are logically functions that generate a section of -// a string. These can be converted to ropes. The resulting rope -// invokes the char_producer on demand. This allows, for example, -// files to be viewed as ropes without reading the entire file. -template <class _CharT> -class char_producer { -public: - virtual ~char_producer() {} - virtual void operator()(size_t __start_pos, size_t __len, - _CharT* __buffer) = 0; - // Buffer should really be an arbitrary output iterator. - // That way we could flatten directly into an ostream, etc. - // This is thoroughly impossible, since iterator types don't - // have runtime descriptions. -}; - -// Sequence buffers: -// -// Sequence must provide an append operation that appends an -// array to the sequence. Sequence buffers are useful only if -// appending an entire array is cheaper than appending element by element. -// This is true for many string representations. -// This should perhaps inherit from ostream<sequence::value_type> -// and be implemented correspondingly, so that they can be used -// for formatted. For the sake of portability, we don't do this yet. -// -// For now, sequence buffers behave as output iterators. But they also -// behave a little like basic_ostringstream<sequence::value_type> and a -// little like containers. - -template<class _Sequence -# if !(defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) || \ - defined ( _STLP_NO_DEFAULT_NON_TYPE_PARAM )) - , size_t _Buf_sz = 100 -# if defined(__sgi) && !defined(__GNUC__) -# define __TYPEDEF_WORKAROUND - ,class _V = typename _Sequence::value_type -# endif /* __sgi */ -# endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */ - > -// The 3rd parameter works around a common compiler bug. -class sequence_buffer : public iterator <output_iterator_tag, void, void, void, void> { -public: -# ifndef __TYPEDEF_WORKAROUND - typedef typename _Sequence::value_type value_type; - typedef sequence_buffer<_Sequence -# if !(defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) || \ - defined ( _STLP_NO_DEFAULT_NON_TYPE_PARAM )) - , _Buf_sz - > _Self; -# else /* _STLP_NON_TYPE_TMPL_PARAM_BUG */ - > _Self; - enum { _Buf_sz = 100}; -# endif /* _STLP_NON_TYPE_TMPL_PARAM_BUG */ - // # endif -# else /* __TYPEDEF_WORKAROUND */ - typedef _V value_type; - typedef sequence_buffer<_Sequence, _Buf_sz, _V> _Self; -# endif /* __TYPEDEF_WORKAROUND */ -protected: - _Sequence* _M_prefix; - value_type _M_buffer[_Buf_sz]; - size_t _M_buf_count; -public: - void flush() { - _M_prefix->append(_M_buffer, _M_buffer + _M_buf_count); - _M_buf_count = 0; - } - ~sequence_buffer() { flush(); } - sequence_buffer() : _M_prefix(0), _M_buf_count(0) {} - sequence_buffer(const _Self& __x) { - _M_prefix = __x._M_prefix; - _M_buf_count = __x._M_buf_count; - copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer); - } - sequence_buffer(_Self& __x) { - __x.flush(); - _M_prefix = __x._M_prefix; - _M_buf_count = 0; - } - sequence_buffer(_Sequence& __s) : _M_prefix(&__s), _M_buf_count(0) {} - _Self& operator= (_Self& __x) { - __x.flush(); - _M_prefix = __x._M_prefix; - _M_buf_count = 0; - return *this; - } - _Self& operator= (const _Self& __x) { - _M_prefix = __x._M_prefix; - _M_buf_count = __x._M_buf_count; - copy(__x._M_buffer, __x._M_buffer + __x._M_buf_count, _M_buffer); - return *this; - } - void push_back(value_type __x) { - if (_M_buf_count < _Buf_sz) { - _M_buffer[_M_buf_count] = __x; - ++_M_buf_count; - } else { - flush(); - _M_buffer[0] = __x; - _M_buf_count = 1; - } - } - void append(const value_type *__s, size_t __len) { - if (__len + _M_buf_count <= _Buf_sz) { - size_t __i = _M_buf_count; - size_t __j = 0; - for (; __j < __len; __i++, __j++) { - _M_buffer[__i] = __s[__j]; - } - _M_buf_count += __len; - } else if (0 == _M_buf_count) { - _M_prefix->append(__s, __s + __len); - } else { - flush(); - append(__s, __len); - } - } - _Self& write(const value_type *__s, size_t __len) { - append(__s, __len); - return *this; - } - _Self& put(value_type __x) { - push_back(__x); - return *this; - } - _Self& operator=(const value_type& __rhs) { - push_back(__rhs); - return *this; - } - _Self& operator*() { return *this; } - _Self& operator++() { return *this; } - _Self& operator++(int) { return *this; } -}; - -// The following should be treated as private, at least for now. -template<class _CharT> -class _Rope_char_consumer { -#if !defined (_STLP_MEMBER_TEMPLATES) -public: - //Without member templates we have to use run-time parameterization. - // The symmetry with char_producer is accidental and temporary. - virtual ~_Rope_char_consumer() {} - virtual bool operator()(const _CharT* __buffer, size_t __len) = 0; -#endif -}; - -// -// What follows should really be local to rope. Unfortunately, -// that doesn't work, since it makes it impossible to define generic -// equality on rope iterators. According to the draft standard, the -// template parameters for such an equality operator cannot be inferred -// from the occurence of a member class as a parameter. -// (SGI compilers in fact allow this, but the __result wouldn't be -// portable.) -// Similarly, some of the static member functions are member functions -// only to avoid polluting the global namespace, and to circumvent -// restrictions on type inference for template functions. -// - -// -// The internal data structure for representing a rope. This is -// private to the implementation. A rope is really just a pointer -// to one of these. -// -// A few basic functions for manipulating this data structure -// are members of _RopeRep. Most of the more complex algorithms -// are implemented as rope members. -// -// Some of the static member functions of _RopeRep have identically -// named functions in rope that simply invoke the _RopeRep versions. -// - -template<class _CharT, class _Alloc> -struct _Rope_RopeRep - : public _Refcount_Base -{ - typedef _Rope_RopeRep<_CharT, _Alloc> _Self; -public: - // - // GAB: 11/09/05 - // - // "__ROPE_DEPTH_SIZE" is set to one more then the "__ROPE_MAX_DEPTH". - // This was originally just an addition of "__ROPE_MAX_DEPTH + 1" - // but this addition causes the sunpro compiler to complain about - // multiple declarations during the initialization of "_S_min_len". - // Changed to be a fixed value and the sunpro compiler appears to - // be happy??? - // -# define __ROPE_MAX_DEPTH 45 -# define __ROPE_DEPTH_SIZE 46 // __ROPE_MAX_DEPTH + 1 - enum { _S_max_rope_depth = __ROPE_MAX_DEPTH }; - enum _Tag {_S_leaf, _S_concat, _S_substringfn, _S_function}; - // Apparently needed by VC++ - // The data fields of leaves are allocated with some - // extra space, to accomodate future growth and for basic - // character types, to hold a trailing eos character. - enum { _S_alloc_granularity = 8 }; - - _Tag _M_tag:8; - bool _M_is_balanced:8; - - _STLP_FORCE_ALLOCATORS(_CharT, _Alloc) - typedef typename _Alloc_traits<_CharT,_Alloc>::allocator_type allocator_type; - - allocator_type get_allocator() const { return allocator_type(_M_size); } - - unsigned char _M_depth; - _CharT* _STLP_VOLATILE _M_c_string; - _STLP_PRIV _STLP_alloc_proxy<size_t, _CharT, allocator_type> _M_size; - -# ifdef _STLP_NO_ARROW_OPERATOR - _Rope_RopeRep() : _Refcount_Base(1), _M_size(allocator_type(), 0) {} -# endif - - /* Flattened version of string, if needed. */ - /* typically 0. */ - /* If it's not 0, then the memory is owned */ - /* by this node. */ - /* In the case of a leaf, this may point to */ - /* the same memory as the data field. */ - _Rope_RopeRep(_Tag __t, unsigned char __d, bool __b, size_t _p_size, - allocator_type __a) : - _Refcount_Base(1), - _M_tag(__t), _M_is_balanced(__b), _M_depth(__d), _M_c_string(0), _M_size(__a, _p_size) - { } - - typedef typename _AreSameUnCVTypes<_CharT, char>::_Ret _IsChar; -# ifdef _STLP_HAS_WCHAR_T - typedef typename _AreSameUnCVTypes<_CharT, wchar_t>::_Ret _IsWCharT; -# else - typedef __false_type _IsWCharT; -# endif - - typedef typename _Lor2<_IsChar, _IsWCharT>::_Ret _IsBasicCharType; - -#if 0 - /* Please tell why this code is necessary if you uncomment it. - * Problem with it is that rope implementation expect that _S_rounded_up_size(n) - * returns a size > n in order to store the terminating null charater. When - * instanciation type is not a char or wchar_t this is not guaranty resulting in - * memory overrun. - */ - static size_t _S_rounded_up_size_aux(size_t __n, __true_type const& /*_IsBasicCharType*/) { - // Allow slop for in-place expansion. - return (__n + _S_alloc_granularity) & ~(_S_alloc_granularity - 1); - } - - static size_t _S_rounded_up_size_aux(size_t __n, __false_type const& /*_IsBasicCharType*/) { - // Allow slop for in-place expansion. - return (__n + _S_alloc_granularity - 1) & ~(_S_alloc_granularity - 1); - } -#endif - // fbp : moved from RopeLeaf - static size_t _S_rounded_up_size(size_t __n) - //{ return _S_rounded_up_size_aux(__n, _IsBasicCharType()); } - { return (__n + _S_alloc_granularity) & ~(_S_alloc_granularity - 1); } - - static void _S_free_string( _CharT* __s, size_t __len, - allocator_type __a) { - _STLP_STD::_Destroy_Range(__s, __s + __len); - // This has to be a static member, so this gets a bit messy -# ifndef _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE - __a.deallocate(__s, _S_rounded_up_size(__len)); //*ty 03/24/2001 - restored not to use __stl_alloc_rebind() since it is not defined under _STLP_MEMBER_TEMPLATE_CLASSES -# else - __stl_alloc_rebind (__a, (_CharT*)0).deallocate(__s, _S_rounded_up_size(__len)); -# endif - } - - // Deallocate data section of a leaf. - // This shouldn't be a member function. - // But its hard to do anything else at the - // moment, because it's templatized w.r.t. - // an allocator. - // Does nothing if __GC is defined. - void _M_free_c_string(); - void _M_free_tree(); - // Deallocate t. Assumes t is not 0. - void _M_unref_nonnil() { - if (_M_decr() == 0) _M_free_tree(); - } - void _M_ref_nonnil() { - _M_incr(); - } - static void _S_unref(_Self* __t) { - if (0 != __t) { - __t->_M_unref_nonnil(); - } - } - static void _S_ref(_Self* __t) { - if (0 != __t) __t->_M_incr(); - } - //static void _S_free_if_unref(_Self* __t) { - // if (0 != __t && 0 == __t->_M_ref_count) __t->_M_free_tree(); - //} -}; - -template<class _CharT, class _Alloc> -struct _Rope_RopeLeaf : public _Rope_RopeRep<_CharT,_Alloc> { -public: - _CharT* _M_data; /* Not necessarily 0 terminated. */ - /* The allocated size is */ - /* _S_rounded_up_size(size), except */ - /* in the GC case, in which it */ - /* doesn't matter. */ -private: - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - typedef typename _RopeRep::_IsBasicCharType _IsBasicCharType; - void _M_init(__true_type const& /*_IsBasicCharType*/) { - this->_M_c_string = _M_data; - } - void _M_init(__false_type const& /*_IsBasicCharType*/) {} - -public: - _STLP_FORCE_ALLOCATORS(_CharT, _Alloc) - typedef typename _RopeRep::allocator_type allocator_type; - - _Rope_RopeLeaf( _CharT* __d, size_t _p_size, allocator_type __a) - : _Rope_RopeRep<_CharT,_Alloc>(_RopeRep::_S_leaf, 0, true, _p_size, __a), - _M_data(__d) { - _STLP_ASSERT(_p_size > 0) - _M_init(_IsBasicCharType()); - } - -# ifdef _STLP_NO_ARROW_OPERATOR - _Rope_RopeLeaf() {} - _Rope_RopeLeaf(const _Rope_RopeLeaf<_CharT, _Alloc>& ) {} -# endif - -// The constructor assumes that d has been allocated with - // the proper allocator and the properly padded size. - // In contrast, the destructor deallocates the data: - ~_Rope_RopeLeaf() { - if (_M_data != this->_M_c_string) { - this->_M_free_c_string(); - } - _RopeRep::_S_free_string(_M_data, this->_M_size._M_data, this->get_allocator()); - } -}; - -template<class _CharT, class _Alloc> -struct _Rope_RopeConcatenation : public _Rope_RopeRep<_CharT, _Alloc> { -private: - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - -public: - _RopeRep* _M_left; - _RopeRep* _M_right; - _STLP_FORCE_ALLOCATORS(_CharT, _Alloc) - 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, - __l->_M_size._M_data + __r->_M_size._M_data, __a), _M_left(__l), _M_right(__r) - {} -# ifdef _STLP_NO_ARROW_OPERATOR - _Rope_RopeConcatenation() {} - _Rope_RopeConcatenation(const _Rope_RopeConcatenation<_CharT, _Alloc>&) {} -# endif - - ~_Rope_RopeConcatenation() { - this->_M_free_c_string(); - _M_left->_M_unref_nonnil(); - _M_right->_M_unref_nonnil(); - } -}; - -template <class _CharT, class _Alloc> -struct _Rope_RopeFunction : public _Rope_RopeRep<_CharT, _Alloc> { -private: - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; -public: - char_producer<_CharT>* _M_fn; - /* - * Char_producer is owned by the - * rope and should be explicitly - * deleted when the rope becomes - * inaccessible. - */ - bool _M_delete_when_done; - _STLP_FORCE_ALLOCATORS(_CharT, _Alloc) - typedef typename _Rope_RopeRep<_CharT,_Alloc>::allocator_type allocator_type; -# ifdef _STLP_NO_ARROW_OPERATOR - _Rope_RopeFunction() {} - _Rope_RopeFunction(const _Rope_RopeFunction<_CharT, _Alloc>& ) {} -# endif - - _Rope_RopeFunction(char_producer<_CharT>* __f, size_t _p_size, - bool __d, allocator_type __a) - : _Rope_RopeRep<_CharT,_Alloc>(_RopeRep::_S_function, 0, true, _p_size, __a), _M_fn(__f) - , _M_delete_when_done(__d) - { _STLP_ASSERT(_p_size > 0) } - - ~_Rope_RopeFunction() { - this->_M_free_c_string(); - if (_M_delete_when_done) { - delete _M_fn; - } - } -}; - -/* - * Substring results are usually represented using just - * concatenation nodes. But in the case of very long flat ropes - * or ropes with a functional representation that isn't practical. - * In that case, we represent the __result as a special case of - * RopeFunction, whose char_producer points back to the rope itself. - * In all cases except repeated substring operations and - * deallocation, we treat the __result as a RopeFunction. - */ -template<class _CharT, class _Alloc> -struct _Rope_RopeSubstring : public char_producer<_CharT>, public _Rope_RopeFunction<_CharT,_Alloc> { -public: - // XXX this whole class should be rewritten. - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - _RopeRep *_M_base; // not 0 - size_t _M_start; - /* virtual */ void operator()(size_t __start_pos, size_t __req_len, - _CharT* __buffer) { - typedef _Rope_RopeFunction<_CharT,_Alloc> _RopeFunction; - typedef _Rope_RopeLeaf<_CharT,_Alloc> _RopeLeaf; - switch (_M_base->_M_tag) { - case _RopeRep::_S_function: - case _RopeRep::_S_substringfn: - { - char_producer<_CharT>* __fn = - __STATIC_CAST(_RopeFunction*, _M_base)->_M_fn; - _STLP_ASSERT(__start_pos + __req_len <= this->_M_size._M_data) - _STLP_ASSERT(_M_start + this->_M_size._M_data <= _M_base->_M_size._M_data) - (*__fn)(__start_pos + _M_start, __req_len, __buffer); - } - break; - case _RopeRep::_S_leaf: - { - _CharT* __s = - __STATIC_CAST(_RopeLeaf*, _M_base)->_M_data; - _STLP_PRIV __ucopy_n(__s + __start_pos + _M_start, __req_len, __buffer); - } - break; - default: - _STLP_ASSERT(false) - ; - } - } - - _STLP_FORCE_ALLOCATORS(_CharT, _Alloc) - typedef typename _RopeRep::allocator_type allocator_type; - - _Rope_RopeSubstring(_RopeRep* __b, size_t __s, size_t __l, allocator_type __a) - : _Rope_RopeFunction<_CharT,_Alloc>(this, __l, false, __a), - _M_base(__b), _M_start(__s) { - _STLP_ASSERT(__l > 0) - _STLP_ASSERT(__s + __l <= __b->_M_size._M_data) - _M_base->_M_ref_nonnil(); - this->_M_tag = _RopeRep::_S_substringfn; - } - virtual ~_Rope_RopeSubstring() - { _M_base->_M_unref_nonnil(); } -}; - -/* - * Self-destructing pointers to Rope_rep. - * These are not conventional smart pointers. Their - * only purpose in life is to ensure that unref is called - * on the pointer either at normal exit or if an exception - * is raised. It is the caller's responsibility to - * adjust reference counts when these pointers are initialized - * or assigned to. (This convention significantly reduces - * the number of potentially expensive reference count - * updates.) - */ -template<class _CharT, class _Alloc> -struct _Rope_self_destruct_ptr { - _Rope_RopeRep<_CharT,_Alloc>* _M_ptr; - ~_Rope_self_destruct_ptr() - { _Rope_RopeRep<_CharT,_Alloc>::_S_unref(_M_ptr); } -# ifdef _STLP_USE_EXCEPTIONS - _Rope_self_destruct_ptr() : _M_ptr(0) {} -# else - _Rope_self_destruct_ptr() {} -# endif - _Rope_self_destruct_ptr(_Rope_RopeRep<_CharT,_Alloc>* __p) : _M_ptr(__p) {} - _Rope_RopeRep<_CharT,_Alloc>& operator*() { return *_M_ptr; } - _Rope_RopeRep<_CharT,_Alloc>* operator->() { return _M_ptr; } - operator _Rope_RopeRep<_CharT,_Alloc>*() { return _M_ptr; } - _Rope_self_destruct_ptr<_CharT, _Alloc>& - operator= (_Rope_RopeRep<_CharT,_Alloc>* __x) - { _M_ptr = __x; return *this; } -}; - -/* - * Dereferencing a nonconst iterator has to return something - * that behaves almost like a reference. It's not possible to - * return an actual reference since assignment requires extra - * work. And we would get into the same problems as with the - * CD2 version of basic_string. - */ -template<class _CharT, class _Alloc> -class _Rope_char_ref_proxy { - typedef _Rope_char_ref_proxy<_CharT, _Alloc> _Self; - friend class rope<_CharT,_Alloc>; - friend class _Rope_iterator<_CharT,_Alloc>; - friend class _Rope_char_ptr_proxy<_CharT,_Alloc>; - typedef _Rope_self_destruct_ptr<_CharT,_Alloc> _Self_destruct_ptr; - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - typedef rope<_CharT,_Alloc> _My_rope; - size_t _M_pos; - _CharT _M_current; - bool _M_current_valid; - _My_rope* _M_root; // The whole rope. -public: - _Rope_char_ref_proxy(_My_rope* __r, size_t __p) : - _M_pos(__p), _M_current_valid(false), _M_root(__r) {} - _Rope_char_ref_proxy(const _Self& __x) : - _M_pos(__x._M_pos), _M_current_valid(false), _M_root(__x._M_root) {} - // Don't preserve cache if the reference can outlive the - // expression. We claim that's not possible without calling - // a copy constructor or generating reference to a proxy - // reference. We declare the latter to have undefined semantics. - _Rope_char_ref_proxy(_My_rope* __r, size_t __p, _CharT __c) - : _M_pos(__p), _M_current(__c), _M_current_valid(true), _M_root(__r) {} - inline operator _CharT () const; - _Self& operator= (_CharT __c); - _Rope_char_ptr_proxy<_CharT, _Alloc> operator& () const; - _Self& operator= (const _Self& __c) { - return operator=((_CharT)__c); - } -}; - -#ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER -template<class _CharT, class __Alloc> -inline void swap(_Rope_char_ref_proxy <_CharT, __Alloc > __a, - _Rope_char_ref_proxy <_CharT, __Alloc > __b) { - _CharT __tmp = __a; - __a = __b; - __b = __tmp; -} -#else -// There is no really acceptable way to handle this. The default -// definition of swap doesn't work for proxy references. -// It can't really be made to work, even with ugly hacks, since -// the only unusual operation it uses is the copy constructor, which -// is needed for other purposes. We provide a macro for -// full specializations, and instantiate the most common case. -# define _ROPE_SWAP_SPECIALIZATION(_CharT, __Alloc) \ - inline void swap(_Rope_char_ref_proxy <_CharT, __Alloc > __a, \ - _Rope_char_ref_proxy <_CharT, __Alloc > __b) { \ - _CharT __tmp = __a; \ - __a = __b; \ - __b = __tmp; \ - } - -_ROPE_SWAP_SPECIALIZATION(char,_STLP_DEFAULT_ALLOCATOR(char) ) - -# ifndef _STLP_NO_WCHAR_T -_ROPE_SWAP_SPECIALIZATION(wchar_t,_STLP_DEFAULT_ALLOCATOR(wchar_t) ) -# endif - -#endif /* !_STLP_FUNCTION_TMPL_PARTIAL_ORDER */ - -template<class _CharT, class _Alloc> -class _Rope_char_ptr_proxy { - // XXX this class should be rewritten. -public: - typedef _Rope_char_ptr_proxy<_CharT, _Alloc> _Self; - friend class _Rope_char_ref_proxy<_CharT,_Alloc>; - size_t _M_pos; - rope<_CharT,_Alloc>* _M_root; // The whole rope. - - _Rope_char_ptr_proxy(const _Rope_char_ref_proxy<_CharT,_Alloc>& __x) - : _M_pos(__x._M_pos), _M_root(__x._M_root) {} - _Rope_char_ptr_proxy(const _Self& __x) - : _M_pos(__x._M_pos), _M_root(__x._M_root) {} - _Rope_char_ptr_proxy() {} - _Rope_char_ptr_proxy(_CharT* __x) : _M_pos(0), _M_root(0) { - _STLP_ASSERT(0 == __x) - } - _Self& operator= (const _Self& __x) { - _M_pos = __x._M_pos; - _M_root = __x._M_root; - return *this; - } - - _Rope_char_ref_proxy<_CharT,_Alloc> operator*() const { - return _Rope_char_ref_proxy<_CharT,_Alloc>(_M_root, _M_pos); - } -}; - - -/* - * Rope iterators: - * Unlike in the C version, we cache only part of the stack - * for rope iterators, since they must be efficiently copyable. - * When we run out of cache, we have to reconstruct the iterator - * value. - * Pointers from iterators are not included in reference counts. - * Iterators are assumed to be thread private. Ropes can - * be shared. - */ -template<class _CharT, class _Alloc> -class _Rope_iterator_base -/* : public random_access_iterator<_CharT, ptrdiff_t> */ -{ - friend class rope<_CharT,_Alloc>; - typedef _Rope_iterator_base<_CharT, _Alloc> _Self; - typedef _Rope_RopeConcatenation<_CharT,_Alloc> _RopeConcat; -public: - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - - enum { _S_path_cache_len = 4 }; // Must be <= 9 because of _M_path_direction. - enum { _S_iterator_buf_len = 15 }; - size_t _M_current_pos; - // The whole rope. - _RopeRep* _M_root; - // Starting position for current leaf - size_t _M_leaf_pos; - // Buffer possibly containing current char. - _CharT* _M_buf_start; - // Pointer to current char in buffer, != 0 ==> buffer valid. - _CharT* _M_buf_ptr; - // One past __last valid char in buffer. - _CharT* _M_buf_end; - - // What follows is the path cache. We go out of our - // way to make this compact. - // Path_end contains the bottom section of the path from - // the root to the current leaf. - struct { -# if defined (__BORLANDC__) && (__BORLANDC__ < 0x560) - _RopeRep const*_M_data[4]; -# else - _RopeRep const*_M_data[_S_path_cache_len]; -# endif - } _M_path_end; - // Last valid __pos in path_end; - // _M_path_end[0] ... _M_path_end[_M_leaf_index-1] - // point to concatenation nodes. - int _M_leaf_index; - // (_M_path_directions >> __i) & 1 is 1 - // if we got from _M_path_end[leaf_index - __i - 1] - // to _M_path_end[leaf_index - __i] by going to the - // __right. Assumes path_cache_len <= 9. - unsigned char _M_path_directions; - // Short buffer for surrounding chars. - // This is useful primarily for - // RopeFunctions. We put the buffer - // here to avoid locking in the - // multithreaded case. - // The cached path is generally assumed to be valid - // only if the buffer is valid. - struct { -# if defined (__BORLANDC__) && (__BORLANDC__ < 0x560) - _CharT _M_data[15]; -# else - _CharT _M_data[_S_iterator_buf_len]; -# endif - } _M_tmp_buf; - - // Set buffer contents given path cache. - static void _S_setbuf(_Rope_iterator_base<_CharT, _Alloc>& __x); - // Set buffer contents and path cache. - static void _S_setcache(_Rope_iterator_base<_CharT, _Alloc>& __x); - // As above, but assumes path cache is valid for previous posn. - static void _S_setcache_for_incr(_Rope_iterator_base<_CharT, _Alloc>& __x); - _Rope_iterator_base() {} - _Rope_iterator_base(_RopeRep* __root, size_t __pos) - : _M_current_pos(__pos),_M_root(__root), _M_buf_ptr(0) {} - void _M_incr(size_t __n); - void _M_decr(size_t __n); -public: - size_t index() const { return _M_current_pos; } -private: - void _M_copy_buf(const _Self& __x) { - _M_tmp_buf = __x._M_tmp_buf; - if (__x._M_buf_start == __x._M_tmp_buf._M_data) { - _M_buf_start = _M_tmp_buf._M_data; - _M_buf_end = _M_buf_start + (__x._M_buf_end - __x._M_buf_start); - _M_buf_ptr = _M_buf_start + (__x._M_buf_ptr - __x._M_buf_start); - } else { - _M_buf_end = __x._M_buf_end; - } - } - -public: - _Rope_iterator_base(const _Self& __x) : - _M_current_pos(__x._M_current_pos), - _M_root(__x._M_root), - _M_leaf_pos( __x._M_leaf_pos ), - _M_buf_start(__x._M_buf_start), - _M_buf_ptr(__x._M_buf_ptr), - _M_path_end(__x._M_path_end), - _M_leaf_index(__x._M_leaf_index), - _M_path_directions(__x._M_path_directions) - { - if (0 != __x._M_buf_ptr) { - _M_copy_buf(__x); - } - } - _Self& operator = (const _Self& __x) - { - _M_current_pos = __x._M_current_pos; - _M_root = __x._M_root; - _M_buf_start = __x._M_buf_start; - _M_buf_ptr = __x._M_buf_ptr; - _M_path_end = __x._M_path_end; - _M_leaf_index = __x._M_leaf_index; - _M_path_directions = __x._M_path_directions; - _M_leaf_pos = __x._M_leaf_pos; - if (0 != __x._M_buf_ptr) { - _M_copy_buf(__x); - } - return *this; - } -}; - -template<class _CharT, class _Alloc> class _Rope_iterator; - -template<class _CharT, class _Alloc> -class _Rope_const_iterator : public _Rope_iterator_base<_CharT,_Alloc> { - friend class rope<_CharT,_Alloc>; - typedef _Rope_const_iterator<_CharT, _Alloc> _Self; - typedef _Rope_iterator_base<_CharT,_Alloc> _Base; - // protected: -public: -# ifndef _STLP_HAS_NO_NAMESPACES - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - // The one from the base class may not be directly visible. -# endif - _Rope_const_iterator(const _RopeRep* __root, size_t __pos): - _Rope_iterator_base<_CharT,_Alloc>(__CONST_CAST(_RopeRep*,__root), __pos) - // Only nonconst iterators modify root ref count - {} -public: - typedef _CharT reference; // Really a value. Returning a reference - // Would be a mess, since it would have - // to be included in refcount. - typedef const _CharT* pointer; - typedef _CharT value_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag iterator_category; - -public: - _Rope_const_iterator() {} - _Rope_const_iterator(const _Self& __x) : - _Rope_iterator_base<_CharT,_Alloc>(__x) { } - _Rope_const_iterator(const _Rope_iterator<_CharT,_Alloc>& __x): - _Rope_iterator_base<_CharT,_Alloc>(__x) {} - _Rope_const_iterator(const rope<_CharT,_Alloc>& __r, size_t __pos) : - _Rope_iterator_base<_CharT,_Alloc>(__r._M_tree_ptr._M_data, __pos) {} - _Self& operator= (const _Self& __x) { - _Base::operator=(__x); - return *this; - } - reference operator*() { - if (0 == this->_M_buf_ptr) -#if !defined (__DMC__) - _S_setcache(*this); -#else - { _Rope_iterator_base<_CharT, _Alloc>* __x = this; _S_setcache(*__x); } -#endif - return *(this->_M_buf_ptr); - } - _Self& operator++() { - _CharT* __next; - if (0 != this->_M_buf_ptr && (__next = this->_M_buf_ptr + 1) < this->_M_buf_end) { - this->_M_buf_ptr = __next; - ++this->_M_current_pos; - } else { - this->_M_incr(1); - } - return *this; - } - _Self& operator+=(ptrdiff_t __n) { - if (__n >= 0) { - this->_M_incr(__n); - } else { - this->_M_decr(-__n); - } - return *this; - } - _Self& operator--() { - this->_M_decr(1); - return *this; - } - _Self& operator-=(ptrdiff_t __n) { - if (__n >= 0) { - this->_M_decr(__n); - } else { - this->_M_incr(-__n); - } - return *this; - } - _Self operator++(int) { - size_t __old_pos = this->_M_current_pos; - this->_M_incr(1); - return _Rope_const_iterator<_CharT,_Alloc>(this->_M_root, __old_pos); - // This makes a subsequent dereference expensive. - // Perhaps we should instead copy the iterator - // if it has a valid cache? - } - _Self operator--(int) { - size_t __old_pos = this->_M_current_pos; - this->_M_decr(1); - return _Rope_const_iterator<_CharT,_Alloc>(this->_M_root, __old_pos); - } - inline reference operator[](size_t __n); -}; - -template<class _CharT, class _Alloc> -class _Rope_iterator : public _Rope_iterator_base<_CharT,_Alloc> { - friend class rope<_CharT,_Alloc>; - typedef _Rope_iterator<_CharT, _Alloc> _Self; - typedef _Rope_iterator_base<_CharT,_Alloc> _Base; - typedef _Rope_RopeRep<_CharT,_Alloc> _RopeRep; - -public: - rope<_CharT,_Alloc>* _M_root_rope; - // root is treated as a cached version of this, - // and is used to detect changes to the underlying - // rope. - // Root is included in the reference count. - // This is necessary so that we can detect changes reliably. - // Unfortunately, it requires careful bookkeeping for the - // nonGC case. - _Rope_iterator(rope<_CharT,_Alloc>* __r, size_t __pos); - - void _M_check(); -public: - typedef _Rope_char_ref_proxy<_CharT,_Alloc> reference; - typedef _Rope_char_ref_proxy<_CharT,_Alloc>* pointer; - typedef _CharT value_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag iterator_category; -public: - ~_Rope_iterator() { //*TY 5/6/00 - added dtor to balance reference count - _RopeRep::_S_unref(this->_M_root); - } - - rope<_CharT,_Alloc>& container() { return *_M_root_rope; } - _Rope_iterator() { - this->_M_root = 0; // Needed for reference counting. - } - _Rope_iterator(const _Self& __x) : - _Rope_iterator_base<_CharT,_Alloc>(__x) { - _M_root_rope = __x._M_root_rope; - _RopeRep::_S_ref(this->_M_root); - } - _Rope_iterator(rope<_CharT,_Alloc>& __r, size_t __pos); - _Self& operator= (const _Self& __x) { - _RopeRep* __old = this->_M_root; - _RopeRep::_S_ref(__x._M_root); - _Base::operator=(__x); - _M_root_rope = __x._M_root_rope; - _RopeRep::_S_unref(__old); - return *this; - } - reference operator*() { - _M_check(); - if (0 == this->_M_buf_ptr) { - return reference(_M_root_rope, this->_M_current_pos); - } else { - return reference(_M_root_rope, this->_M_current_pos, *(this->_M_buf_ptr)); - } - } - _Self& operator++() { - this->_M_incr(1); - return *this; - } - _Self& operator+=(ptrdiff_t __n) { - if (__n >= 0) { - this->_M_incr(__n); - } else { - this->_M_decr(-__n); - } - return *this; - } - _Self& operator--() { - this->_M_decr(1); - return *this; - } - _Self& operator-=(ptrdiff_t __n) { - if (__n >= 0) { - this->_M_decr(__n); - } else { - this->_M_incr(-__n); - } - return *this; - } - _Self operator++(int) { - size_t __old_pos = this->_M_current_pos; - this->_M_incr(1); - return _Self(_M_root_rope, __old_pos); - } - _Self operator--(int) { - size_t __old_pos = this->_M_current_pos; - this->_M_decr(1); - return _Self(_M_root_rope, __old_pos); - } - reference operator[](ptrdiff_t __n) { - return reference(_M_root_rope, this->_M_current_pos + __n); - } -}; - -# ifdef _STLP_USE_OLD_HP_ITERATOR_QUERIES -template <class _CharT, class _Alloc> -inline random_access_iterator_tag -iterator_category(const _Rope_iterator<_CharT,_Alloc>&) { return random_access_iterator_tag();} -template <class _CharT, class _Alloc> -inline _CharT* value_type(const _Rope_iterator<_CharT,_Alloc>&) { return 0; } -template <class _CharT, class _Alloc> -inline ptrdiff_t* distance_type(const _Rope_iterator<_CharT,_Alloc>&) { return 0; } -template <class _CharT, class _Alloc> -inline random_access_iterator_tag -iterator_category(const _Rope_const_iterator<_CharT,_Alloc>&) { return random_access_iterator_tag(); } -template <class _CharT, class _Alloc> -inline _CharT* value_type(const _Rope_const_iterator<_CharT,_Alloc>&) { return 0; } -template <class _CharT, class _Alloc> -inline ptrdiff_t* distance_type(const _Rope_const_iterator<_CharT,_Alloc>&) { return 0; } -#endif /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */ - -template <class _CharT, class _Alloc, class _CharConsumer> -bool _S_apply_to_pieces(_CharConsumer& __c, - _Rope_RopeRep<_CharT, _Alloc> *__r, - size_t __begin, size_t __end); - // begin and end are assumed to be in range. - -template <class _CharT, class _Alloc> -class rope -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<rope<_CharT, _Alloc> > -#endif -{ - typedef rope<_CharT,_Alloc> _Self; -public: - typedef _CharT value_type; - typedef ptrdiff_t difference_type; - typedef size_t size_type; - typedef _CharT const_reference; - typedef const _CharT* const_pointer; - typedef _Rope_iterator<_CharT,_Alloc> iterator; - typedef _Rope_const_iterator<_CharT,_Alloc> const_iterator; - typedef _Rope_char_ref_proxy<_CharT,_Alloc> reference; - typedef _Rope_char_ptr_proxy<_CharT,_Alloc> pointer; - - friend class _Rope_iterator<_CharT,_Alloc>; - friend class _Rope_const_iterator<_CharT,_Alloc>; - friend struct _Rope_RopeRep<_CharT,_Alloc>; - friend class _Rope_iterator_base<_CharT,_Alloc>; - friend class _Rope_char_ptr_proxy<_CharT,_Alloc>; - friend class _Rope_char_ref_proxy<_CharT,_Alloc>; - friend struct _Rope_RopeSubstring<_CharT,_Alloc>; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -protected: - typedef _CharT* _Cstrptr; - - static _CharT _S_empty_c_str[1]; - - enum { _S_copy_max = 23 }; - // For strings shorter than _S_copy_max, we copy to - // concatenate. - - typedef _Rope_RopeRep<_CharT, _Alloc> _RopeRep; - typedef typename _RopeRep::_IsBasicCharType _IsBasicCharType; - -public: - _STLP_FORCE_ALLOCATORS(_CharT, _Alloc) - typedef typename _Alloc_traits<_CharT,_Alloc>::allocator_type allocator_type; - -public: - // The only data member of a rope: - _STLP_PRIV _STLP_alloc_proxy<_RopeRep*, _CharT, allocator_type> _M_tree_ptr; - -public: - allocator_type get_allocator() const { return allocator_type(_M_tree_ptr); } - -public: - typedef _Rope_RopeConcatenation<_CharT,_Alloc> _RopeConcatenation; - typedef _Rope_RopeLeaf<_CharT,_Alloc> _RopeLeaf; - typedef _Rope_RopeFunction<_CharT,_Alloc> _RopeFunction; - typedef _Rope_RopeSubstring<_CharT,_Alloc> _RopeSubstring; - - // Retrieve a character at the indicated position. - static _CharT _S_fetch(_RopeRep* __r, size_type __pos); - - // Obtain a pointer to the character at the indicated position. - // The pointer can be used to change the character. - // If such a pointer cannot be produced, as is frequently the - // case, 0 is returned instead. - // (Returns nonzero only if all nodes in the path have a refcount - // of 1.) - static _CharT* _S_fetch_ptr(_RopeRep* __r, size_type __pos); - - static void _S_unref(_RopeRep* __t) { - _RopeRep::_S_unref(__t); - } - static void _S_ref(_RopeRep* __t) { - _RopeRep::_S_ref(__t); - } - - typedef _Rope_self_destruct_ptr<_CharT,_Alloc> _Self_destruct_ptr; - - // _Result is counted in refcount. - static _RopeRep* _S_substring(_RopeRep* __base, - size_t __start, size_t __endp1); - - static _RopeRep* _S_concat_char_iter(_RopeRep* __r, - const _CharT* __iter, size_t __slen); - // Concatenate rope and char ptr, copying __s. - // Should really take an arbitrary iterator. - // Result is counted in refcount. - static _RopeRep* _S_destr_concat_char_iter(_RopeRep* __r, - const _CharT* __iter, size_t __slen); - // As above, but one reference to __r is about to be - // destroyed. Thus the pieces may be recycled if all - // relevent reference counts are 1. - - // General concatenation on _RopeRep. _Result - // has refcount of 1. Adjusts argument refcounts. - static _RopeRep* _S_concat_rep(_RopeRep* __left, _RopeRep* __right); - -public: -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _CharConsumer> -#else - typedef _Rope_char_consumer<_CharT> _CharConsumer; -#endif - void apply_to_pieces(size_t __begin, size_t __end, - _CharConsumer& __c) const - { _S_apply_to_pieces(__c, _M_tree_ptr._M_data, __begin, __end); } - -protected: - - static size_t _S_rounded_up_size(size_t __n) - { return _RopeRep::_S_rounded_up_size(__n); } - - // Allocate and construct a RopeLeaf using the supplied allocator - // Takes ownership of s instead of copying. - static _RopeLeaf* _S_new_RopeLeaf(_CharT *__s, - size_t _p_size, allocator_type __a) { - _RopeLeaf* __space = _STLP_CREATE_ALLOCATOR(allocator_type, __a, - _RopeLeaf).allocate(1); - _STLP_TRY { - _STLP_PLACEMENT_NEW(__space) _RopeLeaf(__s, _p_size, __a); - } - _STLP_UNWIND(_STLP_CREATE_ALLOCATOR(allocator_type,__a, - _RopeLeaf).deallocate(__space, 1)) - return __space; - } - - static _RopeConcatenation* _S_new_RopeConcatenation(_RopeRep* __left, _RopeRep* __right, - allocator_type __a) { - _RopeConcatenation* __space = _STLP_CREATE_ALLOCATOR(allocator_type, __a, - _RopeConcatenation).allocate(1); - return _STLP_PLACEMENT_NEW(__space) _RopeConcatenation(__left, __right, __a); - } - - static _RopeFunction* _S_new_RopeFunction(char_producer<_CharT>* __f, - size_t _p_size, bool __d, allocator_type __a) { - _RopeFunction* __space = _STLP_CREATE_ALLOCATOR(allocator_type, __a, - _RopeFunction).allocate(1); - return _STLP_PLACEMENT_NEW(__space) _RopeFunction(__f, _p_size, __d, __a); - } - - static _RopeSubstring* _S_new_RopeSubstring(_Rope_RopeRep<_CharT,_Alloc>* __b, size_t __s, - size_t __l, allocator_type __a) { - _RopeSubstring* __space = _STLP_CREATE_ALLOCATOR(allocator_type, __a, - _RopeSubstring).allocate(1); - return _STLP_PLACEMENT_NEW(__space) _RopeSubstring(__b, __s, __l, __a); - } - - static - _RopeLeaf* _S_RopeLeaf_from_unowned_char_ptr(const _CharT *__s, - size_t _p_size, allocator_type __a) { - if (0 == _p_size) return 0; - - _CharT* __buf = _STLP_CREATE_ALLOCATOR(allocator_type,__a, _CharT).allocate(_S_rounded_up_size(_p_size)); - - _STLP_PRIV __ucopy_n(__s, _p_size, __buf); - _S_construct_null(__buf + _p_size); - - _STLP_TRY { - return _S_new_RopeLeaf(__buf, _p_size, __a); - } - _STLP_UNWIND(_RopeRep::_S_free_string(__buf, _p_size, __a)) - _STLP_RET_AFTER_THROW(0) - } - - - // Concatenation of nonempty strings. - // Always builds a concatenation node. - // Rebalances if the result is too deep. - // Result has refcount 1. - // Does not increment left and right ref counts even though - // they are referenced. - static _RopeRep* - _S_tree_concat(_RopeRep* __left, _RopeRep* __right); - - // Concatenation helper functions - static _RopeLeaf* - _S_leaf_concat_char_iter(_RopeLeaf* __r, - const _CharT* __iter, size_t __slen); - // Concatenate by copying leaf. - // should take an arbitrary iterator - // result has refcount 1. - static _RopeLeaf* _S_destr_leaf_concat_char_iter - (_RopeLeaf* __r, const _CharT* __iter, size_t __slen); - // A version that potentially clobbers __r if __r->_M_ref_count == 1. - - - // A helper function for exponentiating strings. - // This uses a nonstandard refcount convention. - // The result has refcount 0. - typedef _STLP_PRIV _Rope_Concat_fn<_CharT,_Alloc> _Concat_fn; -#if !defined (__GNUC__) || (__GNUC__ < 3) - friend _Concat_fn; -#else - friend struct _STLP_PRIV _Rope_Concat_fn<_CharT,_Alloc>; -#endif - -public: - static size_t _S_char_ptr_len(const _CharT* __s) { - return char_traits<_CharT>::length(__s); - } - -public: /* for operators */ - rope(_RopeRep* __t, const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, __t) { } -private: - // Copy __r to the _CharT buffer. - // Returns __buffer + __r->_M_size._M_data. - // Assumes that buffer is uninitialized. - static _CharT* _S_flatten(_RopeRep* __r, _CharT* __buffer); - - // Again, with explicit starting position and length. - // Assumes that buffer is uninitialized. - static _CharT* _S_flatten(_RopeRep* __r, - size_t __start, size_t __len, - _CharT* __buffer); - - // fbp : HP aCC prohibits access to protected min_len from within static methods ( ?? ) -public: - static const unsigned long _S_min_len[__ROPE_DEPTH_SIZE]; -protected: - static bool _S_is_balanced(_RopeRep* __r) - { return (__r->_M_size._M_data >= _S_min_len[__r->_M_depth]); } - - static bool _S_is_almost_balanced(_RopeRep* __r) { - return (__r->_M_depth == 0 || - __r->_M_size._M_data >= _S_min_len[__r->_M_depth - 1]); - } - - static bool _S_is_roughly_balanced(_RopeRep* __r) { - return (__r->_M_depth <= 1 || - __r->_M_size._M_data >= _S_min_len[__r->_M_depth - 2]); - } - - // Assumes the result is not empty. - static _RopeRep* _S_concat_and_set_balanced(_RopeRep* __left, - _RopeRep* __right) { - _RopeRep* __result = _S_concat_rep(__left, __right); - if (_S_is_balanced(__result)) __result->_M_is_balanced = true; - return __result; - } - - // The basic rebalancing operation. Logically copies the - // rope. The result has refcount of 1. The client will - // usually decrement the reference count of __r. - // The result is within height 2 of balanced by the above - // definition. - static _RopeRep* _S_balance(_RopeRep* __r); - - // Add all unbalanced subtrees to the forest of balanceed trees. - // Used only by balance. - static void _S_add_to_forest(_RopeRep*__r, _RopeRep** __forest); - - // Add __r to forest, assuming __r is already balanced. - static void _S_add_leaf_to_forest(_RopeRep* __r, _RopeRep** __forest); - -#ifdef _STLP_DEBUG - // Print to stdout, exposing structure - static void _S_dump(_RopeRep* __r, int __indent = 0); -#endif - - // Return -1, 0, or 1 if __x < __y, __x == __y, or __x > __y resp. - static int _S_compare(const _RopeRep* __x, const _RopeRep* __y); - - void _STLP_FUNCTION_THROWS _M_throw_out_of_range() const; - - void _M_reset(_RopeRep* __r) { - //if (__r != _M_tree_ptr._M_data) { - _S_unref(_M_tree_ptr._M_data); - _M_tree_ptr._M_data = __r; - //} - } - -public: - bool empty() const { return 0 == _M_tree_ptr._M_data; } - - // Comparison member function. This is public only for those - // clients that need a ternary comparison. Others - // should use the comparison operators below. - int compare(const _Self& __y) const { - return _S_compare(_M_tree_ptr._M_data, __y._M_tree_ptr._M_data); - } - - rope(const _CharT* __s, const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, _S_RopeLeaf_from_unowned_char_ptr(__s, _S_char_ptr_len(__s),__a)) - {} - - rope(const _CharT* __s, size_t __len, - const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, (_S_RopeLeaf_from_unowned_char_ptr(__s, __len, __a))) - {} - - // Should perhaps be templatized with respect to the iterator type - // and use Sequence_buffer. (It should perhaps use sequence_buffer - // even now.) - rope(const _CharT *__s, const _CharT *__e, - const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, _S_RopeLeaf_from_unowned_char_ptr(__s, __e - __s, __a)) - {} - - rope(const const_iterator& __s, const const_iterator& __e, - const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, _S_substring(__s._M_root, __s._M_current_pos, - __e._M_current_pos)) - {} - - rope(const iterator& __s, const iterator& __e, - const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, _S_substring(__s._M_root, __s._M_current_pos, - __e._M_current_pos)) - {} - - rope(_CharT __c, const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, (_RopeRep*)0) { - _CharT* __buf = _M_tree_ptr.allocate(_S_rounded_up_size(1)); - - _Copy_Construct(__buf, __c); - _S_construct_null(__buf + 1); - - _STLP_TRY { - _M_tree_ptr._M_data = _S_new_RopeLeaf(__buf, 1, __a); - } - _STLP_UNWIND(_RopeRep::_S_free_string(__buf, 1, __a)) - } - - rope(size_t __n, _CharT __c, - const allocator_type& __a = allocator_type()): - _M_tree_ptr(__a, (_RopeRep*)0) { - if (0 == __n) - return; - - rope<_CharT,_Alloc> __result; -# define __exponentiate_threshold size_t(32) - _RopeRep* __remainder; - rope<_CharT,_Alloc> __remainder_rope; - - // gcc-2.7.2 bugs - typedef _STLP_PRIV _Rope_Concat_fn<_CharT,_Alloc> _Concat_fn; - - size_t __exponent = __n / __exponentiate_threshold; - size_t __rest = __n % __exponentiate_threshold; - if (0 == __rest) { - __remainder = 0; - } else { - _CharT* __rest_buffer = _M_tree_ptr.allocate(_S_rounded_up_size(__rest)); - uninitialized_fill_n(__rest_buffer, __rest, __c); - _S_construct_null(__rest_buffer + __rest); - _STLP_TRY { - __remainder = _S_new_RopeLeaf(__rest_buffer, __rest, __a); - } - _STLP_UNWIND(_RopeRep::_S_free_string(__rest_buffer, __rest, __a)) - } - __remainder_rope._M_tree_ptr._M_data = __remainder; - if (__exponent != 0) { - _CharT* __base_buffer = _M_tree_ptr.allocate(_S_rounded_up_size(__exponentiate_threshold)); - _RopeLeaf* __base_leaf; - rope<_CharT,_Alloc> __base_rope; - uninitialized_fill_n(__base_buffer, __exponentiate_threshold, __c); - _S_construct_null(__base_buffer + __exponentiate_threshold); - _STLP_TRY { - __base_leaf = _S_new_RopeLeaf(__base_buffer, - __exponentiate_threshold, __a); - } - _STLP_UNWIND(_RopeRep::_S_free_string(__base_buffer, - __exponentiate_threshold, __a)) - __base_rope._M_tree_ptr._M_data = __base_leaf; - if (1 == __exponent) { - __result = __base_rope; - // One each for base_rope and __result - //_STLP_ASSERT(2 == __result._M_tree_ptr._M_data->_M_ref_count) - } else { - __result = _STLP_PRIV __power(__base_rope, __exponent, _Concat_fn()); - } - if (0 != __remainder) { - __result += __remainder_rope; - } - } else { - __result = __remainder_rope; - } - _M_tree_ptr._M_data = __result._M_tree_ptr._M_data; - _M_tree_ptr._M_data->_M_ref_nonnil(); -# undef __exponentiate_threshold - } - - rope(const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, (_RopeRep*)0) {} - - // Construct a rope from a function that can compute its members - rope(char_producer<_CharT> *__fn, size_t __len, bool __delete_fn, - const allocator_type& __a = allocator_type()) - : _M_tree_ptr(__a, (_RopeRep*)0) { - _M_tree_ptr._M_data = (0 == __len) ? - 0 : _S_new_RopeFunction(__fn, __len, __delete_fn, __a); - } - - rope(const _Self& __x) - : _M_tree_ptr(__x._M_tree_ptr, __x._M_tree_ptr._M_data) { - _S_ref(_M_tree_ptr._M_data); - } - - rope(__move_source<_Self> __src) - : _M_tree_ptr(__src.get()._M_tree_ptr, __src.get()._M_tree_ptr._M_data) { - __src.get()._M_tree_ptr._M_data = 0; - } - - ~rope() { - _S_unref(_M_tree_ptr._M_data); - } - - _Self& operator=(const _Self& __x) { - _STLP_ASSERT(get_allocator() == __x.get_allocator()) - _S_ref(__x._M_tree_ptr._M_data); - _M_reset(__x._M_tree_ptr._M_data); - return *this; - } - - void clear() { - _S_unref(_M_tree_ptr._M_data); - _M_tree_ptr._M_data = 0; - } - void push_back(_CharT __x) { - _M_reset(_S_destr_concat_char_iter(_M_tree_ptr._M_data, &__x, 1)); - } - - void pop_back() { - _RopeRep* __old = _M_tree_ptr._M_data; - _M_tree_ptr._M_data = - _S_substring(_M_tree_ptr._M_data, 0, _M_tree_ptr._M_data->_M_size._M_data - 1); - _S_unref(__old); - } - - _CharT back() const { - return _S_fetch(_M_tree_ptr._M_data, _M_tree_ptr._M_data->_M_size._M_data - 1); - } - - void push_front(_CharT __x) { - _RopeRep* __old = _M_tree_ptr._M_data; - _RopeRep* __left = - _S_RopeLeaf_from_unowned_char_ptr(&__x, 1, _M_tree_ptr); - _STLP_TRY { - _M_tree_ptr._M_data = _S_concat_rep(__left, _M_tree_ptr._M_data); - _S_unref(__old); - _S_unref(__left); - } - _STLP_UNWIND(_S_unref(__left)) - } - - void pop_front() { - _RopeRep* __old = _M_tree_ptr._M_data; - _M_tree_ptr._M_data = _S_substring(_M_tree_ptr._M_data, 1, _M_tree_ptr._M_data->_M_size._M_data); - _S_unref(__old); - } - - _CharT front() const { - return _S_fetch(_M_tree_ptr._M_data, 0); - } - - void balance() { - _RopeRep* __old = _M_tree_ptr._M_data; - _M_tree_ptr._M_data = _S_balance(_M_tree_ptr._M_data); - _S_unref(__old); - } - - void copy(_CharT* __buffer) const { - _STLP_STD::_Destroy_Range(__buffer, __buffer + size()); - _S_flatten(_M_tree_ptr._M_data, __buffer); - } - - /* - * This is the copy function from the standard, but - * with the arguments reordered to make it consistent with the - * rest of the interface. - * Note that this guaranteed not to compile if the draft standard - * order is assumed. - */ - size_type copy(size_type __pos, size_type __n, _CharT* __buffer) const { - size_t _p_size = size(); - size_t __len = (__pos + __n > _p_size? _p_size - __pos : __n); - - _STLP_STD::_Destroy_Range(__buffer, __buffer + __len); - _S_flatten(_M_tree_ptr._M_data, __pos, __len, __buffer); - return __len; - } - -# ifdef _STLP_DEBUG - // Print to stdout, exposing structure. May be useful for - // performance debugging. - void dump() { - _S_dump(_M_tree_ptr._M_data); - } -# endif - - // Convert to 0 terminated string in new allocated memory. - // Embedded 0s in the input do not terminate the copy. - const _CharT* c_str() const; - - // As above, but also use the flattened representation as the - // the new rope representation. - const _CharT* replace_with_c_str(); - - // Reclaim memory for the c_str generated flattened string. - // Intentionally undocumented, since it's hard to say when this - // is safe for multiple threads. - void delete_c_str () { - if (0 == _M_tree_ptr._M_data) return; - if (_RopeRep::_S_leaf == _M_tree_ptr._M_data->_M_tag && - ((_RopeLeaf*)_M_tree_ptr._M_data)->_M_data == - _M_tree_ptr._M_data->_M_c_string) { - // Representation shared - return; - } - _M_tree_ptr._M_data->_M_free_c_string(); - _M_tree_ptr._M_data->_M_c_string = 0; - } - - _CharT operator[] (size_type __pos) const { - return _S_fetch(_M_tree_ptr._M_data, __pos); - } - - _CharT at(size_type __pos) const { - if (__pos >= size()) _M_throw_out_of_range(); - return (*this)[__pos]; - } - - const_iterator begin() const { - return(const_iterator(_M_tree_ptr._M_data, 0)); - } - - // An easy way to get a const iterator from a non-const container. - const_iterator const_begin() const { - return(const_iterator(_M_tree_ptr._M_data, 0)); - } - - const_iterator end() const { - return(const_iterator(_M_tree_ptr._M_data, size())); - } - - const_iterator const_end() const { - return(const_iterator(_M_tree_ptr._M_data, size())); - } - - size_type size() const { - return(0 == _M_tree_ptr._M_data? 0 : _M_tree_ptr._M_data->_M_size._M_data); - } - - size_type length() const { - return size(); - } - - size_type max_size() const { - return _S_min_len[__ROPE_MAX_DEPTH-1] - 1; - // Guarantees that the result can be sufficiently - // balanced. Longer ropes will probably still work, - // but it's harder to make guarantees. - } - - const_reverse_iterator rbegin() const { - return const_reverse_iterator(end()); - } - - const_reverse_iterator const_rbegin() const { - return const_reverse_iterator(end()); - } - - const_reverse_iterator rend() const { - return const_reverse_iterator(begin()); - } - - const_reverse_iterator const_rend() const { - return const_reverse_iterator(begin()); - } - // The symmetric cases are intentionally omitted, since they're presumed - // to be less common, and we don't handle them as well. - - // The following should really be templatized. - // The first argument should be an input iterator or - // forward iterator with value_type _CharT. - _Self& append(const _CharT* __iter, size_t __n) { - _M_reset(_S_destr_concat_char_iter(_M_tree_ptr._M_data, __iter, __n)); - return *this; - } - - _Self& append(const _CharT* __c_string) { - size_t __len = _S_char_ptr_len(__c_string); - append(__c_string, __len); - return *this; - } - - _Self& append(const _CharT* __s, const _CharT* __e) { - _M_reset(_S_destr_concat_char_iter(_M_tree_ptr._M_data, __s, __e - __s)); - return *this; - } - - _Self& append(const_iterator __s, const_iterator __e) { - _STLP_ASSERT(__s._M_root == __e._M_root) - _STLP_ASSERT(get_allocator() == __s._M_root->get_allocator()) - _Self_destruct_ptr __appendee(_S_substring(__s._M_root, __s._M_current_pos, __e._M_current_pos)); - _M_reset(_S_concat_rep(_M_tree_ptr._M_data, (_RopeRep*)__appendee)); - return *this; - } - - _Self& append(_CharT __c) { - _M_reset(_S_destr_concat_char_iter(_M_tree_ptr._M_data, &__c, 1)); - return *this; - } - - _Self& append() { return append(_CharT()); } // XXX why? - - _Self& append(const _Self& __y) { - _STLP_ASSERT(__y.get_allocator() == get_allocator()) - _M_reset(_S_concat_rep(_M_tree_ptr._M_data, __y._M_tree_ptr._M_data)); - return *this; - } - - _Self& append(size_t __n, _CharT __c) { - rope<_CharT,_Alloc> __last(__n, __c); - return append(__last); - } - - void swap(_Self& __b) { - _M_tree_ptr.swap(__b._M_tree_ptr); - } - -protected: - // Result is included in refcount. - static _RopeRep* replace(_RopeRep* __old, size_t __pos1, - size_t __pos2, _RopeRep* __r) { - if (0 == __old) { _S_ref(__r); return __r; } - _Self_destruct_ptr __left(_S_substring(__old, 0, __pos1)); - _Self_destruct_ptr __right(_S_substring(__old, __pos2, __old->_M_size._M_data)); - _STLP_MPWFIX_TRY //*TY 06/01/2000 - - _RopeRep* __result; - - if (0 == __r) { - __result = _S_concat_rep(__left, __right); - } else { - _STLP_ASSERT(__old->get_allocator() == __r->get_allocator()) - _Self_destruct_ptr __left_result(_S_concat_rep(__left, __r)); - __result = _S_concat_rep(__left_result, __right); - } - return __result; - _STLP_MPWFIX_CATCH //*TY 06/01/2000 - - } - -public: - void insert(size_t __p, const _Self& __r) { - if (__p > size()) _M_throw_out_of_range(); - _STLP_ASSERT(get_allocator() == __r.get_allocator()) - _M_reset(replace(_M_tree_ptr._M_data, __p, __p, __r._M_tree_ptr._M_data)); - } - - void insert(size_t __p, size_t __n, _CharT __c) { - rope<_CharT,_Alloc> __r(__n,__c); - insert(__p, __r); - } - - void insert(size_t __p, const _CharT* __i, size_t __n) { - if (__p > size()) _M_throw_out_of_range(); - _Self_destruct_ptr __left(_S_substring(_M_tree_ptr._M_data, 0, __p)); - _Self_destruct_ptr __right(_S_substring(_M_tree_ptr._M_data, __p, size())); - _Self_destruct_ptr __left_result( - _S_concat_char_iter(__left, __i, __n)); - // _S_ destr_concat_char_iter should be safe here. - // But as it stands it's probably not a win, since __left - // is likely to have additional references. - _M_reset(_S_concat_rep(__left_result, __right)); - } - - void insert(size_t __p, const _CharT* __c_string) { - insert(__p, __c_string, _S_char_ptr_len(__c_string)); - } - - void insert(size_t __p, _CharT __c) { - insert(__p, &__c, 1); - } - - void insert(size_t __p) { - _CharT __c = _CharT(); - insert(__p, &__c, 1); - } - - void insert(size_t __p, const _CharT* __i, const _CharT* __j) { - _Self __r(__i, __j); - insert(__p, __r); - } - - void insert(size_t __p, const const_iterator& __i, - const const_iterator& __j) { - _Self __r(__i, __j); - insert(__p, __r); - } - - void insert(size_t __p, const iterator& __i, - const iterator& __j) { - _Self __r(__i, __j); - insert(__p, __r); - } - - // (position, length) versions of replace operations: - void replace(size_t __p, size_t __n, const _Self& __r) { - if (__p > size()) _M_throw_out_of_range(); - _M_reset(replace(_M_tree_ptr._M_data, __p, __p + __n, __r._M_tree_ptr._M_data)); - } - - void replace(size_t __p, size_t __n, - const _CharT* __i, size_t __i_len) { - _Self __r(__i, __i_len); - replace(__p, __n, __r); - } - - void replace(size_t __p, size_t __n, _CharT __c) { - _Self __r(__c); - replace(__p, __n, __r); - } - - void replace(size_t __p, size_t __n, const _CharT* __c_string) { - _Self __r(__c_string); - replace(__p, __n, __r); - } - - void replace(size_t __p, size_t __n, - const _CharT* __i, const _CharT* __j) { - _Self __r(__i, __j); - replace(__p, __n, __r); - } - - void replace(size_t __p, size_t __n, - const const_iterator& __i, const const_iterator& __j) { - _Self __r(__i, __j); - replace(__p, __n, __r); - } - - void replace(size_t __p, size_t __n, - const iterator& __i, const iterator& __j) { - _Self __r(__i, __j); - replace(__p, __n, __r); - } - - // Single character variants: - void replace(size_t __p, _CharT __c) { - if (__p > size()) _M_throw_out_of_range(); - iterator __i(this, __p); - *__i = __c; - } - - void replace(size_t __p, const _Self& __r) { - replace(__p, 1, __r); - } - - void replace(size_t __p, const _CharT* __i, size_t __i_len) { - replace(__p, 1, __i, __i_len); - } - - void replace(size_t __p, const _CharT* __c_string) { - replace(__p, 1, __c_string); - } - - void replace(size_t __p, const _CharT* __i, const _CharT* __j) { - replace(__p, 1, __i, __j); - } - - void replace(size_t __p, const const_iterator& __i, - const const_iterator& __j) { - replace(__p, 1, __i, __j); - } - - void replace(size_t __p, const iterator& __i, - const iterator& __j) { - replace(__p, 1, __i, __j); - } - - // Erase, (position, size) variant. - void erase(size_t __p, size_t __n) { - if (__p > size()) _M_throw_out_of_range(); - _M_reset(replace(_M_tree_ptr._M_data, __p, __p + __n, 0)); - } - - // Erase, single character - void erase(size_t __p) { - erase(__p, __p + 1); - } - - // Insert, iterator variants. - iterator insert(const iterator& __p, const _Self& __r) - { insert(__p.index(), __r); return __p; } - iterator insert(const iterator& __p, size_t __n, _CharT __c) - { insert(__p.index(), __n, __c); return __p; } - iterator insert(const iterator& __p, _CharT __c) - { insert(__p.index(), __c); return __p; } - iterator insert(const iterator& __p ) - { insert(__p.index()); return __p; } - iterator insert(const iterator& __p, const _CharT* c_string) - { insert(__p.index(), c_string); return __p; } - iterator insert(const iterator& __p, const _CharT* __i, size_t __n) - { insert(__p.index(), __i, __n); return __p; } - iterator insert(const iterator& __p, const _CharT* __i, - const _CharT* __j) - { insert(__p.index(), __i, __j); return __p; } - iterator insert(const iterator& __p, - const const_iterator& __i, const const_iterator& __j) - { insert(__p.index(), __i, __j); return __p; } - iterator insert(const iterator& __p, - const iterator& __i, const iterator& __j) - { insert(__p.index(), __i, __j); return __p; } - - // Replace, range variants. - void replace(const iterator& __p, const iterator& __q, - const _Self& __r) - { replace(__p.index(), __q.index() - __p.index(), __r); } - void replace(const iterator& __p, const iterator& __q, _CharT __c) - { replace(__p.index(), __q.index() - __p.index(), __c); } - void replace(const iterator& __p, const iterator& __q, - const _CharT* __c_string) - { replace(__p.index(), __q.index() - __p.index(), __c_string); } - void replace(const iterator& __p, const iterator& __q, - const _CharT* __i, size_t __n) - { replace(__p.index(), __q.index() - __p.index(), __i, __n); } - void replace(const iterator& __p, const iterator& __q, - const _CharT* __i, const _CharT* __j) - { replace(__p.index(), __q.index() - __p.index(), __i, __j); } - void replace(const iterator& __p, const iterator& __q, - const const_iterator& __i, const const_iterator& __j) - { replace(__p.index(), __q.index() - __p.index(), __i, __j); } - void replace(const iterator& __p, const iterator& __q, - const iterator& __i, const iterator& __j) - { replace(__p.index(), __q.index() - __p.index(), __i, __j); } - - // Replace, iterator variants. - void replace(const iterator& __p, const _Self& __r) - { replace(__p.index(), __r); } - void replace(const iterator& __p, _CharT __c) - { replace(__p.index(), __c); } - void replace(const iterator& __p, const _CharT* __c_string) - { replace(__p.index(), __c_string); } - void replace(const iterator& __p, const _CharT* __i, size_t __n) - { replace(__p.index(), __i, __n); } - void replace(const iterator& __p, const _CharT* __i, const _CharT* __j) - { replace(__p.index(), __i, __j); } - void replace(const iterator& __p, const_iterator __i, - const_iterator __j) - { replace(__p.index(), __i, __j); } - void replace(const iterator& __p, iterator __i, iterator __j) - { replace(__p.index(), __i, __j); } - - // Iterator and range variants of erase - iterator erase(const iterator& __p, const iterator& __q) { - size_t __p_index = __p.index(); - erase(__p_index, __q.index() - __p_index); - return iterator(this, __p_index); - } - iterator erase(const iterator& __p) { - size_t __p_index = __p.index(); - erase(__p_index, 1); - return iterator(this, __p_index); - } - - _Self substr(size_t __start, size_t __len = 1) const { - if (__start > size()) _M_throw_out_of_range(); - return rope<_CharT,_Alloc>(_S_substring(_M_tree_ptr._M_data, __start, __start + __len)); - } - - _Self substr(iterator __start, iterator __end) const { - return rope<_CharT,_Alloc>(_S_substring(_M_tree_ptr._M_data, __start.index(), __end.index())); - } - - _Self substr(iterator __start) const { - size_t __pos = __start.index(); - return rope<_CharT,_Alloc>(_S_substring(_M_tree_ptr._M_data, __pos, __pos + 1)); - } - - _Self substr(const_iterator __start, const_iterator __end) const { - // This might eventually take advantage of the cache in the - // iterator. - return rope<_CharT,_Alloc>(_S_substring(_M_tree_ptr._M_data, __start.index(), __end.index())); - } - - rope<_CharT,_Alloc> substr(const_iterator __start) { - size_t __pos = __start.index(); - return rope<_CharT,_Alloc>(_S_substring(_M_tree_ptr._M_data, __pos, __pos + 1)); - } - -#include <stl/_string_npos.h> - - size_type find(const _Self& __s, size_type __pos = 0) const { - if (__pos >= size()) -# ifndef _STLP_OLD_ROPE_SEMANTICS - return npos; -# else - return size(); -# endif - - size_type __result_pos; - const_iterator __result = search(const_begin() + (ptrdiff_t)__pos, const_end(), __s.begin(), __s.end() ); - __result_pos = __result.index(); -# ifndef _STLP_OLD_ROPE_SEMANTICS - if (__result_pos == size()) __result_pos = npos; -# endif - return __result_pos; - } - size_type find(_CharT __c, size_type __pos = 0) const; - size_type find(const _CharT* __s, size_type __pos = 0) const { - size_type __result_pos; - const_iterator __result = search(const_begin() + (ptrdiff_t)__pos, const_end(), - __s, __s + _S_char_ptr_len(__s)); - __result_pos = __result.index(); -# ifndef _STLP_OLD_ROPE_SEMANTICS - if (__result_pos == size()) __result_pos = npos; -# endif - return __result_pos; - } - - iterator mutable_begin() { - return(iterator(this, 0)); - } - - iterator mutable_end() { - return(iterator(this, size())); - } - - reverse_iterator mutable_rbegin() { - return reverse_iterator(mutable_end()); - } - - reverse_iterator mutable_rend() { - return reverse_iterator(mutable_begin()); - } - - reference mutable_reference_at(size_type __pos) { - return reference(this, __pos); - } - -# ifdef __STD_STUFF - reference operator[] (size_type __pos) { - return reference(this, __pos); - } - - reference at(size_type __pos) { - if (__pos >= size()) _M_throw_out_of_range(); - return (*this)[__pos]; - } - - void resize(size_type, _CharT) {} - void resize(size_type) {} - void reserve(size_type = 0) {} - size_type capacity() const { - return max_size(); - } - - // Stuff below this line is dangerous because it's error prone. - // I would really like to get rid of it. - // copy function with funny arg ordering. - size_type copy(_CharT* __buffer, size_type __n, - size_type __pos = 0) const { - return copy(__pos, __n, __buffer); - } - - iterator end() { return mutable_end(); } - - iterator begin() { return mutable_begin(); } - - reverse_iterator rend() { return mutable_rend(); } - - reverse_iterator rbegin() { return mutable_rbegin(); } - -# else - - const_iterator end() { return const_end(); } - - const_iterator begin() { return const_begin(); } - - const_reverse_iterator rend() { return const_rend(); } - - const_reverse_iterator rbegin() { return const_rbegin(); } - -# endif -}; //class rope - -#if !defined (_STLP_STATIC_CONST_INIT_BUG) -# if defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96) -template <class _CharT, class _Alloc> -const size_t rope<_CharT, _Alloc>::npos = ~(size_t) 0; -# endif -#endif - -template <class _CharT, class _Alloc> -inline _CharT -_Rope_const_iterator< _CharT, _Alloc>::operator[](size_t __n) -{ return rope<_CharT,_Alloc>::_S_fetch(this->_M_root, this->_M_current_pos + __n); } - -template <class _CharT, class _Alloc> -inline bool operator== (const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) { - return (__x._M_current_pos == __y._M_current_pos && - __x._M_root == __y._M_root); -} - -template <class _CharT, class _Alloc> -inline bool operator< (const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) -{ return (__x._M_current_pos < __y._M_current_pos); } - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template <class _CharT, class _Alloc> -inline bool operator!= (const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) -{ return !(__x == __y); } - -template <class _CharT, class _Alloc> -inline bool operator> (const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) -{ return __y < __x; } - -template <class _CharT, class _Alloc> -inline bool operator<= (const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) -{ return !(__y < __x); } - -template <class _CharT, class _Alloc> -inline bool operator>= (const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) -{ return !(__x < __y); } - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _CharT, class _Alloc> -inline ptrdiff_t operator-(const _Rope_const_iterator<_CharT,_Alloc>& __x, - const _Rope_const_iterator<_CharT,_Alloc>& __y) -{ return (ptrdiff_t)__x._M_current_pos - (ptrdiff_t)__y._M_current_pos; } - -#if !defined( __MWERKS__ ) || __MWERKS__ >= 0x2000 // dwa 8/21/97 - "ambiguous access to overloaded function" bug. -template <class _CharT, class _Alloc> -inline _Rope_const_iterator<_CharT,_Alloc> -operator-(const _Rope_const_iterator<_CharT,_Alloc>& __x, ptrdiff_t __n) -{ return _Rope_const_iterator<_CharT,_Alloc>(__x._M_root, __x._M_current_pos - __n); } -# endif - -template <class _CharT, class _Alloc> -inline _Rope_const_iterator<_CharT,_Alloc> -operator+(const _Rope_const_iterator<_CharT,_Alloc>& __x, ptrdiff_t __n) -{ return _Rope_const_iterator<_CharT,_Alloc>(__x._M_root, __x._M_current_pos + __n); } - -template <class _CharT, class _Alloc> -inline _Rope_const_iterator<_CharT,_Alloc> -operator+(ptrdiff_t __n, const _Rope_const_iterator<_CharT,_Alloc>& __x) -{ return _Rope_const_iterator<_CharT,_Alloc>(__x._M_root, __x._M_current_pos + __n); } - -template <class _CharT, class _Alloc> -inline bool operator== (const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) { - return (__x._M_current_pos == __y._M_current_pos && - __x._M_root_rope == __y._M_root_rope); -} - -template <class _CharT, class _Alloc> -inline bool operator< (const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) -{ return (__x._M_current_pos < __y._M_current_pos); } - -#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) -template <class _CharT, class _Alloc> -inline bool operator!= (const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) -{ return !(__x == __y); } - -template <class _CharT, class _Alloc> -inline bool operator> (const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) -{ return __y < __x; } - -template <class _CharT, class _Alloc> -inline bool operator<= (const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) -{ return !(__y < __x); } - -template <class _CharT, class _Alloc> -inline bool operator>= (const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) -{ return !(__x < __y); } -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _CharT, class _Alloc> -inline ptrdiff_t operator-(const _Rope_iterator<_CharT,_Alloc>& __x, - const _Rope_iterator<_CharT,_Alloc>& __y) -{ return (ptrdiff_t)__x._M_current_pos - (ptrdiff_t)__y._M_current_pos; } - -#if !defined( __MWERKS__ ) || __MWERKS__ >= 0x2000 // dwa 8/21/97 - "ambiguous access to overloaded function" bug. -template <class _CharT, class _Alloc> -inline _Rope_iterator<_CharT,_Alloc> -operator-(const _Rope_iterator<_CharT,_Alloc>& __x, - ptrdiff_t __n) { - return _Rope_iterator<_CharT,_Alloc>(__x._M_root_rope, __x._M_current_pos - __n); -} -# endif - -template <class _CharT, class _Alloc> -inline _Rope_iterator<_CharT,_Alloc> -operator+(const _Rope_iterator<_CharT,_Alloc>& __x, - ptrdiff_t __n) { - return _Rope_iterator<_CharT,_Alloc>(__x._M_root_rope, __x._M_current_pos + __n); -} - -template <class _CharT, class _Alloc> -inline _Rope_iterator<_CharT,_Alloc> -operator+(ptrdiff_t __n, const _Rope_iterator<_CharT,_Alloc>& __x) { - return _Rope_iterator<_CharT,_Alloc>(__x._M_root_rope, __x._M_current_pos + __n); -} - -template <class _CharT, class _Alloc> -inline rope<_CharT,_Alloc> -operator+ (const rope<_CharT,_Alloc>& __left, - const rope<_CharT,_Alloc>& __right) { - _STLP_ASSERT(__left.get_allocator() == __right.get_allocator()) - return rope<_CharT,_Alloc>(rope<_CharT,_Alloc>::_S_concat_rep(__left._M_tree_ptr._M_data, __right._M_tree_ptr._M_data)); - // Inlining this should make it possible to keep __left and __right in registers. -} - -template <class _CharT, class _Alloc> -inline rope<_CharT,_Alloc>& -operator+= (rope<_CharT,_Alloc>& __left, - const rope<_CharT,_Alloc>& __right) { - __left.append(__right); - return __left; -} - -template <class _CharT, class _Alloc> -inline rope<_CharT,_Alloc> -operator+ (const rope<_CharT,_Alloc>& __left, - const _CharT* __right) { - size_t __rlen = rope<_CharT,_Alloc>::_S_char_ptr_len(__right); - return rope<_CharT,_Alloc>(rope<_CharT,_Alloc>::_S_concat_char_iter(__left._M_tree_ptr._M_data, __right, __rlen)); -} - -template <class _CharT, class _Alloc> -inline rope<_CharT,_Alloc>& -operator+= (rope<_CharT,_Alloc>& __left, - const _CharT* __right) { - __left.append(__right); - return __left; -} - -template <class _CharT, class _Alloc> -inline rope<_CharT,_Alloc> -operator+ (const rope<_CharT,_Alloc>& __left, _CharT __right) { - return rope<_CharT,_Alloc>(rope<_CharT,_Alloc>::_S_concat_char_iter(__left._M_tree_ptr._M_data, &__right, 1)); -} - -template <class _CharT, class _Alloc> -inline rope<_CharT,_Alloc>& -operator+= (rope<_CharT,_Alloc>& __left, _CharT __right) { - __left.append(__right); - return __left; -} - -template <class _CharT, class _Alloc> -inline bool -operator< (const rope<_CharT,_Alloc>& __left, - const rope<_CharT,_Alloc>& __right) { - return __left.compare(__right) < 0; -} - -template <class _CharT, class _Alloc> -inline bool -operator== (const rope<_CharT,_Alloc>& __left, - const rope<_CharT,_Alloc>& __right) { - return __left.compare(__right) == 0; -} - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template <class _CharT, class _Alloc> -inline bool -operator!= (const rope<_CharT,_Alloc>& __x, const rope<_CharT,_Alloc>& __y) { - return !(__x == __y); -} - -template <class _CharT, class _Alloc> -inline bool -operator> (const rope<_CharT,_Alloc>& __x, const rope<_CharT,_Alloc>& __y) { - return __y < __x; -} - -template <class _CharT, class _Alloc> -inline bool -operator<= (const rope<_CharT,_Alloc>& __x, const rope<_CharT,_Alloc>& __y) { - return !(__y < __x); -} - -template <class _CharT, class _Alloc> -inline bool -operator>= (const rope<_CharT,_Alloc>& __x, const rope<_CharT,_Alloc>& __y) { - return !(__x < __y); -} - -template <class _CharT, class _Alloc> -inline bool operator!= (const _Rope_char_ptr_proxy<_CharT,_Alloc>& __x, - const _Rope_char_ptr_proxy<_CharT,_Alloc>& __y) { - return !(__x == __y); -} - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _CharT, class _Alloc> -inline bool operator== (const _Rope_char_ptr_proxy<_CharT,_Alloc>& __x, - const _Rope_char_ptr_proxy<_CharT,_Alloc>& __y) { - return (__x._M_pos == __y._M_pos && __x._M_root == __y._M_root); -} - -#if !defined (_STLP_USE_NO_IOSTREAMS) -template<class _CharT, class _Traits, class _Alloc> -basic_ostream<_CharT, _Traits>& operator<< (basic_ostream<_CharT, _Traits>& __o, - const rope<_CharT, _Alloc>& __r); -#endif - -typedef rope<char, _STLP_DEFAULT_ALLOCATOR(char) > crope; -#if defined (_STLP_HAS_WCHAR_T) -typedef rope<wchar_t, _STLP_DEFAULT_ALLOCATOR(wchar_t) > wrope; -#endif - -inline crope::reference __mutable_reference_at(crope& __c, size_t __i) -{ return __c.mutable_reference_at(__i); } - -#if defined (_STLP_HAS_WCHAR_T) -inline wrope::reference __mutable_reference_at(wrope& __c, size_t __i) -{ return __c.mutable_reference_at(__i); } -#endif - -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -template <class _CharT, class _Alloc> -inline void swap(rope<_CharT,_Alloc>& __x, rope<_CharT,_Alloc>& __y) -{ __x.swap(__y); } -#else - -inline void swap(crope& __x, crope& __y) { __x.swap(__y); } -# ifdef _STLP_HAS_WCHAR_T // dwa 8/21/97 -inline void swap(wrope& __x, wrope& __y) { __x.swap(__y); } -# endif - -#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ - - -// Hash functions should probably be revisited later: -_STLP_TEMPLATE_NULL struct hash<crope> { - size_t operator()(const crope& __str) const { - size_t _p_size = __str.size(); - - if (0 == _p_size) return 0; - return 13*__str[0] + 5*__str[_p_size - 1] + _p_size; - } -}; - -#if defined (_STLP_HAS_WCHAR_T) // dwa 8/21/97 -_STLP_TEMPLATE_NULL struct hash<wrope> { - size_t operator()(const wrope& __str) const { - size_t _p_size = __str.size(); - - if (0 == _p_size) return 0; - return 13*__str[0] + 5*__str[_p_size - 1] + _p_size; - } -}; -#endif - -#if (!defined (_STLP_MSVC) || (_STLP_MSVC >= 1310)) -// I couldn't get this to work with VC++ -template<class _CharT,class _Alloc> -# if defined (__DMC__) && !defined (__PUT_STATIC_DATA_MEMBERS_HERE) -extern -# endif -void _Rope_rotate(_Rope_iterator<_CharT, _Alloc> __first, - _Rope_iterator<_CharT, _Alloc> __middle, - _Rope_iterator<_CharT, _Alloc> __last); - -inline void rotate(_Rope_iterator<char, _STLP_DEFAULT_ALLOCATOR(char) > __first, - _Rope_iterator<char, _STLP_DEFAULT_ALLOCATOR(char) > __middle, - _Rope_iterator<char, _STLP_DEFAULT_ALLOCATOR(char) > __last) -{ _Rope_rotate(__first, __middle, __last); } -#endif - -template <class _CharT, class _Alloc> -inline _Rope_char_ref_proxy<_CharT, _Alloc>::operator _CharT () const { - if (_M_current_valid) { - return _M_current; - } else { - return _My_rope::_S_fetch(_M_root->_M_tree_ptr._M_data, _M_pos); - } -} - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _CharT, class _Alloc> -struct __move_traits<rope<_CharT, _Alloc> > { - typedef __stlp_movable implemented; - //Completness depends on the allocator: - typedef typename __move_traits<_Alloc>::complete complete; -}; -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_rope.c> -#endif - -#endif /* _STLP_INTERNAL_ROPE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_set.h b/WebKit/android/stlport/stl/_set.h deleted file mode 100644 index a253b46..0000000 --- a/WebKit/android/stlport/stl/_set.h +++ /dev/null @@ -1,402 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_SET_H -#define _STLP_INTERNAL_SET_H - -#ifndef _STLP_INTERNAL_TREE_H -# include <stl/_tree.h> -#endif - -#if !defined (_STLP_USE_PTR_SPECIALIZATIONS) - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_ITERATOR_TRAITS(SetTraitsT, Const_traits) - -template <class _Key, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Key) > -class set -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<set<_Key, _Compare, _Alloc> > -#endif -{ - typedef set<_Key, _Compare, _Alloc> _Self; -public: -// typedefs: - typedef _Key key_type; - typedef _Key value_type; - typedef _Compare key_compare; - typedef _Compare value_compare; - -private: - //Specific iterator traits creation - typedef _STLP_PRIV _SetTraitsT<value_type> _SetTraits; - -public: - //Following typedef have to be public for __move_traits specialization. - typedef _STLP_PRIV _Rb_tree<key_type, key_compare, - value_type, _STLP_PRIV _Identity<value_type>, - _SetTraits, _Alloc> _Rep_type; - - typedef typename _Rep_type::pointer pointer; - typedef typename _Rep_type::const_pointer const_pointer; - typedef typename _Rep_type::reference reference; - typedef typename _Rep_type::const_reference const_reference; - typedef typename _Rep_type::iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; - typedef typename _Rep_type::allocator_type allocator_type; - -private: - _Rep_type _M_t; // red-black tree representing set - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - - // allocation/deallocation -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit set(const _Compare& __comp = _Compare(), - const allocator_type& __a = allocator_type()) -#else - set() - : _M_t(_Compare(), allocator_type()) {} - explicit set(const _Compare& __comp) - : _M_t(__comp, allocator_type()) {} - set(const _Compare& __comp, const allocator_type& __a) -#endif - : _M_t(__comp, __a) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - set(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_unique(__first, __last); } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - set(_InputIterator __first, _InputIterator __last, const _Compare& __comp) - : _M_t(__comp, allocator_type()) { _M_t.insert_unique(__first, __last); } -# endif - template <class _InputIterator> - set(_InputIterator __first, _InputIterator __last, const _Compare& __comp, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } -#else - set(const value_type* __first, const value_type* __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_unique(__first, __last); } - - set(const value_type* __first, - const value_type* __last, const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } - - set(const_iterator __first, const_iterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_unique(__first, __last); } - - set(const_iterator __first, const_iterator __last, const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_unique(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - set(const _Self& __x) : _M_t(__x._M_t) {} - - set(__move_source<_Self> src) - : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {} - - _Self& operator=(const _Self& __x) { - _M_t = __x._M_t; - return *this; - } - - // accessors: - key_compare key_comp() const { return _M_t.key_comp(); } - value_compare value_comp() const { return _M_t.key_comp(); } - allocator_type get_allocator() const { return _M_t.get_allocator(); } - - iterator begin() { return _M_t.begin(); } - iterator end() { return _M_t.end(); } - const_iterator begin() const { return _M_t.begin(); } - const_iterator end() const { return _M_t.end(); } - reverse_iterator rbegin() { return _M_t.rbegin(); } - reverse_iterator rend() { return _M_t.rend(); } - const_reverse_iterator rbegin() const { return _M_t.rbegin(); } - const_reverse_iterator rend() const { return _M_t.rend(); } - bool empty() const { return _M_t.empty(); } - size_type size() const { return _M_t.size(); } - size_type max_size() const { return _M_t.max_size(); } - void swap(_Self& __x) { _M_t.swap(__x._M_t); } - - // insert/erase - pair<iterator,bool> insert(const value_type& __x) - { return _M_t.insert_unique(__x); } - iterator insert(iterator __pos, const value_type& __x) - { return _M_t.insert_unique( __pos , __x); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __first, _InputIterator __last) - { _M_t.insert_unique(__first, __last); } -#else - void insert(const_iterator __first, const_iterator __last) - { _M_t.insert_unique(__first, __last); } - void insert(const value_type* __first, const value_type* __last) - { _M_t.insert_unique(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - void erase(iterator __pos) { _M_t.erase( __pos ); } - size_type erase(const key_type& __x) { return _M_t.erase_unique(__x); } - void erase(iterator __first, iterator __last) { _M_t.erase(__first, __last ); } - void clear() { _M_t.clear(); } - - // set operations: - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __x) const { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __x) { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const - { return _M_t.find(__x) == _M_t.end() ? 0 : 1 ; } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __x) - { return _M_t.equal_range_unique(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __x) const - { return _M_t.equal_range_unique(__x); } -}; - -//Specific iterator traits creation -_STLP_CREATE_ITERATOR_TRAITS(MultisetTraitsT, Const_traits) - -template <class _Key, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Key) > -class multiset -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<multiset<_Key, _Compare, _Alloc> > -#endif -{ - typedef multiset<_Key, _Compare, _Alloc> _Self; -public: - // typedefs: - - typedef _Key key_type; - typedef _Key value_type; - typedef _Compare key_compare; - typedef _Compare value_compare; - -private: - //Specific iterator traits creation - typedef _STLP_PRIV _MultisetTraitsT<value_type> _MultisetTraits; - -public: - //Following typedef have to be public for __move_traits specialization. - typedef _STLP_PRIV _Rb_tree<key_type, key_compare, - value_type, _STLP_PRIV _Identity<value_type>, - _MultisetTraits, _Alloc> _Rep_type; - - typedef typename _Rep_type::pointer pointer; - typedef typename _Rep_type::const_pointer const_pointer; - typedef typename _Rep_type::reference reference; - typedef typename _Rep_type::const_reference const_reference; - typedef typename _Rep_type::iterator iterator; - typedef typename _Rep_type::const_iterator const_iterator; - typedef typename _Rep_type::reverse_iterator reverse_iterator; - typedef typename _Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Rep_type::size_type size_type; - typedef typename _Rep_type::difference_type difference_type; - typedef typename _Rep_type::allocator_type allocator_type; - -private: - _Rep_type _M_t; // red-black tree representing multiset - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit multiset(const _Compare& __comp = _Compare(), - const allocator_type& __a = allocator_type()) -#else - multiset() - : _M_t(_Compare(), allocator_type()) {} - explicit multiset(const _Compare& __comp) - : _M_t(__comp, allocator_type()) {} - multiset(const _Compare& __comp, const allocator_type& __a) -#endif - : _M_t(__comp, __a) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - multiset(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_equal(__first, __last); } - - template <class _InputIterator> - multiset(_InputIterator __first, _InputIterator __last, - const _Compare& __comp, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - multiset(_InputIterator __first, _InputIterator __last, - const _Compare& __comp) - : _M_t(__comp, allocator_type()) { _M_t.insert_equal(__first, __last); } -# endif -#else - multiset(const value_type* __first, const value_type* __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_equal(__first, __last); } - - multiset(const value_type* __first, const value_type* __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } - - multiset(const_iterator __first, const_iterator __last) - : _M_t(_Compare(), allocator_type()) - { _M_t.insert_equal(__first, __last); } - - multiset(const_iterator __first, const_iterator __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, __a) { _M_t.insert_equal(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - multiset(const _Self& __x) : _M_t(__x._M_t) {} - _Self& operator=(const _Self& __x) { - _M_t = __x._M_t; - return *this; - } - - multiset(__move_source<_Self> src) - : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {} - - // accessors: - key_compare key_comp() const { return _M_t.key_comp(); } - value_compare value_comp() const { return _M_t.key_comp(); } - allocator_type get_allocator() const { return _M_t.get_allocator(); } - - iterator begin() { return _M_t.begin(); } - iterator end() { return _M_t.end(); } - const_iterator begin() const { return _M_t.begin(); } - const_iterator end() const { return _M_t.end(); } - reverse_iterator rbegin() { return _M_t.rbegin(); } - reverse_iterator rend() { return _M_t.rend(); } - const_reverse_iterator rbegin() const { return _M_t.rbegin(); } - const_reverse_iterator rend() const { return _M_t.rend(); } - bool empty() const { return _M_t.empty(); } - size_type size() const { return _M_t.size(); } - size_type max_size() const { return _M_t.max_size(); } - void swap(_Self& __x) { _M_t.swap(__x._M_t); } - - // insert/erase - iterator insert(const value_type& __x) - { return _M_t.insert_equal(__x); } - iterator insert(iterator __pos, const value_type& __x) - { return _M_t.insert_equal(__pos, __x); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __first, _InputIterator __last) - { _M_t.insert_equal(__first, __last); } -#else - void insert(const value_type* __first, const value_type* __last) - { _M_t.insert_equal(__first, __last); } - void insert(const_iterator __first, const_iterator __last) - { _M_t.insert_equal(__first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - void erase(iterator __pos) { _M_t.erase( __pos ); } - size_type erase(const key_type& __x) { return _M_t.erase(__x); } - void erase(iterator __first, iterator __last) { _M_t.erase( __first, __last ); } - void clear() { _M_t.clear(); } - - // multiset operations: - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __x) { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __x) const { return _M_t.find(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const { return _M_t.count(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const { return _M_t.lower_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const { return _M_t.upper_bound(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __x) { return _M_t.equal_range(__x); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __x) const { return _M_t.equal_range(__x); } -}; - -#else -# include <stl/pointers/_set.h> -_STLP_BEGIN_NAMESPACE -#endif /* _STLP_USE_PTR_SPECIALIZATIONS */ - -#define _STLP_TEMPLATE_HEADER template <class _Key, class _Compare, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER set<_Key,_Compare,_Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#define _STLP_TEMPLATE_CONTAINER multiset<_Key,_Compare,_Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Key, class _Compare, class _Alloc> -struct __move_traits<set<_Key,_Compare,_Alloc> > : - _STLP_PRIV __move_traits_aux<typename set<_Key,_Compare,_Alloc>::_Rep_type> -{}; - -template <class _Key, class _Compare, class _Alloc> -struct __move_traits<multiset<_Key,_Compare,_Alloc> > : - _STLP_PRIV __move_traits_aux<typename multiset<_Key,_Compare,_Alloc>::_Rep_type> -{}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_SET_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_slist.c b/WebKit/android/stlport/stl/_slist.c deleted file mode 100644 index ba158d0..0000000 --- a/WebKit/android/stlport/stl/_slist.c +++ /dev/null @@ -1,231 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_SLIST_C -#define _STLP_SLIST_C - -#ifndef _STLP_INTERNAL_SLIST_H -# include <stl/_slist.h> -#endif - -#ifndef _STLP_CARRAY_H -# include <stl/_carray.h> -#endif - -#ifndef _STLP_RANGE_ERRORS_H -# include <stl/_range_errors.h> -#endif - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# define size_type size_t -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, class _Alloc> -_Slist_node_base* -_Slist_base<_Tp,_Alloc>::_M_erase_after(_Slist_node_base* __before_first, - _Slist_node_base* __last_node) { - _Slist_node_base* __cur = __before_first->_M_next; - while (__cur != __last_node) { - _Node* __tmp = __STATIC_CAST(_Node*, __cur); - __cur = __cur->_M_next; - _STLP_STD::_Destroy(&__tmp->_M_data); - _M_head.deallocate(__tmp,1); - } - __before_first->_M_next = __last_node; - return __last_node; -} - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define slist _STLP_PTR_IMPL_NAME(slist) -#elif defined (_STLP_DEBUG) -# define slist _STLP_NON_DBG_NAME(slist) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -/* When building STLport lib Digital Mars Compiler complains on the _M_data assignment - * problem which would be perfertly right if we were using it. Hiding it during build - * fix this issue. - */ -template <class _Tp, class _Alloc> -slist<_Tp,_Alloc>& slist<_Tp,_Alloc>::operator=(const slist<_Tp,_Alloc>& __x) { - if (&__x != this) { - _Node_base* __p1 = &this->_M_head._M_data; - _Node_base* __n1 = this->_M_head._M_data._M_next; - const _Node_base* __n2 = __x._M_head._M_data._M_next; - while (__n1 && __n2) { - __STATIC_CAST(_Node*, __n1)->_M_data = __STATIC_CAST(const _Node*, __n2)->_M_data; - __p1 = __n1; - __n1 = __n1->_M_next; - __n2 = __n2->_M_next; - } - if (__n2 == 0) - this->_M_erase_after(__p1, 0); - else - _M_insert_after_range(__p1, const_iterator(__CONST_CAST(_Node_base*, __n2)), - const_iterator(0)); - } - return *this; -} - -template <class _Tp, class _Alloc> -void slist<_Tp, _Alloc>::_M_fill_assign(size_type __n, const _Tp& __val) { - _Node_base* __prev = &this->_M_head._M_data; - _Node_base* __node = this->_M_head._M_data._M_next; - for ( ; __node != 0 && __n > 0 ; --__n) { - __STATIC_CAST(_Node*, __node)->_M_data = __val; - __prev = __node; - __node = __node->_M_next; - } - if (__n > 0) - _M_insert_after_fill(__prev, __n, __val); - else - this->_M_erase_after(__prev, 0); -} - -template <class _Tp, class _Alloc> -void slist<_Tp,_Alloc>::resize(size_type __len, const _Tp& __x) { - _Node_base* __cur = &this->_M_head._M_data; - while (__cur->_M_next != 0 && __len > 0) { - --__len; - __cur = __cur->_M_next; - } - if (__cur->_M_next) - this->_M_erase_after(__cur, 0); - else - _M_insert_after_fill(__cur, __len, __x); -} - -template <class _Tp, class _Alloc> -void slist<_Tp,_Alloc>::remove(const _Tp& __val) { - _Node_base* __cur = &this->_M_head._M_data; - while (__cur && __cur->_M_next) { - if (__STATIC_CAST(_Node*, __cur->_M_next)->_M_data == __val) - this->_M_erase_after(__cur); - else - __cur = __cur->_M_next; - } -} - -#if !defined (slist) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _Tp, class _Alloc, class _BinaryPredicate> -void _Slist_unique(slist<_Tp, _Alloc>& __that, _BinaryPredicate __pred) { - typedef _Slist_node<_Tp> _Node; - typename slist<_Tp, _Alloc>::iterator __ite(__that.begin()); - if (__ite != __that.end()) { - while (__ite._M_node->_M_next) { - if (__pred(*__ite, __STATIC_CAST(_Node*, __ite._M_node->_M_next)->_M_data)) - __that.erase_after(__ite); - else - ++__ite; - } - } -} - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _Slist_merge(slist<_Tp, _Alloc>& __that, slist<_Tp, _Alloc>& __x, - _StrictWeakOrdering __comp) { - typedef _Slist_node<_Tp> _Node; - typedef _STLP_PRIV _Slist_node_base _Node_base; - if (__that.get_allocator() == __x.get_allocator()) { - typename slist<_Tp, _Alloc>::iterator __ite(__that.before_begin()); - while (__ite._M_node->_M_next && !__x.empty()) { - if (__comp(__x.front(), __STATIC_CAST(_Node*, __ite._M_node->_M_next)->_M_data)) { - _STLP_VERBOSE_ASSERT(!__comp(__STATIC_CAST(_Node*, __ite._M_node->_M_next)->_M_data, __x.front()), - _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - __that.splice_after(__ite, __x, __x.before_begin()); - } - ++__ite; - } - if (!__x.empty()) { - __that.splice_after(__ite, __x); - } - } - else { - typename slist<_Tp, _Alloc>::iterator __i1(__that.before_begin()), __i2(__x.begin()); - while (__i1._M_node->_M_next && __i2._M_node) { - if (__comp(__STATIC_CAST(_Node*, __i1._M_node->_M_next)->_M_data, *__i2)) { - _STLP_VERBOSE_ASSERT(!__comp(*__i2, __STATIC_CAST(_Node*, __i1._M_node->_M_next)->_M_data), - _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - ++__i1; - } - else { - __i1 = __that.insert_after(__i1, *(__i2++)); - } - } - __that.insert_after(__i1, __i2, __x.end()); - __x.clear(); - } -} - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _Slist_sort(slist<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp) { - if (!__that.begin()._M_node || !__that.begin()._M_node->_M_next) - return; - - slist<_Tp, _Alloc> __carry(__that.get_allocator()); - const int NB = 64; - _STLP_PRIV _CArray<slist<_Tp, _Alloc>, NB> __counter(__carry); - int __fill = 0; - while (!__that.empty()) { - __carry.splice_after(__carry.before_begin(), __that, __that.before_begin()); - int __i = 0; - while (__i < __fill && !__counter[__i].empty()) { - _STLP_PRIV _Slist_merge(__counter[__i], __carry, __comp); - __carry.swap(__counter[__i]); - ++__i; - } - __carry.swap(__counter[__i]); - if (__i == __fill) { - ++__fill; - if (__fill >= NB) { - //Looks like the slist has too many elements to be sorted with this algorithm: - __stl_throw_overflow_error("slist::sort"); - } - } - } - - for (int __i = 1; __i < __fill; ++__i) - _STLP_PRIV _Slist_merge(__counter[__i], __counter[__i - 1], __comp); - __that.swap(__counter[__fill-1]); -} - -#if defined (slist) -# undef slist -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# undef size_type -#endif - -#endif /* _STLP_SLIST_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_slist.h b/WebKit/android/stlport/stl/_slist.h deleted file mode 100644 index b0d941a..0000000 --- a/WebKit/android/stlport/stl/_slist.h +++ /dev/null @@ -1,906 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_SLIST_H -#define _STLP_INTERNAL_SLIST_H - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#ifndef _STLP_INTERNAL_SLIST_BASE_H -# include <stl/_slist_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp> -class _Slist_node : public _Slist_node_base { -public: - _Tp _M_data; - __TRIVIAL_STUFF(_Slist_node) -}; - -struct _Slist_iterator_base { - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef forward_iterator_tag iterator_category; - - _Slist_node_base *_M_node; - - _Slist_iterator_base(_Slist_node_base *__x) : _M_node(__x) {} - - void _M_incr() { - _M_node = _M_node->_M_next; - } -}; - -template <class _Tp, class _Traits> -class _Slist_iterator : public _Slist_iterator_base { -public: - typedef typename _Traits::value_type value_type; - typedef typename _Traits::pointer pointer; - typedef typename _Traits::reference reference; - typedef forward_iterator_tag iterator_category; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - - typedef _Slist_iterator<_Tp, _Traits> _Self; - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef _Slist_iterator<_Tp, _NonConstTraits> iterator; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef _Slist_iterator<_Tp, _ConstTraits> const_iterator; - - typedef _Slist_node<value_type> _Node; - - explicit _Slist_iterator(_Slist_node_base *__x) : _Slist_iterator_base(__x) {} - _Slist_iterator() : _Slist_iterator_base(0) {} - //copy constructor for iterator and constructor from iterator for const_iterator - _Slist_iterator(const iterator& __x) : _Slist_iterator_base(__x._M_node) {} - - reference operator*() const { return __STATIC_CAST(_Node*, this->_M_node)->_M_data; } - - _STLP_DEFINE_ARROW_OPERATOR - - _Self& operator++() { - _M_incr(); - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - _M_incr(); - return __tmp; - } - - bool operator==(const_iterator __y ) const { - return this->_M_node == __y._M_node; - } - bool operator!=(const_iterator __y ) const { - return this->_M_node != __y._M_node; - } -}; - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Tp, class _Traits> -struct __type_traits<_STLP_PRIV _Slist_iterator<_Tp, _Traits> > { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Tp, class _Traits> -inline _Tp* _STLP_CALL value_type(const _STLP_PRIV _Slist_iterator<_Tp, _Traits>&) { return __STATIC_CAST(_Tp*, 0); } -inline ptrdiff_t* _STLP_CALL distance_type(const _STLP_PRIV _Slist_iterator_base&) { return 0; } -inline forward_iterator_tag _STLP_CALL iterator_category(const _STLP_PRIV _Slist_iterator_base&) { return forward_iterator_tag(); } -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* OLD_QUERIES */ - -// Base class that encapsulates details of allocators and simplifies EH -template <class _Tp, class _Alloc> -class _Slist_base { -protected: - typedef _Slist_node<_Tp> _Node; - typedef typename _Alloc_traits<_Node,_Alloc>::allocator_type _M_node_allocator_type; - typedef _Slist_base<_Tp, _Alloc> _Self; - -public: - typedef _STLP_alloc_proxy<_Slist_node_base, _Node, _M_node_allocator_type> _AllocProxy; - - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Alloc_traits<_Tp,_Alloc>::allocator_type allocator_type; - - _Slist_base(const allocator_type& __a) : - _M_head(_STLP_CONVERT_ALLOCATOR(__a, _Node), _Slist_node_base() ) { - _M_head._M_data._M_next = 0; - } - _Slist_base(__move_source<_Self> src) : - _M_head(__move_source<_AllocProxy>(src.get()._M_head)) { - src.get()._M_head._M_data._M_next = 0; - } - ~_Slist_base() { _M_erase_after(&_M_head._M_data, 0); } - -protected: - _Slist_node_base* _M_erase_after(_Slist_node_base* __pos) { - _Node* __next = __STATIC_CAST(_Node*, __pos->_M_next); - _Slist_node_base* __next_next = __next->_M_next; - __pos->_M_next = __next_next; - _STLP_STD::_Destroy(&__next->_M_data); - _M_head.deallocate(__next,1); - return __next_next; - } - _Slist_node_base* _M_erase_after(_Slist_node_base*, _Slist_node_base*); - -public: - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR((const _M_node_allocator_type&)_M_head, _Tp); } - _AllocProxy _M_head; -}; - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define slist _STLP_PTR_IMPL_NAME(slist) -#elif defined (_STLP_DEBUG) -# define slist _STLP_NON_DBG_NAME(slist) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class slist; - -#if !defined (slist) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -// helper functions to reduce code duplication -template <class _Tp, class _Alloc, class _BinaryPredicate> -void _Slist_unique(slist<_Tp, _Alloc>& __that, _BinaryPredicate __binary_pred); - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _Slist_merge(slist<_Tp, _Alloc>& __that, slist<_Tp, _Alloc>& __x, - _StrictWeakOrdering __comp); - -template <class _Tp, class _Alloc, class _StrictWeakOrdering> -void _Slist_sort(slist<_Tp, _Alloc>& __that, _StrictWeakOrdering __comp); - -#if !defined (slist) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, class _Alloc> -class slist : protected _STLP_PRIV _Slist_base<_Tp,_Alloc> -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (slist) - , public __stlport_class<slist<_Tp, _Alloc> > -#endif -{ -private: - typedef _STLP_PRIV _Slist_base<_Tp,_Alloc> _Base; - typedef slist<_Tp,_Alloc> _Self; -public: - typedef _Tp value_type; - - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef forward_iterator_tag _Iterator_category; - - typedef _STLP_PRIV _Slist_iterator<_Tp, _Nonconst_traits<_Tp> > iterator; - typedef _STLP_PRIV _Slist_iterator<_Tp, _Const_traits<_Tp> > const_iterator; - - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Base::allocator_type allocator_type; - -private: - typedef _STLP_PRIV _Slist_node<_Tp> _Node; - typedef _STLP_PRIV _Slist_node_base _Node_base; - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - _Node* _M_create_node(const value_type& __x = _Tp()) { -#else - _Node* _M_create_node(const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - _Node* __node = this->_M_head.allocate(1); - _STLP_TRY { - _Copy_Construct(&__node->_M_data, __x); - __node->_M_next = 0; - } - _STLP_UNWIND(this->_M_head.deallocate(__node, 1)) - return __node; - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - _Node* _M_create_node() { - _Node* __node = this->_M_head.allocate(1); - _STLP_TRY { - _STLP_STD::_Construct(&__node->_M_data); - __node->_M_next = 0; - } - _STLP_UNWIND(this->_M_head.deallocate(__node, 1)) - return __node; - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -public: - - allocator_type get_allocator() const { return _Base::get_allocator(); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit slist(const allocator_type& __a = allocator_type()) -#else - slist() - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type()) {} - slist(const allocator_type& __a) -#endif - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a) {} - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit slist(size_type __n, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp), - const allocator_type& __a = allocator_type()) -#else - explicit slist(size_type __n) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type()) - { _M_insert_after_fill(&this->_M_head._M_data, __n, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } - slist(size_type __n, const value_type& __x) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type()) - { _M_insert_after_fill(&this->_M_head._M_data, __n, __x); } - slist(size_type __n, const value_type& __x, const allocator_type& __a) -#endif - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a) - { _M_insert_after_fill(&this->_M_head._M_data, __n, __x); } - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because _M_insert_after_range - // already does them. - template <class _InputIterator> - slist(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a) - { _M_insert_after_range(&this->_M_head._M_data, __first, __last); } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - // VC++ needs this crazyness - template <class _InputIterator> - slist(_InputIterator __first, _InputIterator __last) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(allocator_type()) - { _M_insert_after_range(&this->_M_head._M_data, __first, __last); } -# endif -#else /* _STLP_MEMBER_TEMPLATES */ - slist(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type() ) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a) - { _M_insert_after_range(&this->_M_head._M_data, __first, __last); } - slist(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__a) - { _M_insert_after_range(&this->_M_head._M_data, __first, __last); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - slist(const _Self& __x) - : _STLP_PRIV _Slist_base<_Tp,_Alloc>(__x.get_allocator()) - { _M_insert_after_range(&this->_M_head._M_data, __x.begin(), __x.end()); } - - slist(__move_source<_Self> src) - : _STLP_PRIV _Slist_base<_Tp, _Alloc>(__move_source<_Base>(src.get())) {} - - _Self& operator= (const _Self& __x); - - ~slist() {} - -public: - // assign(), a generalized assignment member function. Two - // versions: one that takes a count, and one that takes a range. - // The range version is a member template, so we dispatch on whether - // or not the type is an integer. - - void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); } - -private: - void _M_fill_assign(size_type __n, const _Tp& __val); - -#if defined (_STLP_MEMBER_TEMPLATES) -public: - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } - -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) { - _M_fill_assign((size_type) __n, (_Tp) __val); - } - - template <class _InputIter> - void _M_assign_dispatch(_InputIter __first, _InputIter __last, - const __false_type& /*_IsIntegral*/) { -#else -public: - void assign(const_pointer __first, const_pointer __last) { - _Node_base* __prev = &this->_M_head._M_data; - _Node_base* __node = this->_M_head._M_data._M_next; - while (__node != 0 && __first != __last) { - __STATIC_CAST(_Node*, __node)->_M_data = *__first; - __prev = __node; - __node = __node->_M_next; - ++__first; - } - if (__first != __last) - _M_insert_after_range(__prev, __first, __last); - else - this->_M_erase_after(__prev, 0); - } - void assign(const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - _Node_base* __prev = &this->_M_head._M_data; - _Node_base* __node = this->_M_head._M_data._M_next; - while (__node != 0 && __first != __last) { - __STATIC_CAST(_Node*, __node)->_M_data = *__first; - __prev = __node; - __node = __node->_M_next; - ++__first; - } - if (__first != __last) - _M_insert_after_range(__prev, __first, __last); - else - this->_M_erase_after(__prev, 0); - } - -public: - - // Experimental new feature: before_begin() returns a - // non-dereferenceable iterator that, when incremented, yields - // begin(). This iterator may be used as the argument to - // insert_after, erase_after, etc. Note that even for an empty - // slist, before_begin() is not the same iterator as end(). It - // is always necessary to increment before_begin() at least once to - // obtain end(). - iterator before_begin() { return iterator(&this->_M_head._M_data); } - const_iterator before_begin() const - { return const_iterator(__CONST_CAST(_Node_base*, &this->_M_head._M_data)); } - - iterator begin() { return iterator(this->_M_head._M_data._M_next); } - const_iterator begin() const - { return const_iterator(this->_M_head._M_data._M_next);} - - iterator end() { return iterator(); } - const_iterator end() const { return const_iterator(); } - - size_type size() const - { return _STLP_PRIV _Sl_global_inst::size(this->_M_head._M_data._M_next); } - - size_type max_size() const { return size_type(-1); } - - bool empty() const { return this->_M_head._M_data._M_next == 0; } - - void swap(_Self& __x) { - this->_M_head.swap(__x._M_head); - } - -public: - reference front() { return *begin(); } - const_reference front() const { return *begin(); } -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_front(const value_type& __x = _Tp()) { -#else - void push_front(const value_type& __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - _STLP_PRIV __slist_make_link(&this->_M_head._M_data, _M_create_node(__x)); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_front() { _STLP_PRIV __slist_make_link(&this->_M_head._M_data, _M_create_node());} -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void pop_front() { - _Node* __node = __STATIC_CAST(_Node*, this->_M_head._M_data._M_next); - this->_M_head._M_data._M_next = __node->_M_next; - _STLP_STD::_Destroy(&__node->_M_data); - this->_M_head.deallocate(__node, 1); - } - - iterator previous(const_iterator __pos) { - return iterator(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node)); - } - const_iterator previous(const_iterator __pos) const { - return const_iterator(__CONST_CAST(_Node_base*, - _STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, - __pos._M_node))); - } - -private: -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - _Node* _M_insert_after(_Node_base* __pos, const value_type& __x = _Tp()) { -#else - _Node* _M_insert_after(_Node_base* __pos, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - return __STATIC_CAST(_Node*, _STLP_PRIV __slist_make_link(__pos, _M_create_node(__x))); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - _Node* _M_insert_after(_Node_base* __pos) { - return __STATIC_CAST(_Node*, _STLP_PRIV __slist_make_link(__pos, _M_create_node())); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void _M_insert_after_fill(_Node_base* __pos, - size_type __n, const value_type& __x) { - for (size_type __i = 0; __i < __n; ++__i) - __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(__x)); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InIter> - void _M_insert_after_range(_Node_base* __pos, - _InIter __first, _InIter __last) { - typedef typename _IsIntegral<_InIter>::_Ret _Integral; - _M_insert_after_range(__pos, __first, __last, _Integral()); - } - - template <class _Integer> - void _M_insert_after_range(_Node_base* __pos, _Integer __n, _Integer __x, - const __true_type&) { - _M_insert_after_fill(__pos, __n, __x); - } - - template <class _InIter> - void _M_insert_after_range(_Node_base* __pos, - _InIter __first, _InIter __last, - const __false_type&) { -#else /* _STLP_MEMBER_TEMPLATES */ - void _M_insert_after_range(_Node_base* __pos, - const value_type* __first, - const value_type* __last) { - while (__first != __last) { - __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first)); - ++__first; - } - } - void _M_insert_after_range(_Node_base* __pos, - const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - while (__first != __last) { - __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first)); - ++__first; - } - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InIter> - void _M_splice_after_range(_Node_base* __pos, - _InIter __first, _InIter __last) { - typedef typename _IsIntegral<_InIter>::_Ret _Integral; - _M_splice_after_range(__pos, __first, __last, _Integral()); - } - - template <class _Integer> - void _M_splice_after_range(_Node_base* __pos, _Integer __n, _Integer __x, - const __true_type&) { - _M_insert_after_fill(__pos, __n, __x); - } - - template <class _InIter> - void _M_splice_after_range(_Node_base* __pos, - _InIter __first, _InIter __last, - const __false_type&) { -#else /* _STLP_MEMBER_TEMPLATES */ - void _M_splice_after_range(_Node_base* __pos, - const value_type* __first, - const value_type* __last) { - while (__first != __last) { - __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first)); - ++__first; - } - } - void _M_splice_after_range(_Node_base* __pos, - const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - //We use a temporary slist to avoid the auto reference troubles (infinite loop) - _Self __tmp(__first, __last, this->get_allocator()); - splice_after(iterator(__pos), __tmp); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InIter> - void _M_splice_range(_Node_base* __pos, - _InIter __first, _InIter __last) { - typedef typename _IsIntegral<_InIter>::_Ret _Integral; - _M_splice_range(__pos, __first, __last, _Integral()); - } - - template <class _Integer> - void _M_splice_range(_Node_base* __pos, _Integer __n, _Integer __x, - const __true_type&) { - _M_insert_after_fill(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos), - __n, __x); - } - - template <class _InIter> - void _M_splice_range(_Node_base* __pos, - _InIter __first, _InIter __last, - const __false_type&) { -#else /* _STLP_MEMBER_TEMPLATES */ - void _M_splice_range(_Node_base* __pos, - const value_type* __first, - const value_type* __last) { - while (__first != __last) { - __pos = _STLP_PRIV __slist_make_link(__pos, _M_create_node(*__first)); - ++__first; - } - } - void _M_splice_range(_Node_base* __pos, - const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - //We use a temporary slist to avoid the auto reference troubles (infinite loop) - _Self __tmp(__first, __last, this->get_allocator()); - splice(iterator(__pos), __tmp); - } - -public: - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert_after(iterator __pos, const value_type& __x = _Tp()) { -#else - iterator insert_after(iterator __pos, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - return iterator(_M_insert_after(__pos._M_node, __x)); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert_after(iterator __pos) { - return insert_after(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void insert_after(iterator __pos, size_type __n, const value_type& __x) { - _M_insert_after_fill(__pos._M_node, __n, __x); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because _M_insert_after_range - // already does them. - template <class _InIter> - void insert_after(iterator __pos, _InIter __first, _InIter __last) { -#else /* _STLP_MEMBER_TEMPLATES */ - void insert_after(iterator __pos, - const value_type* __first, const value_type* __last) { - _M_insert_after_range(__pos._M_node, __first, __last); - } - void insert_after(iterator __pos, - const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - _M_splice_after_range(__pos._M_node, __first, __last); - } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos, const value_type& __x = _Tp()) { -#else - iterator insert(iterator __pos, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - return iterator(_M_insert_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), - __x)); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos) { - return iterator(_M_insert_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), - _STLP_DEFAULT_CONSTRUCTED(_Tp))); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void insert(iterator __pos, size_type __n, const value_type& __x) { - _M_insert_after_fill(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), __n, __x); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because _M_insert_after_range - // already does them. - template <class _InIter> - void insert(iterator __pos, _InIter __first, _InIter __last) { -#else /* _STLP_MEMBER_TEMPLATES */ - void insert(iterator __pos, const value_type* __first, - const value_type* __last) { - _M_insert_after_range(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), - __first, __last); - } - void insert(iterator __pos, const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - _M_splice_range(__pos._M_node, __first, __last); - } - -public: - iterator erase_after(iterator __pos) - { return iterator(this->_M_erase_after(__pos._M_node)); } - iterator erase_after(iterator __before_first, iterator __last) - { return iterator(this->_M_erase_after(__before_first._M_node, __last._M_node)); } - - iterator erase(iterator __pos) - { return iterator(this->_M_erase_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node))); } - iterator erase(iterator __first, iterator __last) - { return iterator(this->_M_erase_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __first._M_node), __last._M_node)); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type new_size, const value_type& __x = _Tp()); -#else - void resize(size_type new_size, const value_type& __x); -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type new_size) { resize(new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void clear() - { this->_M_erase_after(&this->_M_head._M_data, 0); } - -public: - // Moves the range [__before_first + 1, __before_last + 1) to *this, - // inserting it immediately after __pos. This is constant time. - void splice_after(iterator __pos, _Self& __x, - iterator __before_first, iterator __before_last) { - if (__before_first != __before_last) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node, - __before_first._M_node, __before_last._M_node); - } - else { - this->insert_after(__pos, iterator(__before_first._M_node->_M_next), iterator(__before_last._M_node->_M_next)); - __x.erase_after(__before_first, ++__before_last); - } - } - } - - // Moves the element that follows __prev to *this, inserting it immediately - // after __pos. This is constant time. - void splice_after(iterator __pos, _Self& __x, iterator __prev) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node, - __prev._M_node, __prev._M_node->_M_next); - } - else { - this->insert_after(__pos, __STATIC_CAST(_Node*, __prev._M_node->_M_next)->_M_data); - __x.erase_after(__prev); - } - } - - // Removes all of the elements from the list __x to *this, inserting - // them immediately after __pos. __x must not be *this. Complexity: - // linear in __x.size(). - void splice_after(iterator __pos, _Self& __x) { - if (this->get_allocator() == __x.get_allocator()) - _STLP_PRIV _Sl_global_inst::__splice_after(__pos._M_node, &__x._M_head._M_data); - else { - this->insert_after(__pos, __x.begin(), __x.end()); - __x.clear(); - } - } - - // Linear in distance(begin(), __pos), and linear in __x.size(). - void splice(iterator __pos, _Self& __x) { - if (__x._M_head._M_data._M_next) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _Sl_global_inst::__splice_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), - &__x._M_head._M_data, - _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, 0)); - } - else { - insert(__pos, __x.begin(), __x.end()); - __x.clear(); - } - } - } - - // Linear in distance(begin(), __pos), and in distance(__x.begin(), __i). - void splice(iterator __pos, _Self& __x, iterator __i) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _Sl_global_inst::__splice_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), - _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, __i._M_node), - __i._M_node); - } - else { - insert(__pos, *__i); - __x.erase(__i); - } - } - - // Linear in distance(begin(), __pos), in distance(__x.begin(), __first), - // and in distance(__first, __last). - void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) { - if (__first != __last) { - if (this->get_allocator() == __x.get_allocator()) { - _STLP_PRIV _Sl_global_inst::__splice_after(_STLP_PRIV _Sl_global_inst::__previous(&this->_M_head._M_data, __pos._M_node), - _STLP_PRIV _Sl_global_inst::__previous(&__x._M_head._M_data, __first._M_node), - _STLP_PRIV _Sl_global_inst::__previous(__first._M_node, __last._M_node)); - } - else { - insert(__pos, __first, __last); - __x.erase(__first, __last); - } - } - } - -public: - void reverse() { - if (this->_M_head._M_data._M_next) - this->_M_head._M_data._M_next = _STLP_PRIV _Sl_global_inst::__reverse(this->_M_head._M_data._M_next); - } - - void remove(const _Tp& __val); - - void unique() { _STLP_PRIV _Slist_unique(*this, equal_to<value_type>()); } - void merge(_Self& __x) { _STLP_PRIV _Slist_merge(*this, __x, less<value_type>()); } - void sort() { _STLP_PRIV _Slist_sort(*this, less<value_type>()); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Predicate> - void remove_if(_Predicate __pred) { - _Node_base* __cur = &this->_M_head._M_data; - while (__cur->_M_next) { - if (__pred(__STATIC_CAST(_Node*, __cur->_M_next)->_M_data)) - this->_M_erase_after(__cur); - else - __cur = __cur->_M_next; - } - } - - template <class _BinaryPredicate> - void unique(_BinaryPredicate __pred) - { _STLP_PRIV _Slist_unique(*this, __pred); } - - template <class _StrictWeakOrdering> - void merge(_Self& __x, _StrictWeakOrdering __comp) - { _STLP_PRIV _Slist_merge(*this, __x, __comp); } - - template <class _StrictWeakOrdering> - void sort(_StrictWeakOrdering __comp) - { _STLP_PRIV _Slist_sort(*this, __comp); } -#endif /* _STLP_MEMBER_TEMPLATES */ -}; - -#if defined (slist) -# undef slist -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_slist.c> -#endif - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# include <stl/pointers/_slist.h> -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_slist.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp, class _Alloc> -inline bool _STLP_CALL -operator == (const slist<_Tp,_Alloc>& _SL1, const slist<_Tp,_Alloc>& _SL2) { - typedef typename slist<_Tp,_Alloc>::const_iterator const_iterator; - const_iterator __end1 = _SL1.end(); - const_iterator __end2 = _SL2.end(); - - const_iterator __i1 = _SL1.begin(); - const_iterator __i2 = _SL2.begin(); - while (__i1 != __end1 && __i2 != __end2 && *__i1 == *__i2) { - ++__i1; - ++__i2; - } - return __i1 == __end1 && __i2 == __end2; -} - -#define _STLP_EQUAL_OPERATOR_SPECIALIZED -#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER slist<_Tp, _Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER -#undef _STLP_EQUAL_OPERATOR_SPECIALIZED - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp, class _Alloc> -struct __move_traits<slist<_Tp, _Alloc> > { - typedef __stlp_movable implemented; - typedef typename __move_traits<_Alloc>::complete complete; -}; - -// Specialization of insert_iterator so that insertions will be constant -// time rather than linear time. -template <class _Tp, class _Alloc> -class insert_iterator<slist<_Tp, _Alloc> > { -protected: - typedef slist<_Tp, _Alloc> _Container; - _Container* _M_container; - typename _Container::iterator _M_iter; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x, typename _Container::iterator __i) - : _M_container(&__x) { - if (__i == __x.begin()) - _M_iter = __x.before_begin(); - else - _M_iter = __x.previous(__i); - } - - insert_iterator<_Container>& - operator = (const typename _Container::value_type& __val) { - _M_iter = _M_container->insert_after(_M_iter, __val); - return *this; - } - - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_SLIST_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_slist_base.c b/WebKit/android/stlport/stl/_slist_base.c deleted file mode 100644 index e0e68c9..0000000 --- a/WebKit/android/stlport/stl/_slist_base.c +++ /dev/null @@ -1,104 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_SLIST_BASE_C -#define _STLP_SLIST_BASE_C - -#ifndef _STLP_INTERNAL_SLIST_BASE_H -# include <stl/_slist_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Dummy> -_Slist_node_base* _STLP_CALL -_Sl_global<_Dummy>::__previous(_Slist_node_base* __head, - const _Slist_node_base* __node) { - while (__head && __head->_M_next != __node) - __head = __head->_M_next; - return __head; -} - -template <class _Dummy> -void _STLP_CALL -_Sl_global<_Dummy>::__splice_after(_Slist_node_base* __pos, _Slist_node_base* __head) { - _Slist_node_base* __before_last = __previous(__head, 0); - if (__before_last != __head) { - _Slist_node_base* __after = __pos->_M_next; - __pos->_M_next = __head->_M_next; - __head->_M_next = 0; - __before_last->_M_next = __after; - } -} - -template <class _Dummy> -void _STLP_CALL -_Sl_global<_Dummy>::__splice_after(_Slist_node_base* __pos, - _Slist_node_base* __before_first, - _Slist_node_base* __before_last) { - if (__pos != __before_first && __pos != __before_last) { - _Slist_node_base* __first = __before_first->_M_next; - _Slist_node_base* __after = __pos->_M_next; - __before_first->_M_next = __before_last->_M_next; - __pos->_M_next = __first; - __before_last->_M_next = __after; - } -} - -template <class _Dummy> -_Slist_node_base* _STLP_CALL -_Sl_global<_Dummy>::__reverse(_Slist_node_base* __node) { - _Slist_node_base* __result = __node; - __node = __node->_M_next; - __result->_M_next = 0; - while(__node) { - _Slist_node_base* __next = __node->_M_next; - __node->_M_next = __result; - __result = __node; - __node = __next; - } - return __result; -} - -template <class _Dummy> -size_t _STLP_CALL -_Sl_global<_Dummy>::size(_Slist_node_base* __node) { - size_t __result = 0; - for ( ; __node != 0; __node = __node->_M_next) - ++__result; - return __result; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_SLIST_BASE_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_slist_base.h b/WebKit/android/stlport/stl/_slist_base.h deleted file mode 100644 index 3afa18a..0000000 --- a/WebKit/android/stlport/stl/_slist_base.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_SLIST_BASE_H -#define _STLP_INTERNAL_SLIST_BASE_H - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -struct _Slist_node_base { - _Slist_node_base* _M_next; -}; - -inline _Slist_node_base* -__slist_make_link(_Slist_node_base* __prev_node, - _Slist_node_base* __new_node) { - __new_node->_M_next = __prev_node->_M_next; - __prev_node->_M_next = __new_node; - return __new_node; -} - - -template <class _Dummy> -class _Sl_global { -public: - // those used to be global functions - // moved here to reduce code bloat without templatizing _Slist_iterator_base - static size_t _STLP_CALL size(_Slist_node_base* __node); - static _Slist_node_base* _STLP_CALL __reverse(_Slist_node_base* __node); - static void _STLP_CALL __splice_after(_Slist_node_base* __pos, - _Slist_node_base* __before_first, - _Slist_node_base* __before_last); - - static void _STLP_CALL __splice_after(_Slist_node_base* __pos, _Slist_node_base* __head); - - static _Slist_node_base* _STLP_CALL __previous(_Slist_node_base* __head, - const _Slist_node_base* __node); - static const _Slist_node_base* _STLP_CALL __previous(const _Slist_node_base* __head, - const _Slist_node_base* __node) { - return _Sl_global<_Dummy>::__previous(__CONST_CAST(_Slist_node_base*, __head), __node); - } -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _Sl_global<bool>; -#endif - -typedef _Sl_global<bool> _Sl_global_inst; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) && defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) -# include <stl/_slist_base.c> -#endif - -#endif /* _STLP_INTERNAL_SLIST_BASE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_sparc_atomic.h b/WebKit/android/stlport/stl/_sparc_atomic.h deleted file mode 100644 index 40d10f3..0000000 --- a/WebKit/android/stlport/stl/_sparc_atomic.h +++ /dev/null @@ -1,62 +0,0 @@ - -// Currently, SUN CC requires object file - -#if defined (__GNUC__) - -/* -** int _STLP_atomic_exchange (__stl_atomic_t *pvalue, __stl_atomic_t value) -*/ - -# if defined(__sparc_v9__) || defined (__sparcv9) - -# ifdef __arch64__ - -# define _STLP_EXCH_ASM asm volatile ("casx [%3], %4, %0 ; membar #LoadLoad | #LoadStore " : \ - "=r" (_L_value2), "=m" (*_L_pvalue1) : \ - "m" (*_L_pvalue1), "r" (_L_pvalue1), "r" (_L_value1), "0" (_L_value2) ) - -# else /* __arch64__ */ - -# define _STLP_EXCH_ASM asm volatile ("cas [%3], %4, %0" : \ - "=r" (_L_value2), "=m" (*_L_pvalue1) : \ - "m" (*_L_pvalue1), "r" (_L_pvalue1), "r" (_L_value1), "0" (_L_value2) ) -# endif - -# else /* __sparc_v9__ */ - -# define _STLP_EXCH_ASM asm volatile ("swap [%3], %0 " : \ - "=r" (_L_value2), "=m" (*_L_pvalue1) : \ - "m" (*_L_pvalue1), "r" (_L_pvalue1), "0" (_L_value2) ) -# endif - - -# define _STLP_ATOMIC_EXCHANGE(__pvalue1, __value2) \ - ({ register volatile __stl_atomic_t *_L_pvalue1 = __pvalue1; \ - register __stl_atomic_t _L_value1, _L_value2 = __value2 ; \ - do { _L_value1 = *_L_pvalue1; _STLP_EXCH_ASM; } while ( _L_value1 != _L_value2 ) ; \ - _L_value1; }) - -# define _STLP_ATOMIC_INCREMENT(__pvalue1) \ - ({ register volatile __stl_atomic_t *_L_pvalue1 = __pvalue1; \ - register __stl_atomic_t _L_value1, _L_value2; \ - do { _L_value1 = *_L_pvalue1; _L_value2 = _L_value1+1; _STLP_EXCH_ASM; } while ( _L_value1 != _L_value2 ) ; \ - (_L_value2 + 1); }) - -# define _STLP_ATOMIC_DECREMENT(__pvalue1) \ - ({ register volatile __stl_atomic_t *_L_pvalue1 = __pvalue1; \ - register __stl_atomic_t _L_value1, _L_value2; \ - do { _L_value1 = *_L_pvalue1; _L_value2 = _L_value1-1; _STLP_EXCH_ASM; } while ( _L_value1 != _L_value2 ) ; \ - (_L_value2 - 1); }) - -# elif ! defined (_STLP_NO_EXTERN_INLINE) - -extern "C" __stl_atomic_t _STLP_atomic_exchange(__stl_atomic_t * __x, __stl_atomic_t __v); -extern "C" void _STLP_atomic_decrement(__stl_atomic_t* i); -extern "C" void _STLP_atomic_increment(__stl_atomic_t* i); - -# define _STLP_ATOMIC_INCREMENT(__x) _STLP_atomic_increment((__stl_atomic_t*)__x) -# define _STLP_ATOMIC_DECREMENT(__x) _STLP_atomic_decrement((__stl_atomic_t*)__x) -# define _STLP_ATOMIC_EXCHANGE(__x, __y) _STLP_atomic_exchange((__stl_atomic_t*)__x, (__stl_atomic_t)__y) - -# endif - diff --git a/WebKit/android/stlport/stl/_sstream.c b/WebKit/android/stlport/stl/_sstream.c deleted file mode 100644 index cbf439f..0000000 --- a/WebKit/android/stlport/stl/_sstream.c +++ /dev/null @@ -1,536 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_SSTREAM_C -#define _STLP_SSTREAM_C - -#ifndef _STLP_INTERNAL_SSTREAM -# include <stl/_sstream.h> -#endif - -#if defined ( _STLP_NESTED_TYPE_PARAM_BUG ) -// no wint_t is supported for this mode -# define __BSB_int_type__ int -# define __BSB_pos_type__ streampos -#else -# define __BSB_int_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_stringbuf<_CharT, _Traits, _Alloc>::int_type -# define __BSB_pos_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_stringbuf<_CharT, _Traits, _Alloc>::pos_type -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Non-inline stringbuf member functions. - -// Constructors. Note that the base class constructor sets all of the -// get and area pointers to null. - -template <class _CharT, class _Traits, class _Alloc> -basic_stringbuf<_CharT, _Traits, _Alloc> - ::basic_stringbuf(ios_base::openmode __mode) - : basic_streambuf<_CharT, _Traits>(), _M_mode(__mode), _M_str() -{} - -template <class _CharT, class _Traits, class _Alloc> -basic_stringbuf<_CharT, _Traits, _Alloc> - ::basic_stringbuf(const basic_string<_CharT, _Traits, _Alloc>& __s, ios_base::openmode __mode) - : basic_streambuf<_CharT, _Traits>(), _M_mode(__mode), _M_str(__s) -{ - _M_set_ptrs(); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_stringbuf<_CharT, _Traits, _Alloc>::~basic_stringbuf() -{} - -// Set the underlying string to a new value. -template <class _CharT, class _Traits, class _Alloc> -void -basic_stringbuf<_CharT, _Traits, _Alloc>::str(const basic_string<_CharT, _Traits, _Alloc>& __s) -{ - _M_str = __s; - _M_set_ptrs(); -} - -template <class _CharT, class _Traits, class _Alloc> -void -basic_stringbuf<_CharT, _Traits, _Alloc>::_M_set_ptrs() { - _CharT* __data_ptr = __CONST_CAST(_CharT*,_M_str.data()); - _CharT* __data_end = __data_ptr + _M_str.size(); - // The initial read position is the beginning of the string. - if (_M_mode & ios_base::in) { - if (_M_mode & ios_base::ate) - this->setg(__data_ptr, __data_end, __data_end); - else - this->setg(__data_ptr, __data_ptr, __data_end); - } - - // The initial write position is the beginning of the string. - if (_M_mode & ios_base::out) { - if (_M_mode & (ios_base::app | ios_base::ate)) - this->setp(__data_end, __data_end); - else - this->setp(__data_ptr, __data_end); - } -} - -// Precondition: gptr() >= egptr(). Returns a character, if one is available. -template <class _CharT, class _Traits, class _Alloc> -__BSB_int_type__ -basic_stringbuf<_CharT, _Traits, _Alloc>::underflow() { - return this->gptr() != this->egptr() - ? _Traits::to_int_type(*this->gptr()) - : _Traits::eof(); -} - -// Precondition: gptr() >= egptr(). -template <class _CharT, class _Traits, class _Alloc> -__BSB_int_type__ -basic_stringbuf<_CharT, _Traits, _Alloc>::uflow() { - if (this->gptr() != this->egptr()) { - int_type __c = _Traits::to_int_type(*this->gptr()); - this->gbump(1); - return __c; - } - else - return _Traits::eof(); -} - -template <class _CharT, class _Traits, class _Alloc> -__BSB_int_type__ -basic_stringbuf<_CharT, _Traits, _Alloc>::pbackfail(int_type __c) { - if (this->gptr() != this->eback()) { - if (!_Traits::eq_int_type(__c, _Traits::eof())) { - if (_Traits::eq(_Traits::to_char_type(__c), this->gptr()[-1])) { - this->gbump(-1); - return __c; - } - else if (_M_mode & ios_base::out) { - this->gbump(-1); - *this->gptr() = _Traits::to_char_type(__c); - return __c; - } - else - return _Traits::eof(); - } - else { - this->gbump(-1); - return _Traits::not_eof(__c); - } - } - else - return _Traits::eof(); -} - -template <class _CharT, class _Traits, class _Alloc> -__BSB_int_type__ -basic_stringbuf<_CharT, _Traits, _Alloc>::overflow(int_type __c) { - // fbp : reverse order of "ifs" to pass Dietmar's test. - // Apparently, standard allows overflow with eof even for read-only streams. - if (!_Traits::eq_int_type(__c, _Traits::eof())) { - if (_M_mode & ios_base::out) { - if (!(_M_mode & ios_base::in)) { - // It's a write-only streambuf, so we can use special append buffer. - if (this->pptr() == this->epptr()) - this->_M_append_buffer(); - - if (this->pptr() != this->epptr()) { - *this->pptr() = _Traits::to_char_type(__c); - this->pbump(1); - return __c; - } - else - return _Traits::eof(); - } - else { - // We're not using a special append buffer, just the string itself. - if (this->pptr() == this->epptr()) { - ptrdiff_t __offset = this->gptr() - this->eback(); - _M_str.push_back(_Traits::to_char_type(__c)); - - _CharT* __data_ptr = __CONST_CAST(_CharT*,_M_str.data()); - size_t __data_size = _M_str.size(); - - this->setg(__data_ptr, __data_ptr + __offset, __data_ptr+__data_size); - this->setp(__data_ptr, __data_ptr + __data_size); - this->pbump((int)__data_size); - return __c; - } - else { - *this->pptr() = _Traits::to_char_type(__c); - this->pbump(1); - return __c; - } - } - } - else // Overflow always fails if it's read-only - return _Traits::eof(); - } - else // __c is EOF, so we don't have to do anything - return _Traits::not_eof(__c); -} - -template <class _CharT, class _Traits, class _Alloc> -streamsize -basic_stringbuf<_CharT, _Traits, _Alloc>::xsputn(const char_type* __s, - streamsize __n) { - streamsize __nwritten = 0; - - if ((_M_mode & ios_base::out) && __n > 0) { - // If the put pointer is somewhere in the middle of the string, - // then overwrite instead of append. - if (this->pbase() == _M_str.data() ) { - ptrdiff_t __avail = _M_str.data() + _M_str.size() - this->pptr(); - if (__avail > __n) { - _Traits::copy(this->pptr(), __s, __STATIC_CAST(size_t, __n)); - this->pbump((int)__n); - return __n; - } - else { - _Traits::copy(this->pptr(), __s, __avail); - __nwritten += __avail; - __n -= __avail; - __s += __avail; - this->setp(_M_Buf, _M_Buf + __STATIC_CAST(int,_S_BufSiz)); - } - } - - // At this point we know we're appending. - if (_M_mode & ios_base::in) { - ptrdiff_t __get_offset = this->gptr() - this->eback(); - _M_str.append(__s, __s + __STATIC_CAST(ptrdiff_t, __n)); - - _CharT* __data_ptr = __CONST_CAST(_CharT*, _M_str.data()); - size_t __data_size = _M_str.size(); - - this->setg(__data_ptr, __data_ptr + __get_offset, __data_ptr + __data_size); - this->setp(__data_ptr, __data_ptr + __data_size); - this->pbump((int)__data_size); - } - else { - _M_append_buffer(); - _M_str.append(__s, __s + __STATIC_CAST(ptrdiff_t, __n)); - } - - __nwritten += __n; - } - - return __nwritten; -} - -template <class _CharT, class _Traits, class _Alloc> -streamsize -basic_stringbuf<_CharT, _Traits, _Alloc>::_M_xsputnc(char_type __c, - streamsize __n) { - streamsize __nwritten = 0; - - if ((_M_mode & ios_base::out) && __n > 0) { - // If the put pointer is somewhere in the middle of the string, - // then overwrite instead of append. - if (this->pbase() == _M_str.data()) { - ptrdiff_t __avail = _M_str.data() + _M_str.size() - this->pptr(); - if (__avail > __n) { - _Traits::assign(this->pptr(), __STATIC_CAST(size_t, __n), __c); - this->pbump(__STATIC_CAST(int, __n)); - return __n; - } - else { - _Traits::assign(this->pptr(), __avail, __c); - __nwritten += __avail; - __n -= __avail; - this->setp(_M_Buf, _M_Buf + __STATIC_CAST(int,_S_BufSiz)); - } - } - - // 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()))) - : __STATIC_CAST(size_t, __n); - if (this->_M_mode & ios_base::in) { - ptrdiff_t __get_offset = this->gptr() - this->eback(); - _M_str.append(__app_size, __c); - - _CharT* __data_ptr = __CONST_CAST(_CharT*,_M_str.data()); - size_t __data_size = _M_str.size(); - - this->setg(__data_ptr, __data_ptr + __get_offset, __data_ptr + __data_size); - this->setp(__data_ptr, __data_ptr + __data_size); - this->pbump((int)__data_size); - } - else { - _M_append_buffer(); - _M_str.append(__app_size, __c); - } - - __nwritten += __app_size; - } - - return __nwritten; -} - -// According to the C++ standard the effects of setbuf are implementation -// defined, except that setbuf(0, 0) has no effect. In this implementation, -// setbuf(<anything>, n), for n > 0, calls reserve(n) on the underlying -// string. -template <class _CharT, class _Traits, class _Alloc> -basic_streambuf<_CharT, _Traits>* -basic_stringbuf<_CharT, _Traits, _Alloc>::setbuf(_CharT*, streamsize __n) { - if (__n > 0) { - bool __do_get_area = false; - bool __do_put_area = false; - ptrdiff_t __offg = 0; - ptrdiff_t __offp = 0; - - if (this->pbase() == _M_str.data()) { - __do_put_area = true; - __offp = this->pptr() - this->pbase(); - } - - if (this->eback() == _M_str.data()) { - __do_get_area = true; - __offg = this->gptr() - this->eback(); - } - - 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()))) - : __STATIC_CAST(size_t, __n)); - - _CharT* __data_ptr = __CONST_CAST(_CharT*, _M_str.data()); - size_t __data_size = _M_str.size(); - - if (__do_get_area) { - this->setg(__data_ptr, __data_ptr + __offg, __data_ptr + __data_size); - } - - if (__do_put_area) { - this->setp(__data_ptr, __data_ptr + __data_size); - this->pbump((int)__offp); - } - } - - return this; -} - -template <class _CharT, class _Traits, class _Alloc> -__BSB_pos_type__ -basic_stringbuf<_CharT, _Traits, _Alloc> - ::seekoff(off_type __off, - ios_base::seekdir __dir, - ios_base::openmode __mode) { - __mode &= _M_mode; - - bool __imode = (__mode & ios_base::in) != 0; - bool __omode = (__mode & ios_base::out) != 0; - - if ( !(__imode || __omode) ) - return pos_type(off_type(-1)); - - if ( (__imode && (this->gptr() == 0)) || (__omode && (this->pptr() == 0)) ) - return pos_type(off_type(-1)); - - if ((_M_mode & ios_base::out) && !(_M_mode & ios_base::in)) - _M_append_buffer(); - - streamoff __newoff; - switch(__dir) { - case ios_base::beg: - __newoff = 0; - break; - case ios_base::end: - __newoff = _M_str.size(); - break; - case ios_base::cur: - __newoff = __imode ? this->gptr() - this->eback() : this->pptr() - this->pbase(); - break; - default: - return pos_type(off_type(-1)); - } - - __off += __newoff; - - if (__imode) { - ptrdiff_t __n = this->egptr() - this->eback(); - - if (__off < 0 || __off > __n) - return pos_type(off_type(-1)); - this->setg(this->eback(), this->eback() + __STATIC_CAST(ptrdiff_t, __off), - this->eback() + __STATIC_CAST(ptrdiff_t, __n)); - } - - if (__omode) { - ptrdiff_t __n = this->epptr() - this->pbase(); - - if (__off < 0 || __off > __n) - return pos_type(off_type(-1)); - this->setp(this->pbase(), this->pbase() + __n); - this->pbump((int)__off); - } - - return pos_type(__off); -} - -template <class _CharT, class _Traits, class _Alloc> -__BSB_pos_type__ -basic_stringbuf<_CharT, _Traits, _Alloc> - ::seekpos(pos_type __pos, ios_base::openmode __mode) { - __mode &= _M_mode; - - bool __imode = (__mode & ios_base::in) != 0; - bool __omode = (__mode & ios_base::out) != 0; - - if ( !(__imode || __omode) ) - return pos_type(off_type(-1)); - - if ( (__imode && (this->gptr() == 0)) || (__omode && (this->pptr() == 0)) ) - return pos_type(off_type(-1)); - - const off_type __n = __pos - pos_type(off_type(0)); - if ((_M_mode & ios_base::out) && !(_M_mode & ios_base::in)) - _M_append_buffer(); - - if (__imode) { - if (__n < 0 || __n > this->egptr() - this->eback()) - return pos_type(off_type(-1)); - this->setg(this->eback(), this->eback() + __STATIC_CAST(ptrdiff_t, __n), this->egptr()); - } - - if (__omode) { - if (__n < 0 || size_t(__n) > _M_str.size()) - return pos_type(off_type(-1)); - - _CharT* __data_ptr = __CONST_CAST(_CharT*,_M_str.data()); - size_t __data_size = _M_str.size(); - - this->setp(__data_ptr, __data_ptr+__data_size); - this->pbump((int)__n); - } - - return __pos; -} - -// This is declared as a const member function because it is -// called by basic_stringbuf<>::str(). Precondition: this is a -// write-only stringbuf. We can't use an output buffer for read- -// write stringbufs. Postcondition: pptr is reset to the beginning -// of the buffer. -template <class _CharT, class _Traits, class _Alloc> -void basic_stringbuf<_CharT, _Traits, _Alloc>::_M_append_buffer() const { - // Do we have a buffer to append? - if (this->pbase() == this->_M_Buf && this->pptr() != this->_M_Buf) { - basic_stringbuf<_CharT, _Traits, _Alloc>* __this = __CONST_CAST(_Self*,this); - __this->_M_str.append((const _CharT*)this->pbase(), (const _CharT*)this->pptr()); -#ifndef __MWERKS__ - __this->setp(__CONST_CAST(_CharT*,_M_Buf), - __CONST_CAST(_CharT*,_M_Buf + __STATIC_CAST(int,_S_BufSiz))); -#else // CodeWarrior treat const char * and const char [8] as different types - __this->setp((_CharT*)_M_Buf, - (_CharT*)(_M_Buf + __STATIC_CAST(int,_S_BufSiz))); -#endif - } - - // Have we run off the end of the string? - else if (this->pptr() == this->epptr()) { - basic_stringbuf<_CharT, _Traits, _Alloc>* __this = __CONST_CAST(_Self*,this); -#ifndef __MWERKS__ - __this->setp(__CONST_CAST(_CharT*,_M_Buf), - __CONST_CAST(_CharT*,_M_Buf + __STATIC_CAST(int,_S_BufSiz))); -#else // CodeWarrior treat const char * and const char [8] as different types - __this->setp((_CharT*)_M_Buf, - (_CharT*)(_M_Buf + __STATIC_CAST(int,_S_BufSiz))); -#endif - } -} - -//---------------------------------------------------------------------- -// Non-inline istringstream member functions. - -template <class _CharT, class _Traits, class _Alloc> -basic_istringstream<_CharT, _Traits, _Alloc> - ::basic_istringstream(ios_base::openmode __mode) - : basic_istream<_CharT, _Traits>(0), - _M_buf(__mode | ios_base::in) { - this->init(&_M_buf); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_istringstream<_CharT, _Traits, _Alloc> - ::basic_istringstream(const _String& __str,ios_base::openmode __mode) - : basic_istream<_CharT, _Traits>(0), - _M_buf(__str, __mode | ios_base::in) { - this->init(&_M_buf); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_istringstream<_CharT, _Traits, _Alloc>::~basic_istringstream() -{} - -//---------------------------------------------------------------------- -// Non-inline ostringstream member functions. - -template <class _CharT, class _Traits, class _Alloc> -basic_ostringstream<_CharT, _Traits, _Alloc> - ::basic_ostringstream(ios_base::openmode __mode) - : basic_ostream<_CharT, _Traits>(0), - _M_buf(__mode | ios_base::out) { - this->init(&_M_buf); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_ostringstream<_CharT, _Traits, _Alloc> - ::basic_ostringstream(const _String& __str, ios_base::openmode __mode) - : basic_ostream<_CharT, _Traits>(0), - _M_buf(__str, __mode | ios_base::out) { - this->init(&_M_buf); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_ostringstream<_CharT, _Traits, _Alloc>::~basic_ostringstream() -{} - -//---------------------------------------------------------------------- -// Non-inline stringstream member functions. - -template <class _CharT, class _Traits, class _Alloc> -basic_stringstream<_CharT, _Traits, _Alloc> - ::basic_stringstream(ios_base::openmode __mode) - : basic_iostream<_CharT, _Traits>(0), _M_buf(__mode) { - this->init(&_M_buf); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_stringstream<_CharT, _Traits, _Alloc> - ::basic_stringstream(const _String& __str, ios_base::openmode __mode) - : basic_iostream<_CharT, _Traits>(0), _M_buf(__str, __mode) { - this->init(&_M_buf); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_stringstream<_CharT, _Traits, _Alloc>::~basic_stringstream() -{} - -_STLP_END_NAMESPACE - -# undef __BSB_int_type__ -# undef __BSB_pos_type__ - -#endif /* _STLP_SSTREAM_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_sstream.h b/WebKit/android/stlport/stl/_sstream.h deleted file mode 100644 index 8239648..0000000 --- a/WebKit/android/stlport/stl/_sstream.h +++ /dev/null @@ -1,269 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - -// This header defines classes basic_stringbuf, basic_istringstream, -// basic_ostringstream, and basic_stringstream. These classes -// represent streamsbufs and streams whose sources or destinations are -// C++ strings. - -#ifndef _STLP_INTERNAL_SSTREAM -#define _STLP_INTERNAL_SSTREAM - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> // Includes <ostream>, <ios>, <iosfwd> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// This version of basic_stringbuf relies on the internal details of -// basic_string. It relies on the fact that, in this implementation, -// basic_string's iterators are pointers. It also assumes (as allowed -// by the standard) that _CharT is a POD type. - -// We have a very small buffer for the put area, just so that we don't -// have to use append() for every sputc. Conceptually, the buffer -// immediately follows the end of the underlying string. We use this -// buffer when appending to write-only streambufs, but we don't use it -// for read-write streambufs. - -template <class _CharT, class _Traits, class _Alloc> -class basic_stringbuf : public basic_streambuf<_CharT, _Traits> { -public: // Typedefs. - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_streambuf<_CharT, _Traits> _Base; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> _Self; - typedef basic_string<_CharT, _Traits, _Alloc> _String; - -public: // Constructors, destructor. - explicit basic_stringbuf(ios_base::openmode __mode - = ios_base::in | ios_base::out); - explicit basic_stringbuf(const _String& __s, ios_base::openmode __mode - = ios_base::in | ios_base::out); - virtual ~basic_stringbuf(); - -public: // Get or set the string. - _String str() const { _M_append_buffer(); return _M_str; } - void str(const _String& __s); - -protected: // Overridden virtual member functions. - virtual int_type underflow(); - virtual int_type uflow(); - virtual int_type pbackfail(int_type __c); - virtual int_type overflow(int_type __c); - int_type pbackfail() {return pbackfail(_Traits::eof());} - int_type overflow() {return overflow(_Traits::eof());} - - virtual streamsize xsputn(const char_type* __s, streamsize __n); - virtual streamsize _M_xsputnc(char_type __c, streamsize __n); - - virtual _Base* setbuf(_CharT* __buf, streamsize __n); - virtual pos_type seekoff(off_type __off, ios_base::seekdir __dir, - ios_base::openmode __mode - = ios_base::in | ios_base::out); - virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode - = ios_base::in | ios_base::out); - -private: // Helper functions. - // Append the internal buffer to the string if necessary. - void _M_append_buffer() const; - void _M_set_ptrs(); - -private: - ios_base::openmode _M_mode; - mutable basic_string<_CharT, _Traits, _Alloc> _M_str; - - enum _JustName { _S_BufSiz = 8 }; - _CharT _M_Buf[ 8 /* _S_BufSiz */]; -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_stringbuf<char, char_traits<char>, allocator<char> >; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -//---------------------------------------------------------------------- -// Class basic_istringstream, an input stream that uses a stringbuf. - -template <class _CharT, class _Traits, class _Alloc> -class basic_istringstream : public basic_istream<_CharT, _Traits> { -public: // Typedefs - typedef typename _Traits::char_type char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_ios<_CharT, _Traits> _Basic_ios; - typedef basic_istream<_CharT, _Traits> _Base; - typedef basic_string<_CharT, _Traits, _Alloc> _String; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> _Buf; - -public: // Constructors, destructor. - basic_istringstream(ios_base::openmode __mode = ios_base::in); - basic_istringstream(const _String& __str, - ios_base::openmode __mode = ios_base::in); - ~basic_istringstream(); - -public: // Member functions - - basic_stringbuf<_CharT, _Traits, _Alloc>* rdbuf() const - { return __CONST_CAST(_Buf*,&_M_buf); } - - _String str() const { return _M_buf.str(); } - void str(const _String& __s) { _M_buf.str(__s); } - -private: - basic_stringbuf<_CharT, _Traits, _Alloc> _M_buf; - -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1300 && _STLP_MSVC <= 1310) - typedef basic_istringstream<_CharT, _Traits> _Self; - //explicitely defined as private to avoid warnings: - basic_istringstream(_Self const&); - _Self& operator = (_Self const&); -#endif -}; - - -//---------------------------------------------------------------------- -// Class basic_ostringstream, an output stream that uses a stringbuf. - -template <class _CharT, class _Traits, class _Alloc> -class basic_ostringstream : public basic_ostream<_CharT, _Traits> { -public: // Typedefs - typedef typename _Traits::char_type char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_ios<_CharT, _Traits> _Basic_ios; - typedef basic_ostream<_CharT, _Traits> _Base; - typedef basic_string<_CharT, _Traits, _Alloc> _String; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> _Buf; - -public: // Constructors, destructor. - basic_ostringstream(ios_base::openmode __mode = ios_base::out); - basic_ostringstream(const _String& __str, - ios_base::openmode __mode = ios_base::out); - ~basic_ostringstream(); - -public: // Member functions. - - basic_stringbuf<_CharT, _Traits, _Alloc>* rdbuf() const - { return __CONST_CAST(_Buf*,&_M_buf); } - - _String str() const { return _M_buf.str(); } - void str(const _String& __s) { _M_buf.str(__s); } // dwa 02/07/00 - BUG STOMPER DAVE - - -private: - basic_stringbuf<_CharT, _Traits, _Alloc> _M_buf; - -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1300 && _STLP_MSVC <= 1310) - typedef basic_ostringstream<_CharT, _Traits> _Self; - //explicitely defined as private to avoid warnings: - basic_ostringstream(_Self const&); - _Self& operator = (_Self const&); -#endif -}; - - -//---------------------------------------------------------------------- -// Class basic_stringstream, a bidirectional stream that uses a stringbuf. - -template <class _CharT, class _Traits, class _Alloc> -class basic_stringstream : public basic_iostream<_CharT, _Traits> { -public: // Typedefs - typedef typename _Traits::char_type char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - - typedef basic_ios<_CharT, _Traits> _Basic_ios; - typedef basic_iostream<_CharT, _Traits> _Base; - typedef basic_string<_CharT, _Traits, _Alloc> _String; - typedef basic_stringbuf<_CharT, _Traits, _Alloc> _Buf; - - typedef ios_base::openmode openmode; - -public: // Constructors, destructor. - basic_stringstream(openmode __mod = ios_base::in | ios_base::out); - basic_stringstream(const _String& __str, - openmode __mod = ios_base::in | ios_base::out); - ~basic_stringstream(); - -public: // Member functions. - - basic_stringbuf<_CharT, _Traits, _Alloc>* rdbuf() const - { return __CONST_CAST(_Buf*,&_M_buf); } - - _String str() const { return _M_buf.str(); } - void str(const _String& __s) { _M_buf.str(__s); } - -private: - basic_stringbuf<_CharT, _Traits, _Alloc> _M_buf; - -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1300 && _STLP_MSVC <= 1310) - typedef basic_stringstream<_CharT, _Traits> _Self; - //explicitely defined as private to avoid warnings: - basic_stringstream(_Self const&); - _Self& operator = (_Self const&); -#endif -}; - - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_istringstream<char, char_traits<char>, allocator<char> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_ostringstream<char, char_traits<char>, allocator<char> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_stringstream<char, char_traits<char>, allocator<char> >; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; -_STLP_EXPORT_TEMPLATE_CLASS basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_sstream.c> -#endif - -#endif /* _STLP_INTERNAL_SSTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_stack.h b/WebKit/android/stlport/stl/_stack.h deleted file mode 100644 index 7aa468d..0000000 --- a/WebKit/android/stlport/stl/_stack.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_STACK_H -#define _STLP_INTERNAL_STACK_H - -#ifndef _STLP_INTERNAL_DEQUE_H -# include <stl/_deque.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if !defined ( _STLP_LIMITED_DEFAULT_TEMPLATES ) -template <class _Tp, class _Sequence = deque<_Tp> > -#elif defined ( _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS ) -# define _STLP_STACK_ARGS _Tp -template <class _Tp> -#else -template <class _Tp, class _Sequence> -#endif -class stack -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) -# if defined (_STLP_STACK_ARGS) - : public __stlport_class<stack<_Tp> > -# else - : public __stlport_class<stack<_Tp, _Sequence> > -# endif -#endif -{ -#ifdef _STLP_STACK_ARGS - typedef deque<_Tp> _Sequence; - typedef stack<_Tp> _Self; -#else - typedef stack<_Tp, _Sequence> _Self; -#endif - -public: - typedef typename _Sequence::value_type value_type; - typedef typename _Sequence::size_type size_type; - typedef _Sequence container_type; - - typedef typename _Sequence::reference reference; - typedef typename _Sequence::const_reference const_reference; -protected: - //c is a Standard name (23.2.3.3), do no make it STLport naming convention compliant. - _Sequence c; -public: - stack() : c() {} - explicit stack(const _Sequence& __s) : c(__s) {} - - stack(__move_source<_Self> src) - : c(_STLP_PRIV _AsMoveSource(src.get().c)) {} - - bool empty() const { return c.empty(); } - size_type size() const { return c.size(); } - reference top() { return c.back(); } - const_reference top() const { return c.back(); } - void push(const value_type& __x) { c.push_back(__x); } - void pop() { c.pop_back(); } - const _Sequence& _Get_s() const { return c; } -}; - -#ifndef _STLP_STACK_ARGS -# define _STLP_STACK_ARGS _Tp, _Sequence -# define _STLP_STACK_HEADER_ARGS class _Tp, class _Sequence -#else -# define _STLP_STACK_HEADER_ARGS class _Tp -#endif - -template < _STLP_STACK_HEADER_ARGS > -inline bool _STLP_CALL operator==(const stack< _STLP_STACK_ARGS >& __x, - const stack< _STLP_STACK_ARGS >& __y) -{ return __x._Get_s() == __y._Get_s(); } - -template < _STLP_STACK_HEADER_ARGS > -inline bool _STLP_CALL operator<(const stack< _STLP_STACK_ARGS >& __x, - const stack< _STLP_STACK_ARGS >& __y) -{ return __x._Get_s() < __y._Get_s(); } - -_STLP_RELOPS_OPERATORS(template < _STLP_STACK_HEADER_ARGS >, stack< _STLP_STACK_ARGS >) - -#undef _STLP_STACK_ARGS -#undef _STLP_STACK_HEADER_ARGS - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp, class _Sequence> -struct __move_traits<stack<_Tp, _Sequence> > : - _STLP_PRIV __move_traits_aux<_Sequence> -{}; -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_STACK_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_stdexcept.h b/WebKit/android/stlport/stl/_stdexcept.h deleted file mode 100644 index 8c784bb..0000000 --- a/WebKit/android/stlport/stl/_stdexcept.h +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_STDEXCEPT -#define _STLP_INTERNAL_STDEXCEPT - -#ifndef _STLP_INTERNAL_STDEXCEPT_BASE -# include <stl/_stdexcept_base.h> -#endif - -#if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE) - -# if defined(_STLP_USE_EXCEPTIONS) || \ - !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32)) - -_STLP_BEGIN_NAMESPACE - -class _STLP_CLASS_DECLSPEC logic_error : public __Named_exception { -public: - logic_error(const string& __s) : __Named_exception(__s) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~logic_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC runtime_error : public __Named_exception { -public: - runtime_error(const string& __s) : __Named_exception(__s) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~runtime_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC domain_error : public logic_error { -public: - domain_error(const string& __arg) : logic_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~domain_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC invalid_argument : public logic_error { -public: - invalid_argument(const string& __arg) : logic_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~invalid_argument() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC length_error : public logic_error { -public: - length_error(const string& __arg) : logic_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~length_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC out_of_range : public logic_error { -public: - out_of_range(const string& __arg) : logic_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~out_of_range() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC range_error : public runtime_error { -public: - range_error(const string& __arg) : runtime_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~range_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC overflow_error : public runtime_error { -public: - overflow_error(const string& __arg) : runtime_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~overflow_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -class _STLP_CLASS_DECLSPEC underflow_error : public runtime_error { -public: - underflow_error(const string& __arg) : runtime_error(__arg) {} -# ifndef _STLP_USE_NO_IOSTREAMS - ~underflow_error() _STLP_NOTHROW_INHERENTLY; -# endif -}; - -_STLP_END_NAMESPACE - -# endif -#endif - -#endif /* _STLP_INTERNAL_STDEXCEPT */ diff --git a/WebKit/android/stlport/stl/_stdexcept_base.h b/WebKit/android/stlport/stl/_stdexcept_base.h deleted file mode 100644 index 3bcd849..0000000 --- a/WebKit/android/stlport/stl/_stdexcept_base.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_STDEXCEPT_BASE -#define _STLP_INTERNAL_STDEXCEPT_BASE - -#if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE) - -# ifndef _STLP_INTERNAL_EXCEPTION -# include <stl/_exception.h> -# endif - -# if defined(_STLP_USE_EXCEPTIONS) || \ - !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32)) - -# ifndef _STLP_INTERNAL_CSTRING -# include <stl/_cstring.h> -# endif - -# ifndef _STLP_STRING_FWD_H -# include <stl/_string_fwd.h> -# endif - -# ifndef _STLP_USE_NO_IOSTREAMS -# define _STLP_OWN_STDEXCEPT 1 -# endif - -_STLP_BEGIN_NAMESPACE - -/* We disable the 4275 warning for - * - WinCE where there are only static version of the native C++ runtime. - * - The MSVC compilers when the STLport user wants to make an STLport dll linked to - * the static C++ native runtime. In this case the std::exception base class is no more - * exported from native dll but is used as a base class for the exported __Named_exception - * class. - */ -# if defined (_STLP_WCE_NET) || \ - defined (_STLP_USE_DYNAMIC_LIB) && defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB) -# define _STLP_DO_WARNING_POP -# pragma warning (push) -# pragma warning (disable: 4275) // Non dll interface class 'exception' used as base - // for dll-interface class '__Named_exception' -# endif - -# if !defined (_STLP_NO_EXCEPTION_HEADER) -# if !defined (_STLP_EXCEPTION_BASE) && !defined (_STLP_BROKEN_EXCEPTION_CLASS) && \ - defined (_STLP_USE_NAMESPACES) && defined (_STLP_USE_OWN_NAMESPACE) -using _STLP_VENDOR_EXCEPT_STD::exception; -# endif -# endif -# define _STLP_EXCEPTION_BASE exception - -class _STLP_CLASS_DECLSPEC __Named_exception : public _STLP_EXCEPTION_BASE { -public: - __Named_exception(const string& __str) -# ifndef _STLP_USE_NO_IOSTREAMS - ; - const char* what() const _STLP_NOTHROW_INHERENTLY; - ~__Named_exception() _STLP_NOTHROW_INHERENTLY; -# else - { -# if !defined (_STLP_USE_SAFE_STRING_FUNCTIONS) - strncpy(_M_name, _STLP_PRIV __get_c_string(__str), _S_bufsize); - _M_name[_S_bufsize - 1] = '\0'; -# else - strncpy_s(_STLP_ARRAY_AND_SIZE(_M_name), _STLP_PRIV __get_c_string(__str), _TRUNCATE); -# endif - } - const char* what() const _STLP_NOTHROW_INHERENTLY { return _M_name; } -# endif - -private: - enum { _S_bufsize = 256 }; - char _M_name[_S_bufsize]; -}; - -# if defined (_STLP_DO_WARNING_POP) -# pragma warning (pop) -# undef _STLP_DO_WARNING_POP -# endif - -_STLP_END_NAMESPACE - -# endif /* Not o32, and no exceptions */ -#endif /* _STLP_STDEXCEPT_SEEN */ - -#endif /* _STLP_INTERNAL_STDEXCEPT_BASE */ diff --git a/WebKit/android/stlport/stl/_stlport_version.h b/WebKit/android/stlport/stl/_stlport_version.h deleted file mode 100644 index 8f8055b..0000000 --- a/WebKit/android/stlport/stl/_stlport_version.h +++ /dev/null @@ -1,30 +0,0 @@ - /* - * - * Copyright (c) 2005 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STLPORT_VERSION_H -#define _STLP_STLPORT_VERSION_H - -/* The last SGI STL release we merged with */ -#define __SGI_STL 0x330 - -/* STLport version */ -#define _STLPORT_MAJOR 5 -#define _STLPORT_MINOR 1 -#define _STLPORT_PATCHLEVEL 4 - -#define _STLPORT_VERSION 0x514 - -#endif /* _STLP_STLPORT_VERSION_H */ diff --git a/WebKit/android/stlport/stl/_stream_iterator.h b/WebKit/android/stlport/stl/_stream_iterator.h deleted file mode 100644 index 1d1ff3f..0000000 --- a/WebKit/android/stlport/stl/_stream_iterator.h +++ /dev/null @@ -1,253 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996-1998 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#if !defined (_STLP_INTERNAL_STREAM_ITERATOR_H) && !defined (_STLP_USE_NO_IOSTREAMS) -#define _STLP_INTERNAL_STREAM_ITERATOR_H - -#ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -#endif - -// streambuf_iterators predeclarations must appear first -#ifndef _STLP_IOSFWD -# include <iosfwd> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_OSTREAMBUF_ITERATOR_H -# include <stl/_ostreambuf_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAMBUF_ITERATOR_H -# include <stl/_istreambuf_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> -#endif - -// istream_iterator and ostream_iterator look very different if we're -// using new, templatized iostreams than if we're using the old cfront -// version. - -_STLP_BEGIN_NAMESPACE - -#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp, class _CharT, class _Traits, class _Dist -# define __ISI_TMPL_ARGUMENTS _Tp, _CharT, _Traits, _Dist -template <class _Tp, - class _CharT = _STLP_DEFAULTCHAR, class _Traits = char_traits<_CharT>, - class _Dist = ptrdiff_t> -class istream_iterator : public iterator<input_iterator_tag, _Tp , _Dist, - const _Tp*, const _Tp& > { -#else -# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM) -# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp -# define __ISI_TMPL_ARGUMENTS _Tp -template <class _Tp> -class istream_iterator : public iterator<input_iterator_tag, _Tp , ptrdiff_t, - const _Tp*, const _Tp& > { -# else -# define __ISI_TMPL_HEADER_ARGUMENTS class _Tp, class _Dist -# define __ISI_TMPL_ARGUMENTS _Tp, _Dist -template <class _Tp, _STLP_DFL_TYPE_PARAM(_Dist, ptrdiff_t)> -class istream_iterator : public iterator<input_iterator_tag, _Tp, _Dist , - const _Tp*, const _Tp& > { -# endif /* _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS */ -#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */ - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) - typedef char _CharT; - typedef char_traits<char> _Traits; -# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM) - typedef ptrdiff_t _Dist; -# endif -#endif - - typedef istream_iterator< __ISI_TMPL_ARGUMENTS > _Self; -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef basic_istream<_CharT, _Traits> istream_type; - - typedef input_iterator_tag iterator_category; - typedef _Tp value_type; - typedef _Dist difference_type; - typedef const _Tp* pointer; - typedef const _Tp& reference; - - istream_iterator() : _M_stream(0), _M_ok(false), _M_read_done(true) {} - istream_iterator(istream_type& __s) : _M_stream(&__s), _M_ok(false), _M_read_done(false) {} - - reference operator*() const { - if (!_M_read_done) { - _M_read(); - } - return _M_value; - } - - _STLP_DEFINE_ARROW_OPERATOR - - _Self& operator++() { - _M_read(); - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - _M_read(); - return __tmp; - } - - bool _M_equal(const _Self& __x) const { - if (!_M_read_done) { - _M_read(); - } - if (!__x._M_read_done) { - __x._M_read(); - } - return (_M_ok == __x._M_ok) && (!_M_ok || _M_stream == __x._M_stream); - } - -private: - istream_type* _M_stream; - mutable _Tp _M_value; - mutable bool _M_ok; - mutable bool _M_read_done; - - void _M_read() const { - _M_ok = ((_M_stream != 0) && !_M_stream->fail()); - if (_M_ok) { - *_M_stream >> _M_value; - _M_ok = !_M_stream->fail(); - } - _M_read_done = true; - } -}; - -#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _TpP, - class _CharT = _STLP_DEFAULTCHAR, class _Traits = char_traits<_CharT> > -#else -template <class _TpP> -#endif -class ostream_iterator: public iterator<output_iterator_tag, void, void, void, void> { -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) - typedef char _CharT; - typedef char_traits<char> _Traits; - typedef ostream_iterator<_TpP> _Self; -#else - typedef ostream_iterator<_TpP, _CharT, _Traits> _Self; -#endif -public: - typedef _CharT char_type; - typedef _Traits traits_type; - typedef basic_ostream<_CharT, _Traits> ostream_type; - - typedef output_iterator_tag iterator_category; - - ostream_iterator(ostream_type& __s) : _M_stream(&__s), _M_string(0) {} - ostream_iterator(ostream_type& __s, const _CharT* __c) - : _M_stream(&__s), _M_string(__c) {} - _Self& operator=(const _TpP& __val) { - *_M_stream << __val; - if (_M_string) *_M_stream << _M_string; - return *this; - } - _Self& operator*() { return *this; } - _Self& operator++() { return *this; } - _Self& operator++(int) { return *this; } -private: - ostream_type* _M_stream; - const _CharT* _M_string; -}; - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -# if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _TpP> -inline output_iterator_tag _STLP_CALL -iterator_category(const ostream_iterator<_TpP>&) { return output_iterator_tag(); } -# else -template <class _TpP, class _CharT, class _Traits> -inline output_iterator_tag _STLP_CALL -iterator_category(const ostream_iterator<_TpP, _CharT, _Traits>&) { return output_iterator_tag(); } -# endif -#endif - -_STLP_END_NAMESPACE - -// form-independent definiotion of stream iterators -_STLP_BEGIN_NAMESPACE - -template < __ISI_TMPL_HEADER_ARGUMENTS > -inline bool _STLP_CALL -operator==(const istream_iterator< __ISI_TMPL_ARGUMENTS >& __x, - const istream_iterator< __ISI_TMPL_ARGUMENTS >& __y) -{ return __x._M_equal(__y); } - -#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) -template < __ISI_TMPL_HEADER_ARGUMENTS > -inline bool _STLP_CALL -operator!=(const istream_iterator< __ISI_TMPL_ARGUMENTS >& __x, - const istream_iterator< __ISI_TMPL_ARGUMENTS >& __y) -{ return !__x._M_equal(__y); } -#endif - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -template < __ISI_TMPL_HEADER_ARGUMENTS > -inline input_iterator_tag _STLP_CALL -iterator_category(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) -{ return input_iterator_tag(); } -template < __ISI_TMPL_HEADER_ARGUMENTS > -inline _Tp* _STLP_CALL -value_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (_Tp*) 0; } - -# if defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_DEFAULT_TYPE_PARAM) -template < __ISI_TMPL_HEADER_ARGUMENTS > -inline ptrdiff_t* _STLP_CALL -distance_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (ptrdiff_t*)0; } -# else -template < __ISI_TMPL_HEADER_ARGUMENTS > -inline _Dist* _STLP_CALL -distance_type(const istream_iterator< __ISI_TMPL_ARGUMENTS >&) { return (_Dist*)0; } -# endif /* _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS */ -#endif - -_STLP_END_NAMESPACE - -#undef __ISI_TMPL_HEADER_ARGUMENTS -#undef __ISI_TMPL_ARGUMENTS - -#endif /* _STLP_INTERNAL_STREAM_ITERATOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_streambuf.c b/WebKit/android/stlport/stl/_streambuf.c deleted file mode 100644 index bd61a20..0000000 --- a/WebKit/android/stlport/stl/_streambuf.c +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_STREAMBUF_C -#define _STLP_STREAMBUF_C - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -_STLP_BEGIN_NAMESPACE -//---------------------------------------------------------------------- -// Non-inline basic_streambuf<> member functions. - -#if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1300) || !defined (_STLP_USE_STATIC_LIB) -template <class _CharT, class _Traits> -basic_streambuf<_CharT, _Traits>::basic_streambuf() - : _M_gbegin(0), _M_gnext(0), _M_gend(0), - _M_pbegin(0), _M_pnext(0), _M_pend(0), - _M_locale() { - // _M_lock._M_initialize(); -} -#endif - -template <class _CharT, class _Traits> -basic_streambuf<_CharT, _Traits>::~basic_streambuf() -{} - -template <class _CharT, class _Traits> -locale -basic_streambuf<_CharT, _Traits>::pubimbue(const locale& __loc) { - this->imbue(__loc); - locale __tmp = _M_locale; - _M_locale = __loc; - return __tmp; -} - -template <class _CharT, class _Traits> -streamsize -basic_streambuf<_CharT, _Traits>::xsgetn(_CharT* __s, streamsize __n) { - streamsize __result = 0; - const int_type __eof = _Traits::eof(); - - while (__result < __n) { - if (_M_gnext < _M_gend) { - size_t __chunk = (min) (__STATIC_CAST(size_t,_M_gend - _M_gnext), - __STATIC_CAST(size_t,__n - __result)); - _Traits::copy(__s, _M_gnext, __chunk); - __result += __chunk; - __s += __chunk; - _M_gnext += __chunk; - } - else { - int_type __c = this->sbumpc(); - if (!_Traits::eq_int_type(__c, __eof)) { - *__s = _Traits::to_char_type(__c); - ++__result; - ++__s; - } - else - break; - } - } - - return __result; -} - -template <class _CharT, class _Traits> -streamsize -basic_streambuf<_CharT, _Traits>::xsputn(const _CharT* __s, streamsize __n) -{ - streamsize __result = 0; - const int_type __eof = _Traits::eof(); - - while (__result < __n) { - if (_M_pnext < _M_pend) { - size_t __chunk = (min) (__STATIC_CAST(size_t,_M_pend - _M_pnext), - __STATIC_CAST(size_t,__n - __result)); - _Traits::copy(_M_pnext, __s, __chunk); - __result += __chunk; - __s += __chunk; - _M_pnext += __chunk; - } - - else if (!_Traits::eq_int_type(this->overflow(_Traits::to_int_type(*__s)), - __eof)) { - ++__result; - ++__s; - } - else - break; - } - return __result; -} - -template <class _CharT, class _Traits> -streamsize -basic_streambuf<_CharT, _Traits>::_M_xsputnc(_CharT __c, streamsize __n) -{ - streamsize __result = 0; - const int_type __eof = _Traits::eof(); - - while (__result < __n) { - if (_M_pnext < _M_pend) { - size_t __chunk = (min) (__STATIC_CAST(size_t,_M_pend - _M_pnext), - __STATIC_CAST(size_t,__n - __result)); - _Traits::assign(_M_pnext, __chunk, __c); - __result += __chunk; - _M_pnext += __chunk; - } - - else if (!_Traits::eq_int_type(this->overflow(_Traits::to_int_type(__c)), - __eof)) - ++__result; - else - break; - } - return __result; -} - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type -basic_streambuf<_CharT, _Traits>::_M_snextc_aux() -{ - int_type __eof = _Traits::eof(); - if (_M_gend == _M_gnext) - return _Traits::eq_int_type(this->uflow(), __eof) ? __eof : this->sgetc(); - else { - _M_gnext = _M_gend; - return this->underflow(); - } -} - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type -basic_streambuf<_CharT, _Traits>::pbackfail(int_type) { - return _Traits::eof(); -} - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type -basic_streambuf<_CharT, _Traits>::overflow(int_type) { - return _Traits::eof(); -} - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type -basic_streambuf<_CharT, _Traits>::uflow() { - return ( _Traits::eq_int_type(this->underflow(),_Traits::eof()) ? - _Traits::eof() : - _Traits::to_int_type(*_M_gnext++)); -} - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::int_type -basic_streambuf<_CharT, _Traits>::underflow() -{ return _Traits::eof(); } - -template <class _CharT, class _Traits> -streamsize -basic_streambuf<_CharT, _Traits>::showmanyc() -{ return 0; } - -template <class _CharT, class _Traits> -void -basic_streambuf<_CharT, _Traits>::imbue(const locale&) {} - -template <class _CharT, class _Traits> -int -basic_streambuf<_CharT, _Traits>::sync() { return 0; } - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::pos_type -basic_streambuf<_CharT, _Traits>::seekpos(pos_type, ios_base::openmode) -{ return pos_type(-1); } - -template <class _CharT, class _Traits> -_STLP_TYPENAME_ON_RETURN_TYPE basic_streambuf<_CharT, _Traits>::pos_type -basic_streambuf<_CharT, _Traits>::seekoff(off_type, ios_base::seekdir, - ios_base::openmode) -{ return pos_type(-1); } - -template <class _CharT, class _Traits> -basic_streambuf<_CharT, _Traits>* -basic_streambuf<_CharT, _Traits>:: setbuf(char_type*, streamsize) -{ return this; } - -_STLP_END_NAMESPACE - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_streambuf.h b/WebKit/android/stlport/stl/_streambuf.h deleted file mode 100644 index d6df0a7..0000000 --- a/WebKit/android/stlport/stl/_streambuf.h +++ /dev/null @@ -1,301 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_INTERNAL_STREAMBUF -#define _STLP_INTERNAL_STREAMBUF - -#ifndef _STLP_IOS_BASE_H -# include <stl/_ios_base.h> // Needed for ios_base bitfield members. -#endif // <ios_base> includes <iosfwd>. - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Class basic_streambuf<>, the base class of the streambuf hierarchy. - -// A basic_streambuf<> manages an input (get) area and an output (put) -// area. Each is described by three pointers: a beginning, an end, and a -// current position. basic_streambuf<> contains some very simple member -// functions that manipulate those six pointers, but almost all of the real -// functionality gets delegated to protected virtual member functions. -// All of the public member functions are inline, and most of the protected -// member functions are virtual. - -// Although basic_streambuf<> is not abstract, it is useful only as a base -// class. Its virtual member functions have default definitions such that -// reading from a basic_streambuf<> will always yield EOF, and writing to a -// basic_streambuf<> will always fail. - -// The second template parameter, _Traits, defaults to char_traits<_CharT>. -// The default is declared in header <iosfwd>, and it isn't declared here -// because C++ language rules do not allow it to be declared twice. - -template <class _CharT, class _Traits> -class basic_streambuf { - friend class basic_istream<_CharT, _Traits>; - friend class basic_ostream<_CharT, _Traits>; - -public: // Typedefs. - typedef _CharT char_type; - typedef typename _Traits::int_type int_type; - typedef typename _Traits::pos_type pos_type; - typedef typename _Traits::off_type off_type; - typedef _Traits traits_type; - -private: // Data members. - - char_type* _M_gbegin; // Beginning of get area - char_type* _M_gnext; // Current position within the get area - char_type* _M_gend; // End of get area - - char_type* _M_pbegin; // Beginning of put area - char_type* _M_pnext; // Current position within the put area - char_type* _M_pend; // End of put area - - locale _M_locale; // The streambuf's locale object - -//public: // Extension: locking, for thread safety. -// _STLP_mutex _M_lock; - -public: // Destructor. - virtual ~basic_streambuf(); - -protected: // The default constructor. - basic_streambuf() -#if defined (_STLP_MSVC) && (_STLP_MSVC < 1300) && defined (_STLP_USE_STATIC_LIB) - //We make it inline to avoid unresolved symbol. - : _M_gbegin(0), _M_gnext(0), _M_gend(0), - _M_pbegin(0), _M_pnext(0), _M_pend(0), - _M_locale() - {} -#else - ; -#endif - -protected: // Protected interface to the get area. - char_type* eback() const { return _M_gbegin; } // Beginning - char_type* gptr() const { return _M_gnext; } // Current position - char_type* egptr() const { return _M_gend; } // End - - void gbump(int __n) { _M_gnext += __n; } - void setg(char_type* __gbegin, char_type* __gnext, char_type* __gend) { - _M_gbegin = __gbegin; - _M_gnext = __gnext; - _M_gend = __gend; - } - -public: - // An alternate public interface to the above functions - // which allows us to avoid using templated friends which - // are not supported on some compilers. - char_type* _M_eback() const { return eback(); } - char_type* _M_gptr() const { return gptr(); } - char_type* _M_egptr() const { return egptr(); } - void _M_gbump(int __n) { gbump(__n); } - void _M_setg(char_type* __gbegin, char_type* __gnext, char_type* __gend) - { this->setg(__gbegin, __gnext, __gend); } - -protected: // Protected interface to the put area - - char_type* pbase() const { return _M_pbegin; } // Beginning - char_type* pptr() const { return _M_pnext; } // Current position - char_type* epptr() const { return _M_pend; } // End - - void pbump(int __n) { _M_pnext += __n; } - void setp(char_type* __pbegin, char_type* __pend) { - _M_pbegin = __pbegin; - _M_pnext = __pbegin; - _M_pend = __pend; - } - -protected: // Virtual buffer management functions. - - virtual basic_streambuf<_CharT, _Traits>* setbuf(char_type*, streamsize); - - // Alters the stream position, using an integer offset. In this - // class seekoff does nothing; subclasses are expected to override it. - virtual pos_type seekoff(off_type, ios_base::seekdir, - ios_base::openmode = ios_base::in | ios_base::out); - - // Alters the stream position, using a previously obtained streampos. In - // this class seekpos does nothing; subclasses are expected to override it. - virtual pos_type - seekpos(pos_type, ios_base::openmode = ios_base::in | ios_base::out); - - // Synchronizes (i.e. flushes) the buffer. All subclasses are expected to - // override this virtual member function. - virtual int sync(); - - -public: // Buffer management. - basic_streambuf<_CharT, _Traits>* pubsetbuf(char_type* __s, streamsize __n) - { return this->setbuf(__s, __n); } - - pos_type pubseekoff(off_type __offset, ios_base::seekdir __way, - ios_base::openmode __mod = ios_base::in | ios_base::out) - { return this->seekoff(__offset, __way, __mod); } - - pos_type pubseekpos(pos_type __sp, - ios_base::openmode __mod = ios_base::in | ios_base::out) - { return this->seekpos(__sp, __mod); } - - int pubsync() { return this->sync(); } - -protected: // Virtual get area functions, as defined in - // 17.5.2.4.3 and 17.5.2.4.4 of the standard. - // Returns a lower bound on the number of characters that we can read, - // with underflow, before reaching end of file. (-1 is a special value: - // it means that underflow will fail.) Most subclasses should probably - // override this virtual member function. - virtual streamsize showmanyc(); - - // Reads up to __n characters. Return value is the number of - // characters read. - virtual streamsize xsgetn(char_type* __s, streamsize __n); - - // Called when there is no read position, i.e. when gptr() is null - // or when gptr() >= egptr(). Subclasses are expected to override - // this virtual member function. - virtual int_type underflow(); - - // Similar to underflow(), but used for unbuffered input. Most - // subclasses should probably override this virtual member function. - virtual int_type uflow(); - - // Called when there is no putback position, i.e. when gptr() is null - // or when gptr() == eback(). All subclasses are expected to override - // this virtual member function. - virtual int_type pbackfail(int_type = traits_type::eof()); - -protected: // Virtual put area functions, as defined in - // 27.5.2.4.5 of the standard. - - // Writes up to __n characters. Return value is the number of characters - // written. - virtual streamsize xsputn(const char_type* __s, streamsize __n); - - // Extension: writes up to __n copies of __c. Return value is the number - // of characters written. - virtual streamsize _M_xsputnc(char_type __c, streamsize __n); - - // Called when there is no write position. All subclasses are expected to - // override this virtual member function. - virtual int_type overflow(int_type = traits_type::eof()); - -public: // Public members for writing characters. - // Write a single character. - int_type sputc(char_type __c) { - return ((_M_pnext < _M_pend) ? _Traits::to_int_type(*_M_pnext++ = __c) - : this->overflow(_Traits::to_int_type(__c))); - } - - // Write __n characters. - streamsize sputn(const char_type* __s, streamsize __n) - { return this->xsputn(__s, __n); } - - // Extension: write __n copies of __c. - streamsize _M_sputnc(char_type __c, streamsize __n) - { return this->_M_xsputnc(__c, __n); } - -private: // Helper functions. - int_type _M_snextc_aux(); - -public: // Public members for reading characters. - streamsize in_avail() { - return (_M_gnext < _M_gend) ? (_M_gend - _M_gnext) : this->showmanyc(); - } - - // Advance to the next character and return it. - int_type snextc() { - return ( _M_gend - _M_gnext > 1 ? - _Traits::to_int_type(*++_M_gnext) : - this->_M_snextc_aux()); - } - - // Return the current character and advance to the next. - int_type sbumpc() { - return _M_gnext < _M_gend ? _Traits::to_int_type(*_M_gnext++) - : this->uflow(); - } - - // Return the current character without advancing to the next. - int_type sgetc() { - return _M_gnext < _M_gend ? _Traits::to_int_type(*_M_gnext) - : this->underflow(); - } - - streamsize sgetn(char_type* __s, streamsize __n) - { return this->xsgetn(__s, __n); } - - int_type sputbackc(char_type __c) { - return ((_M_gbegin < _M_gnext) && _Traits::eq(__c, *(_M_gnext - 1))) - ? _Traits::to_int_type(*--_M_gnext) - : this->pbackfail(_Traits::to_int_type(__c)); - } - - int_type sungetc() { - return (_M_gbegin < _M_gnext) - ? _Traits::to_int_type(*--_M_gnext) - : this->pbackfail(); - } - -protected: // Virtual locale functions. - - // This is a hook, called by pubimbue() just before pubimbue() - // sets the streambuf's locale to __loc. Note that imbue should - // not (and cannot, since it has no access to streambuf's private - // members) set the streambuf's locale itself. - virtual void imbue(const locale&); - -public: // Locale-related functions. - locale pubimbue(const locale&); - locale getloc() const { return _M_locale; } - -#if !defined (_STLP_NO_ANACHRONISMS) - void stossc() { this->sbumpc(); } -#endif -#if defined (__MVS__) || defined (__OS400__) -private: // Data members. - - char_type* _M_gbegin; // Beginning of get area - char_type* _M_gnext; // Current position within the get area - char_type* _M_gend; // End of get area - - char_type* _M_pbegin; // Beginning of put area - char_type* _M_pnext; // Current position within the put area - char_type* _M_pend; // End of put area -#endif -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_streambuf<char, char_traits<char> >; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_streambuf<wchar_t, char_traits<wchar_t> >; -# endif // _STLP_NO_WCHAR_T -#endif // _STLP_USE_TEMPLATE_EXPORT - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_streambuf.c> -#endif - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_string.c b/WebKit/android/stlport/stl/_string.c deleted file mode 100644 index 5dbc628..0000000 --- a/WebKit/android/stlport/stl/_string.c +++ /dev/null @@ -1,691 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_STRING_C -#define _STLP_STRING_C - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -#ifndef _STLP_INTERNAL_CTRAITS_FUNCTIONS_H -# include <stl/_ctraits_fns.h> -#endif - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -# define basic_string _STLP_NO_MEM_T_NAME(str) -#elif defined (_STLP_DEBUG) -# define basic_string _STLP_NON_DBG_NAME(str) -#endif - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# define __size_type__ size_t -# define size_type size_t -# define iterator _CharT* -#else -# define __size_type__ _STLP_TYPENAME_ON_RETURN_TYPE basic_string<_CharT,_Traits,_Alloc>::size_type -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// A helper class to use a char_traits as a function object. -template <class _Traits> -struct _Not_within_traits : public unary_function<typename _Traits::char_type, bool> { - typedef typename _Traits::char_type _CharT; - const _CharT* _M_first; - const _CharT* _M_last; - - _Not_within_traits(const _CharT* __f, const _CharT* __l) - : _M_first(__f), _M_last(__l) {} - - bool operator()(const _CharT& __x) const { - return find_if(_M_first, _M_last, - _STLP_PRIV _Eq_char_bound<_Traits>(__x)) == _M_last; - } -}; - -// ------------------------------------------------------------ -// Non-inline declarations. - -#if !defined (basic_string) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -// Change the string's capacity so that it is large enough to hold -// at least __res_arg elements, plus the terminating _CharT(). Note that, -// if __res_arg < capacity(), this member function may actually decrease -// the string's capacity. -template <class _CharT, class _Traits, class _Alloc> -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; - if (__n <= capacity() + 1) - return; - - pointer __new_start = this->_M_end_of_storage.allocate(__n, __n); - pointer __new_finish = __new_start; - - _STLP_TRY { - __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), this->_M_Finish(), __new_start); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start, __new_finish), - this->_M_end_of_storage.deallocate(__new_start, __n))) - - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __n); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT,_Traits,_Alloc>& -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)); - if (__n > 0) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _Traits::assign(this->_M_finish + 1, __n - 1, __c); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __uninitialized_fill_n(this->_M_finish + 1, __n - 1, __c); - _STLP_TRY { - _M_construct_null(this->_M_finish + __n); - } - _STLP_UNWIND(this->_M_destroy_ptr_range(this->_M_finish + 1, this->_M_finish + __n)) - _Traits::assign(*end(), __c); - this->_M_finish += __n; - } - return *this; -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT, _Traits, _Alloc>& -basic_string<_CharT, _Traits, _Alloc>::_M_append(const _CharT* __first, const _CharT* __last) { - if (__first != __last) { - const size_type __old_size = size(); - ptrdiff_t __n = __last - __first; - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len, __len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), this->_M_Finish(), __new_start); - __new_finish = _STLP_PRIV __ucopy(__first, __last, __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - else { - const _CharT* __f1 = __first; - ++__f1; -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy(__f1, __last, this->_M_Finish() + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __ucopy(__f1, __last, this->_M_finish + 1); - _STLP_TRY { - _M_construct_null(this->_M_finish + __n); - } - _STLP_UNWIND(this->_M_destroy_ptr_range(this->_M_finish + 1, this->_M_finish + __n)) - _Traits::assign(*end(), *__first); - this->_M_finish += __n; - } - } - return *this; -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT,_Traits,_Alloc>& -basic_string<_CharT,_Traits,_Alloc>::assign(size_type __n, _CharT __c) { - if (__n <= size()) { - _Traits::assign(this->_M_Start(), __n, __c); - erase(begin() + __n, end()); - } - else { - if (__n < capacity()) { - _Traits::assign(this->_M_Start(), size(), __c); - append(__n - size(), __c); - } - else { - _Self __str(__n, __c); - this->swap(__str); - } - } - return *this; -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT,_Traits,_Alloc>& -basic_string<_CharT,_Traits,_Alloc>::_M_assign(const _CharT* __f, const _CharT* __l) { - ptrdiff_t __n = __l - __f; - if (__STATIC_CAST(size_type, __n) <= size()) { - _Traits::copy(this->_M_Start(), __f, __n); - erase(begin() + __n, end()); - } - else { - _Traits::copy(this->_M_Start(), __f, size()); - _M_append(__f + size(), __l); - } - return *this; -} - -template <class _CharT, class _Traits, class _Alloc> -_CharT* basic_string<_CharT,_Traits,_Alloc> ::_M_insert_aux(_CharT* __p, - _CharT __c) { - pointer __new_pos = __p; - if (this->_M_finish + 1 < this->_M_end_of_storage._M_data) { - _M_construct_null(this->_M_finish + 1); - _Traits::move(__p + 1, __p, this->_M_finish - __p); - _Traits::assign(*__p, __c); - ++this->_M_finish; - } - else { - const size_type __old_len = size(); - size_type __len = __old_len + (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 { - __new_pos = _STLP_PRIV __ucopy(this->_M_Start(), __p, __new_start); - _Copy_Construct(__new_pos, __c); - __new_finish = __new_pos + 1; - __new_finish = _STLP_PRIV __ucopy(__p, this->_M_finish, __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - return __new_pos; -} - -template <class _CharT, class _Traits, class _Alloc> -void basic_string<_CharT,_Traits,_Alloc>::insert(iterator __pos, - size_t __n, _CharT __c) { - if (__n != 0) { - if (size_type(this->_M_end_of_storage._M_data - this->_M_finish) >= __n + 1) { - const size_type __elems_after = this->_M_finish - __pos; - pointer __old_finish = this->_M_finish; - if (__elems_after >= __n) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy((this->_M_finish - __n) + 1, this->_M_finish + 1, this->_M_finish + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __ucopy((this->_M_finish - __n) + 1, this->_M_finish + 1, - this->_M_finish + 1); - this->_M_finish += __n; - _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1); - _Traits::assign(__pos, __n, __c); - } - else { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _Traits::assign(this->_M_finish + 1, __n - __elems_after - 1, __c); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __uninitialized_fill_n(this->_M_finish + 1, __n - __elems_after - 1, __c); - this->_M_finish += __n - __elems_after; - _STLP_TRY { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy(__pos, __old_finish + 1, this->_M_finish); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __ucopy(__pos, __old_finish + 1, this->_M_finish); - this->_M_finish += __elems_after; - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__old_finish + 1, this->_M_finish), - this->_M_finish = __old_finish)) - _Traits::assign(__pos, __elems_after + 1, __c); - } - } - else { - const size_type __old_size = size(); - size_type __len = __old_size + (max)(__old_size, __n) + 1; - pointer __new_start = this->_M_end_of_storage.allocate(__len, __len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), __pos, __new_start); - __new_finish = _STLP_PRIV __uninitialized_fill_n(__new_finish, __n, __c); - __new_finish = _STLP_PRIV __ucopy(__pos, this->_M_finish, __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - } -} - -template <class _CharT, class _Traits, class _Alloc> -void basic_string<_CharT,_Traits,_Alloc>::_M_insert(iterator __pos, - const _CharT* __first, const _CharT* __last, - bool __self_ref) { - //this version has to take care about the auto referencing - if (__first != __last) { - const ptrdiff_t __n = __last - __first; - if (this->_M_end_of_storage._M_data - this->_M_finish >= __n + 1) { - const ptrdiff_t __elems_after = this->_M_finish - __pos; - pointer __old_finish = this->_M_finish; - if (__elems_after >= __n) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy((this->_M_finish - __n) + 1, this->_M_finish + 1, this->_M_finish + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __ucopy((this->_M_finish - __n) + 1, this->_M_finish + 1, this->_M_finish + 1); - this->_M_finish += __n; - _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1); - if (!__self_ref || __last < __pos) { - _M_copy(__first, __last, __pos); - } - else { - //We have to check that the source buffer hasn't move - if (__first >= __pos) { - //The source buffer has move - __first += __n; - __last += __n; - _M_copy(__first, __last, __pos); - } - else { - //The source buffer hasn't move, it has been duplicated - _M_move(__first, __last, __pos); - } - } - } - else { - const_iterator __mid = __first; - __mid += __elems_after + 1; -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy(__mid, __last, this->_M_finish + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __ucopy(__mid, __last, this->_M_finish + 1); - this->_M_finish += __n - __elems_after; - _STLP_TRY { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy(__pos, __old_finish + 1, this->_M_finish); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_PRIV __ucopy(__pos, __old_finish + 1, this->_M_finish); - this->_M_finish += __elems_after; - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__old_finish + 1, this->_M_finish), - this->_M_finish = __old_finish)) - if (!__self_ref) - _M_copy(__first, __mid, __pos); - else - _M_move(__first, __mid, __pos); - } - } - else { - const size_type __old_size = size(); - size_type __len = __old_size + (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 { - __new_finish = _STLP_PRIV __ucopy(this->_M_Start(), __pos, __new_start); - __new_finish = _STLP_PRIV __ucopy(__first, __last, __new_finish); - __new_finish = _STLP_PRIV __ucopy(__pos, this->_M_finish, __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - } -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT,_Traits,_Alloc>& -basic_string<_CharT,_Traits,_Alloc> ::replace(iterator __first, iterator __last, - size_type __n, _CharT __c) { - size_type __len = (size_type)(__last - __first); - - if (__len >= __n) { - _Traits::assign(__first, __n, __c); - erase(__first + __n, __last); - } - else { - _Traits::assign(__first, __len, __c); - insert(__last, __n - __len, __c); - } - return *this; -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT,_Traits,_Alloc>& -basic_string<_CharT,_Traits,_Alloc> ::_M_replace(iterator __first, iterator __last, - const _CharT* __f, const _CharT* __l, - bool __self_ref) { - const ptrdiff_t __n = __l - __f; - const difference_type __len = __last - __first; - if (__len >= __n) { - if (!__self_ref || __l < __first || __f >= __last) - _M_copy(__f, __l, __first); - else - _M_move(__f, __l, __first); - erase(__first + __n, __last); - } - else { - if (!__self_ref || (__f >= __last) || (__l <= __first)) { - //no overlap: - const_iterator __m = __f + __len; - _M_copy(__f, __m, __first); - _M_insert(__last, __m, __l, false ); - } - else { - //we have to take care of overlaping - if (__f < __first) { - const_iterator __m = __f + __len; - //We have to deal with possible reallocation because we do insert first. - const difference_type __off_dest = __first - this->begin(); - const difference_type __off_src = __f - this->begin(); - _M_insert(__last, __m, __l, true); - _Traits::move(begin() + __off_dest, begin() + __off_src, __len); - } - else { - const_iterator __m = __f + __len; - _Traits::move(__first, __f, __len); - _M_insert(__last, __m, __l, true); - } - } - } - return *this; -} - -template <class _CharT, class _Traits, class _Alloc> __size_type__ -basic_string<_CharT,_Traits,_Alloc> ::find(const _CharT* __s, size_type __pos, - size_type __n) const { - const size_t __len = size(); - if (__pos >= __len || __pos + __n > __len) - return npos; - else { - const_pointer __result = - _STLP_STD::search(this->_M_Start() + __pos, this->_M_Finish(), - __s, __s + __n, _STLP_PRIV _Eq_traits<_Traits>()); - return __result != this->_M_Finish() ? __result - this->_M_Start() : npos; - } -} - -template <class _CharT, class _Traits, class _Alloc> __size_type__ -basic_string<_CharT,_Traits,_Alloc> ::find(_CharT __c, size_type __pos) const { - if (__pos >= size()) /*__pos + 1 > size()*/ - return npos; - else { - const_pointer __result = - _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(), - _STLP_PRIV _Eq_char_bound<_Traits>(__c)); - return __result != this->_M_Finish() ? __result - this->_M_Start() : npos; - } -} - -template <class _CharT, class _Traits, class _Alloc> -__size_type__ -basic_string<_CharT,_Traits,_Alloc>::rfind(const _CharT* __s, size_type __pos, size_type __n) const -{ - const size_type __len = size(); - if ( __len < __n ) { - return npos; - } - const_pointer __last = this->_M_Start() + (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; -} - -template <class _CharT, class _Traits, class _Alloc> -__size_type__ -basic_string<_CharT,_Traits,_Alloc>::rfind(_CharT __c, size_type __pos) const -{ - const size_type __len = size(); - if ( __len < 1 ) { - return npos; - } - const_iterator __last = begin() + (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)); - return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos; -} - -template <class _CharT, class _Traits, class _Alloc> __size_type__ -basic_string<_CharT,_Traits,_Alloc> ::find_first_of(const _CharT* __s, size_type __pos, - size_type __n) const { - if (__pos >= size()) /*__pos + 1 > size()*/ - return npos; - else { - const_iterator __result = _STLP_PRIV __find_first_of(begin() + __pos, end(), - __s, __s + __n, - _STLP_PRIV _Eq_traits<_Traits>()); - return __result != end() ? __result - begin() : npos; - } -} - -template <class _CharT, class _Traits, class _Alloc> - __size_type__ -basic_string<_CharT,_Traits,_Alloc> ::find_last_of(const _CharT* __s, size_type __pos, - size_type __n) const -{ - const size_type __len = size(); - if ( __len < 1 ) { - return npos; - } - const const_iterator __last = begin() + (min)(__len - 1, __pos) + 1; - const const_reverse_iterator __rresult = - _STLP_PRIV __find_first_of(const_reverse_iterator(__last), rend(), - __s, __s + __n, - _STLP_PRIV _Eq_traits<_Traits>()); - return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos; -} - - -template <class _CharT, class _Traits, class _Alloc> __size_type__ -basic_string<_CharT,_Traits,_Alloc> ::find_first_not_of(const _CharT* __s, size_type __pos, - size_type __n) const { - typedef typename _Traits::char_type _CharType; - if (__pos >= size()) /*__pos + 1 >= size()*/ - return npos; - else { - const_pointer __result = _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(), - _STLP_PRIV _Not_within_traits<_Traits>(__CONST_CAST(const _CharType*, __s), - __CONST_CAST(const _CharType*, __s) + __n)); - return __result != this->_M_finish ? __result - this->_M_Start() : npos; - } -} - -template <class _CharT, class _Traits, class _Alloc> __size_type__ -basic_string<_CharT,_Traits,_Alloc> ::find_first_not_of(_CharT __c, size_type __pos) const { - if (1 > size()) - return npos; - else { - const_pointer __result = _STLP_STD::find_if(this->_M_Start() + __pos, this->_M_Finish(), - _STLP_PRIV _Neq_char_bound<_Traits>(__c)); - return __result != this->_M_finish ? __result - this->_M_Start() : npos; - } -} - -template <class _CharT, class _Traits, class _Alloc> -__size_type__ -basic_string<_CharT,_Traits,_Alloc>::find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const -{ - typedef typename _Traits::char_type _CharType; - const size_type __len = size(); - if ( __len < 1 ) { - return npos; - } - const_iterator __last = begin() + (min)(__len - 1, __pos) + 1; - const_reverse_iterator __rlast = const_reverse_iterator(__last); - const_reverse_iterator __rresult = - _STLP_STD::find_if(__rlast, rend(), - _STLP_PRIV _Not_within_traits<_Traits>((const _CharType*)__s, - (const _CharType*)__s + __n)); - return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos; -} - -template <class _CharT, class _Traits, class _Alloc> -__size_type__ -basic_string<_CharT, _Traits, _Alloc>::find_last_not_of(_CharT __c, size_type __pos) const -{ - const size_type __len = size(); - if ( __len < 1 ) { - return npos; - } - const_iterator __last = begin() + (min)(__len - 1, __pos) + 1; - const_reverse_iterator __rlast = const_reverse_iterator(__last); - const_reverse_iterator __rresult = - _STLP_STD::find_if(__rlast, rend(), - _STLP_PRIV _Neq_char_bound<_Traits>(__c)); - return __rresult != rend() ? (__rresult.base() - 1) - begin() : npos; -} - -#if !defined (basic_string) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -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()); - _STLP_STD::copy(__s.begin(), __s.begin() + __n, __buf); - __buf[__n] = _CharT(); - } -} - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#include <stl/_range_errors.h> - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// _String_base methods -template <class _Tp, class _Alloc> -void _String_base<_Tp,_Alloc>::_M_throw_length_error() const -{ __stl_throw_length_error("basic_string"); } - -template <class _Tp, class _Alloc> -void _String_base<_Tp, _Alloc>::_M_throw_out_of_range() const -{ __stl_throw_out_of_range("basic_string"); } - -template <class _Tp, class _Alloc> -void _String_base<_Tp, _Alloc>::_M_allocate_block(size_t __n) { - if ((__n <= (max_size() + 1)) && (__n > 0)) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (__n > _DEFAULT_SIZE) { - this->_M_buffers._M_dynamic_buf = _M_end_of_storage.allocate(__n, __n); - this->_M_finish = this->_M_buffers._M_dynamic_buf; - this->_M_end_of_storage._M_data = this->_M_finish + __n; - } -#else - this->_M_start = _M_end_of_storage.allocate(__n, __n); - this->_M_finish = this->_M_start; - this->_M_end_of_storage._M_data = this->_M_finish + __n; -#endif /*_STLP_USE_SHORT_STRING_OPTIM */ - } else { - this->_M_throw_length_error(); - } -} - -#if !defined (basic_string) -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT* __s) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) { - _STLP_FIX_LITERAL_BUG(__s) - _M_range_initialize(__s, __s + traits_type::length(__s)); -} -#endif - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT, _Traits, _Alloc>::basic_string(const _CharT* __s, - const allocator_type& __a) - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) { - _STLP_FIX_LITERAL_BUG(__s) - _M_range_initialize(__s, __s + traits_type::length(__s)); -} - -template <class _CharT, class _Traits, class _Alloc> -basic_string<_CharT, _Traits, _Alloc>::basic_string(const basic_string<_CharT, _Traits, _Alloc> & __s) - : _STLP_PRIV _String_base<_CharT,_Alloc>(__s.get_allocator()) -{ _M_range_initialize(__s._M_Start(), __s._M_Finish()); } - -#if defined (basic_string) -_STLP_MOVE_TO_STD_NAMESPACE -# undef basic_string -#else -/* If basic_string is defined it means that it won't be the basic_string class - * exposed to STLport users so npos do not need external linkage. - */ -# if !defined (_STLP_STATIC_CONST_INIT_BUG) -# if !defined (__GNUC__) || (__GNUC__ != 2) || (__GNUC_MINOR__ != 96) -template <class _CharT, class _Traits, class _Alloc> -const size_t basic_string<_CharT, _Traits, _Alloc>::npos; -# endif -# endif -#endif - -_STLP_END_NAMESPACE - -#undef __size_type__ -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# undef size_type -# undef iterator -#endif - -#endif /* _STLP_STRING_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_string.h b/WebKit/android/stlport/stl/_string.h deleted file mode 100644 index 928dedd..0000000 --- a/WebKit/android/stlport/stl/_string.h +++ /dev/null @@ -1,1416 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_STRING_H -#define _STLP_INTERNAL_STRING_H - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_STRING_FWD_H -# include <stl/_string_fwd.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_UNINITIALIZED_H -# include <stl/_uninitialized.h> -#endif - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -# include <stl/_string_sum.h> -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -#if defined (__MWERKS__) && ! defined (_STLP_USE_OWN_NAMESPACE) - -// MSL implementation classes expect to see the definition of streampos -// when this header is included. We expect this to be fixed in later MSL -// implementations -# if !defined( __MSL_CPP__ ) || __MSL_CPP__ < 0x4105 -# include <stl/msl_string.h> -# endif -#endif // __MWERKS__ - -/* - * Standard C++ string class. This class has performance - * characteristics very much like vector<>, meaning, for example, that - * it does not perform reference-count or copy-on-write, and that - * concatenation of two strings is an O(N) operation. - - * There are three reasons why basic_string is not identical to - * vector. - * First, basic_string can always stores a null character - * at the end (macro dependent); this makes it possible for c_str to - * be a fast operation. - * Second, the C++ standard requires basic_string to copy elements - * using char_traits<>::assign, char_traits<>::copy, and - * char_traits<>::move. This means that all of vector<>'s low-level - * operations must be rewritten. Third, basic_string<> has a lot of - * extra functions in its interface that are convenient but, strictly - * speaking, redundant. - - * Additionally, the C++ standard imposes a major restriction: according - * to the standard, the character type _CharT must be a POD type. This - * implementation weakens that restriction, and allows _CharT to be a - * a user-defined non-POD type. However, _CharT must still have a - * default constructor. - */ - -#include <stl/_string_base.h> - -_STLP_BEGIN_NAMESPACE - -// ------------------------------------------------------------ -// Class basic_string. - -// Class invariants: -// (1) [start, finish) is a valid range. -// (2) Each iterator in [start, finish) points to a valid object -// of type value_type. -// (3) *finish is a valid object of type value_type; when -// value_type is not a POD it is value_type(). -// (4) [finish + 1, end_of_storage) is a valid range. -// (5) Each iterator in [finish + 1, end_of_storage) points to -// unininitialized memory. - -// Note one important consequence: a string of length n must manage -// a block of memory whose size is at least n + 1. - -struct _String_reserve_t {}; - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -# define basic_string _STLP_NO_MEM_T_NAME(str) -#elif defined (_STLP_DEBUG) -# define basic_string _STLP_NON_DBG_NAME(str) -#endif - -#if defined (basic_string) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _CharT, class _Traits, class _Alloc> -class basic_string : protected _STLP_PRIV _String_base<_CharT,_Alloc> -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (basic_string) - , public __stlport_class<basic_string<_CharT, _Traits, _Alloc> > -#endif -{ -protected: // Protected members inherited from base. - typedef _STLP_PRIV _String_base<_CharT,_Alloc> _Base; - typedef basic_string<_CharT, _Traits, _Alloc> _Self; - // fbp : used to optimize char/wchar_t cases, and to simplify - // _STLP_DEF_CONST_PLCT_NEW_BUG problem workaround - typedef typename _IsIntegral<_CharT>::_Ret _Char_Is_Integral; - typedef typename _IsPOD<_CharT>::_Type _Char_Is_POD; - typedef random_access_iterator_tag r_a_i_t; - -public: - typedef _CharT value_type; - typedef _Traits traits_type; - - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef typename _Base::size_type size_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag _Iterator_category; - - typedef const value_type* const_iterator; - typedef value_type* iterator; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -#include <stl/_string_npos.h> - - typedef _String_reserve_t _Reserve_t; - -public: // Constructor, destructor, assignment. - typedef typename _Base::allocator_type allocator_type; - - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR((const allocator_type&)this->_M_end_of_storage, _CharT); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit basic_string(const allocator_type& __a = allocator_type()) -#else - basic_string() - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), _Base::_DEFAULT_SIZE) - { _M_terminate_string(); } - explicit basic_string(const allocator_type& __a) -#endif - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, _Base::_DEFAULT_SIZE) - { _M_terminate_string(); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - basic_string(_Reserve_t, size_t __n, - const allocator_type& __a = allocator_type()) -#else - basic_string(_Reserve_t, size_t __n) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), __n + 1) - { _M_terminate_string(); } - basic_string(_Reserve_t, size_t __n, const allocator_type& __a) -#endif - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, __n + 1) - { _M_terminate_string(); } - - basic_string(const _Self&); - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - basic_string(const _Self& __s, size_type __pos, size_type __n = npos, - const allocator_type& __a = allocator_type()) -#else - basic_string(const _Self& __s, size_type __pos) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) { - if (__pos > __s.size()) - this->_M_throw_out_of_range(); - else - _M_range_initialize(__s._M_Start() + __pos, __s._M_Finish()); - } - basic_string(const _Self& __s, size_type __pos, size_type __n) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) { - if (__pos > __s.size()) - this->_M_throw_out_of_range(); - else - _M_range_initialize(__s._M_Start() + __pos, - __s._M_Start() + __pos + (min) (__n, __s.size() - __pos)); - } - basic_string(const _Self& __s, size_type __pos, size_type __n, - const allocator_type& __a) -#endif - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) { - if (__pos > __s.size()) - this->_M_throw_out_of_range(); - else - _M_range_initialize(__s._M_Start() + __pos, - __s._M_Start() + __pos + (min) (__n, __s.size() - __pos)); - } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - basic_string(const _CharT* __s, size_type __n, - const allocator_type& __a = allocator_type()) -#else - basic_string(const _CharT* __s, size_type __n) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) { - _STLP_FIX_LITERAL_BUG(__s) - _M_range_initialize(__s, __s + __n); - } - basic_string(const _CharT* __s, size_type __n, const allocator_type& __a) -#endif - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) { - _STLP_FIX_LITERAL_BUG(__s) - _M_range_initialize(__s, __s + __n); - } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - basic_string(const _CharT* __s, - const allocator_type& __a = allocator_type()); -#else - basic_string(const _CharT* __s); - basic_string(const _CharT* __s, const allocator_type& __a); -#endif - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - basic_string(size_type __n, _CharT __c, - const allocator_type& __a = allocator_type()) -#else - basic_string(size_type __n, _CharT __c) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type(), __n + 1) { -# if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _Traits::assign(this->_M_Start(), __n, __c); - this->_M_finish = this->_M_Start() + __n; - } - else -# endif - this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __c); - _M_terminate_string(); - } - basic_string(size_type __n, _CharT __c, const allocator_type& __a) -#endif - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a, __n + 1) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _Traits::assign(this->_M_Start(), __n, __c); - this->_M_finish = this->_M_Start() + __n; - } - else -#endif - this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __c); - _M_terminate_string(); - } - - basic_string(__move_source<_Self> src) - : _STLP_PRIV _String_base<_CharT,_Alloc>(__move_source<_Base>(src.get())) {} - - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. -#if defined (_STLP_MEMBER_TEMPLATES) && !(defined (__MRC__) || (defined(__SC__) && !defined(__DMC__))) //*ty 04/30/2001 - mpw compilers choke on this ctor -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - template <class _InputIterator> - basic_string(_InputIterator __f, _InputIterator __l, - const allocator_type & __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__f, __l, _Integral()); - } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - basic_string(_InputIterator __f, _InputIterator __l) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__f, __l, _Integral()); - } -# endif -# else - /* We need an additionnal constructor to build an empty string without - * any allocation or termination char*/ -protected: - struct _CalledFromWorkaround_t {}; - basic_string(_CalledFromWorkaround_t, const allocator_type &__a) - : _String_base<_CharT,_Alloc>(__a) {} -public: -# endif /* _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND */ -#endif /* !__MRC__ || (__SC__ && !__DMC__) */ - -#if !(defined (_STLP_MEMBER_TEMPLATES) && !(defined (__MRC__) || (defined (__SC__) && !defined (__DMC__)))) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) || \ - defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - basic_string(const _CharT* __f, const _CharT* __l, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_PRIV _String_base<_CharT,_Alloc>(__a) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _M_range_initialize(__f, __l); - } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - basic_string(const _CharT* __f, const _CharT* __l) - : _STLP_PRIV _String_base<_CharT,_Alloc>(allocator_type()) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _M_range_initialize(__f, __l); - } -# endif -#endif /* _STLP_MEMBER_TEMPLATES */ - -private: - template <class _InputIter> - void _M_range_initialize(_InputIter __f, _InputIter __l, - const input_iterator_tag &__tag) { - this->_M_allocate_block(); - _M_construct_null(this->_M_Finish()); - _STLP_TRY { - _M_appendT(__f, __l, __tag); - } - _STLP_UNWIND(this->_M_destroy_range()) - } - - template <class _ForwardIter> - void _M_range_initialize(_ForwardIter __f, _ForwardIter __l, - const forward_iterator_tag &) { - difference_type __n = distance(__f, __l); - this->_M_allocate_block(__n + 1); -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _M_copyT(__f, __l, this->_M_Start()); - this->_M_finish = this->_M_Start() + __n; - } - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start()); - this->_M_terminate_string(); - } - - template <class _InputIter> - void _M_range_initializeT(_InputIter __f, _InputIter __l) { - _M_range_initialize(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - } - - template <class _Integer> - void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/) { - this->_M_allocate_block(__n + 1); -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _Traits::assign(this->_M_Start(), __n, __x); - this->_M_finish = this->_M_Start() + __n; - } - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_Start(), __n, __x); - this->_M_terminate_string(); - } - - template <class _InputIter> - void _M_initialize_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) { - _M_range_initializeT(__f, __l); - } - -public: - ~basic_string() - { this->_M_destroy_range(); } - - _Self& operator=(const _Self& __s) { - if (&__s != this) - _M_assign(__s._M_Start(), __s._M_Finish()); - return *this; - } - - _Self& operator=(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return _M_assign(__s, __s + traits_type::length(__s)); - } - - _Self& operator=(_CharT __c) - { return assign(__STATIC_CAST(size_type,1), __c); } - -protected: - - static _CharT _STLP_CALL _M_null() - { return _STLP_DEFAULT_CONSTRUCTED(_CharT); } - -protected: // Helper functions used by constructors - // and elsewhere. - // fbp : simplify integer types (char, wchar) - void _M_construct_null_aux(_CharT* __p, const __false_type& /*_Is_Integral*/) const { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _Traits::assign(*__p, _M_null()); - else -#endif /*_STLP_USE_SHORT_STRING_OPTIM*/ - _STLP_STD::_Construct(__p); - } - void _M_construct_null_aux(_CharT* __p, const __true_type& /*_Is_Integral*/) const - { *__p = 0; } - - void _M_force_construct_null(_CharT*, const __true_type& /* _Is_POD */) const - { /*Nothing to do*/ } - void _M_force_construct_null(_CharT* __p, const __false_type& /* _Is_POD */) const - { _M_construct_null_aux(__p, _Char_Is_Integral()); } - - void _M_construct_null(_CharT* __p) const { - typedef __false_type _Answer; - - _M_force_construct_null(__p, _Answer()); - } - -protected: - // Helper functions used by constructors. It is a severe error for - // any of them to be called anywhere except from within constructors. - void _M_terminate_string_aux(const __false_type& __is_integral) { - _STLP_TRY { - _M_construct_null_aux(this->_M_Finish(), __is_integral); - } - _STLP_UNWIND(this->_M_destroy_range(0,0)) - } - - void _M_terminate_string_aux(const __true_type& __is_integral) - { _M_construct_null_aux(this->_M_Finish(), __is_integral); } - - void _M_force_terminate_string(const __true_type& /* _Is_POD */) - { /*Nothing to do*/ } - void _M_force_terminate_string(const __false_type& /* _Is_POD */) - { _M_terminate_string_aux(_Char_Is_Integral()); } - - void _M_terminate_string() { - typedef __false_type _Answer; - - _M_force_terminate_string(_Answer()); - } - - bool _M_inside(const _CharT* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - return (__s >= this->_M_Start()) && (__s < this->_M_Finish()); - } - - void _M_range_initialize(const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - ptrdiff_t __n = __l - __f; - this->_M_allocate_block(__n + 1); -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _M_copy(__f, __l, this->_M_Start()); - this->_M_finish = this->_M_Start() + __n; - } - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start()); - _M_terminate_string(); - } - -public: // Iterators. - iterator begin() { return this->_M_Start(); } - iterator end() { return this->_M_Finish(); } - const_iterator begin() const { return this->_M_Start(); } - const_iterator end() const { return this->_M_Finish(); } - - reverse_iterator rbegin() - { return reverse_iterator(this->_M_Finish()); } - reverse_iterator rend() - { return reverse_iterator(this->_M_Start()); } - const_reverse_iterator rbegin() const - { return const_reverse_iterator(this->_M_Finish()); } - const_reverse_iterator rend() const - { return const_reverse_iterator(this->_M_Start()); } - -public: // Size, capacity, etc. - size_type size() const { return this->_M_Finish() - this->_M_Start(); } - size_type length() const { return size(); } - size_t max_size() const { return _Base::max_size(); } - - void resize(size_type __n, _CharT __c) { - if (__n <= size()) - erase(begin() + __n, end()); - else - append(__n - size(), __c); - } - - void resize(size_type __n) { resize(__n, _M_null()); } - - void reserve(size_type = 0); - - size_type capacity() const - { return (this->_M_end_of_storage._M_data - this->_M_Start()) - 1; } - - void clear() { - if (!empty()) { - _Traits::assign(*(this->_M_Start()), _M_null()); - this->_M_destroy_range(1); - this->_M_finish = this->_M_Start(); - } - } - - bool empty() const { return this->_M_Start() == this->_M_Finish(); } - -public: // Element access. - - const_reference operator[](size_type __n) const - { return *(this->_M_Start() + __n); } - reference operator[](size_type __n) - { return *(this->_M_Start() + __n); } - - const_reference at(size_type __n) const { - if (__n >= size()) - this->_M_throw_out_of_range(); - return *(this->_M_Start() + __n); - } - - reference at(size_type __n) { - if (__n >= size()) - this->_M_throw_out_of_range(); - return *(this->_M_Start() + __n); - } - -public: // Append, operator+=, push_back. - - _Self& operator+=(const _Self& __s) { return append(__s); } - _Self& operator+=(const _CharT* __s) { _STLP_FIX_LITERAL_BUG(__s) return append(__s); } - _Self& operator+=(_CharT __c) { push_back(__c); return *this; } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -private: // Helper functions for append. - template <class _InputIter> - _Self& _M_appendT(_InputIter __first, _InputIter __last, - const input_iterator_tag &) { - for ( ; __first != __last ; ++__first) - push_back(*__first); - return *this; - } - - template <class _ForwardIter> - _Self& _M_appendT(_ForwardIter __first, _ForwardIter __last, - const forward_iterator_tag &) { - if (__first != __last) { - const size_type __old_size = this->size(); - difference_type __n = distance(__first, __last); - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len, __len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = uninitialized_copy(this->_M_Start(), this->_M_Finish(), __new_start); - __new_finish = uninitialized_copy(__first, __last, __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start, __len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - else { - _ForwardIter __f1 = __first; - ++__f1; -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copyT(__f1, __last, this->_M_Finish() + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy(__f1, __last, this->_M_Finish() + 1); - _STLP_TRY { - _M_construct_null(this->_M_Finish() + __n); - } - _STLP_UNWIND(this->_M_destroy_ptr_range(this->_M_Finish() + 1, this->_M_Finish() + __n)) - _Traits::assign(*this->_M_finish, *__first); - this->_M_finish += __n; - } - } - return *this; - } - - template <class _Integer> - _Self& _M_append_dispatch(_Integer __n, _Integer __x, const __true_type& /*Integral*/) - { return append((size_type) __n, (_CharT) __x); } - - template <class _InputIter> - _Self& _M_append_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*Integral*/) - { return _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); } - -public: - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - _Self& append(_InputIter __first, _InputIter __last) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - return _M_append_dispatch(__first, __last, _Integral()); - } -# endif -#endif - -protected: - _Self& _M_append(const _CharT* __first, const _CharT* __last); - -public: -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - _Self& append(const _CharT* __first, const _CharT* __last) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - return _M_append(__first, __last); - } -# endif -#endif - - _Self& append(const _Self& __s) - { return _M_append(__s._M_Start(), __s._M_Finish()); } - - _Self& append(const _Self& __s, - size_type __pos, size_type __n) { - 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)); - } - - _Self& append(const _CharT* __s, size_type __n) - { _STLP_FIX_LITERAL_BUG(__s) return _M_append(__s, __s+__n); } - _Self& append(const _CharT* __s) - { _STLP_FIX_LITERAL_BUG(__s) return _M_append(__s, __s + traits_type::length(__s)); } - _Self& append(size_type __n, _CharT __c); - -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))); - _M_construct_null(this->_M_Finish() + 1); - _Traits::assign(*(this->_M_Finish()), __c); - ++this->_M_finish; - } - - void pop_back() { - _Traits::assign(*(this->_M_Finish() - 1), _M_null()); - this->_M_destroy_back(); - --this->_M_finish; - } - -public: // Assign - _Self& assign(const _Self& __s) - { return _M_assign(__s._M_Start(), __s._M_Finish()); } - - _Self& assign(const _Self& __s, - size_type __pos, size_type __n) { - 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)); - } - - _Self& assign(const _CharT* __s, size_type __n) - { _STLP_FIX_LITERAL_BUG(__s) return _M_assign(__s, __s + __n); } - - _Self& assign(const _CharT* __s) - { _STLP_FIX_LITERAL_BUG(__s) return _M_assign(__s, __s + _Traits::length(__s)); } - - _Self& assign(size_type __n, _CharT __c); - -#if defined (_STLP_MEMBER_TEMPLATES) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -private: // Helper functions for assign. - template <class _Integer> - _Self& _M_assign_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/) - { return assign((size_type) __n, (_CharT) __x); } - - template <class _InputIter> - _Self& _M_assign_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) { - pointer __cur = this->_M_Start(); - while (__f != __l && __cur != this->_M_Finish()) { - _Traits::assign(*__cur, *__f); - ++__f; - ++__cur; - } - if (__f == __l) - erase(__cur, this->end()); - else - _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - return *this; - } - -public: - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - _Self& assign(_InputIter __first, _InputIter __last) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - return _M_assign_dispatch(__first, __last, _Integral()); - } -# endif -#endif - -protected: - _Self& _M_assign(const _CharT* __f, const _CharT* __l); - -public: - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - _Self& assign(const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - return _M_assign(__f, __l); - } -# endif -#endif - -public: // Insert - - _Self& insert(size_type __pos, const _Self& __s) { - if (__pos > size()) - this->_M_throw_out_of_range(); - if (size() > max_size() - __s.size()) - this->_M_throw_length_error(); - _M_insert(begin() + __pos, __s._M_Start(), __s._M_Finish(), &__s == this); - return *this; - } - - _Self& insert(size_type __pos, const _Self& __s, - 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); - if (size() > max_size() - __len) - this->_M_throw_length_error(); - _M_insert(begin() + __pos, - __s._M_Start() + __beg, __s._M_Start() + __beg + __len, &__s == this); - return *this; - } - _Self& insert(size_type __pos, const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - if (__pos > size()) - this->_M_throw_out_of_range(); - if (size() > max_size() - __n) - this->_M_throw_length_error(); - _M_insert(begin() + __pos, __s, __s + __n, _M_inside(__s)); - return *this; - } - - _Self& insert(size_type __pos, const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - if (__pos > size()) - this->_M_throw_out_of_range(); - size_type __len = _Traits::length(__s); - if (size() > max_size() - __len) - this->_M_throw_length_error(); - _M_insert(this->_M_Start() + __pos, __s, __s + __len, _M_inside(__s)); - return *this; - } - - _Self& insert(size_type __pos, size_type __n, _CharT __c) { - if (__pos > size()) - this->_M_throw_out_of_range(); - if (size() > max_size() - __n) - this->_M_throw_length_error(); - insert(begin() + __pos, __n, __c); - return *this; - } - - iterator insert(iterator __p, _CharT __c) { - _STLP_FIX_LITERAL_BUG(__p) - if (__p == end()) { - push_back(__c); - return this->_M_Finish() - 1; - } - else - return _M_insert_aux(__p, __c); - } - - void insert(iterator __p, size_t __n, _CharT __c); - -protected: // Helper functions for insert. - - void _M_insert(iterator __p, const _CharT* __first, const _CharT* __last, bool __self_ref); - - pointer _M_insert_aux(pointer, _CharT); - - void _M_copy(const _CharT* __f, const _CharT* __l, _CharT* __res) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _STLP_FIX_LITERAL_BUG(__res) - _Traits::copy(__res, __f, __l - __f); - } - - void _M_move(const _CharT* __f, const _CharT* __l, _CharT* __res) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _Traits::move(__res, __f, __l - __f); - } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - template <class _ForwardIter> - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len, __len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = uninitialized_copy(this->_M_Start(), __pos, __new_start); - __new_finish = uninitialized_copy(__first, __last, __new_finish); - __new_finish = uninitialized_copy(__pos, this->_M_Finish(), __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start, __len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - - template <class _InputIter> - void _M_insertT(iterator __p, _InputIter __first, _InputIter __last, - const input_iterator_tag &) { - for ( ; __first != __last; ++__first) { - __p = insert(__p, *__first); - ++__p; - } - } - - template <class _ForwardIter> - void _M_insertT(iterator __pos, _ForwardIter __first, _ForwardIter __last, - const forward_iterator_tag &) { - if (__first != __last) { - difference_type __n = distance(__first, __last); - if (this->_M_end_of_storage._M_data - this->_M_finish >= __n + 1) { - const difference_type __elems_after = this->_M_finish - __pos; - if (__elems_after >= __n) { -# if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy((this->_M_Finish() - __n) + 1, this->_M_Finish() + 1, this->_M_Finish() + 1); - else -# endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy((this->_M_Finish() - __n) + 1, this->_M_Finish() + 1, this->_M_Finish() + 1); - this->_M_finish += __n; - _Traits::move(__pos + __n, __pos, (__elems_after - __n) + 1); - _M_copyT(__first, __last, __pos); - } - else { - pointer __old_finish = this->_M_Finish(); - _ForwardIter __mid = __first; - advance(__mid, __elems_after + 1); -# if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copyT(__mid, __last, this->_M_Finish() + 1); - else -# endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy(__mid, __last, this->_M_Finish() + 1); - this->_M_finish += __n - __elems_after; - _STLP_TRY { -# if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copy(__pos, __old_finish + 1, this->_M_Finish()); - else -# endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy(__pos, __old_finish + 1, this->_M_Finish()); - this->_M_finish += __elems_after; - } - _STLP_UNWIND((this->_M_destroy_ptr_range(__old_finish + 1, this->_M_Finish()), - this->_M_finish = __old_finish)) - _M_copyT(__first, __mid, __pos); - } - } - else { - _M_insert_overflow(__pos, __first, __last, __n); - } - } - } - - template <class _Integer> - void _M_insert_dispatch(iterator __p, _Integer __n, _Integer __x, - const __true_type& /*Integral*/) { - insert(__p, (size_type) __n, (_CharT) __x); - } - - template <class _InputIter> - void _M_insert_dispatch(iterator __p, _InputIter __first, _InputIter __last, - const __false_type& /*Integral*/) { - _STLP_FIX_LITERAL_BUG(__p) - /* - * Within the basic_string implementation we are only going to check for - * self referencing if iterators are string iterators or _CharT pointers. - * A user could encapsulate those iterator within their own iterator interface - * and in this case lead to a bad behavior, this is a known limitation. - */ - typedef typename _AreSameUnCVTypes<_InputIter, iterator>::_Ret _IsIterator; - typedef typename _AreSameUnCVTypes<_InputIter, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsIterator, _IsConstIterator>::_Ret _CheckInside; - _M_insert_aux(__p, __first, __last, _CheckInside()); - } - - template <class _RandomIter> - void _M_insert_aux (iterator __p, _RandomIter __first, _RandomIter __last, - const __true_type& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__p) - _M_insert(__p, &(*__first), &(*__last), _M_inside(&(*__first))); - } - - template<class _InputIter> - void _M_insert_aux (iterator __p, _InputIter __first, _InputIter __last, - const __false_type& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__p) - _M_insertT(__p, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); - } - - template <class _InputIterator> - void _M_copyT(_InputIterator __first, _InputIterator __last, pointer __result) { - _STLP_FIX_LITERAL_BUG(__result) - for ( ; __first != __last; ++__first, ++__result) - _Traits::assign(*__result, *__first); - } - -# if !defined (_STLP_NO_METHOD_SPECIALIZATION) - void _M_copyT(const _CharT* __f, const _CharT* __l, _CharT* __res) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _STLP_FIX_LITERAL_BUG(__res) - _Traits::copy(__res, __f, __l - __f); - } -# endif - -public: - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - void insert(iterator __p, _InputIter __first, _InputIter __last) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - _M_insert_dispatch(__p, __first, __last, _Integral()); - } -# endif -#endif - -public: - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - void insert(iterator __p, const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _M_insert(__p, __f, __l, _M_inside(__f)); - } -#endif - -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)); - return *this; - } - - iterator erase(iterator __pos) { - // The move includes the terminating _CharT(). - _Traits::move(__pos, __pos + 1, this->_M_Finish() - __pos); - this->_M_destroy_back(); - --this->_M_finish; - return __pos; - } - - iterator erase(iterator __first, iterator __last) { - if (__first != __last) { - // The move includes the terminating _CharT(). - traits_type::move(__first, __last, (this->_M_Finish() - __last) + 1); - pointer __new_finish = this->_M_Finish() - (__last - __first); - this->_M_destroy_ptr_range(__new_finish + 1, this->_M_Finish() + 1); - this->_M_finish = __new_finish; - } - return __first; - } - -public: // Replace. (Conceptually equivalent - // to erase followed by insert.) - _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); - if (size() - __len >= max_size() - __s.size()) - this->_M_throw_length_error(); - return _M_replace(begin() + __pos, begin() + __pos + __len, - __s._M_Start(), __s._M_Finish(), &__s == this); - } - - _Self& replace(size_type __pos1, size_type __n1, const _Self& __s, - 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); - if (size() - __len1 >= max_size() - __len2) - this->_M_throw_length_error(); - return _M_replace(begin() + __pos1, begin() + __pos1 + __len1, - __s._M_Start() + __pos2, __s._M_Start() + __pos2 + __len2, &__s == this); - } - - _Self& replace(size_type __pos, size_type __n1, - const _CharT* __s, size_type __n2) { - _STLP_FIX_LITERAL_BUG(__s) - if (__pos > size()) - this->_M_throw_out_of_range(); - const size_type __len = (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, - __s, __s + __n2, _M_inside(__s)); - } - - _Self& replace(size_type __pos, size_type __n1, const _CharT* __s) { - _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 __n2 = _Traits::length(__s); - if (__n2 > max_size() || size() - __len >= max_size() - __n2) - this->_M_throw_length_error(); - return _M_replace(begin() + __pos, begin() + __pos + __len, - __s, __s + _Traits::length(__s), _M_inside(__s)); - } - - _Self& replace(size_type __pos, size_type __n1, - size_type __n2, _CharT __c) { - if (__pos > size()) - this->_M_throw_out_of_range(); - const size_type __len = (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); - } - - _Self& replace(iterator __first, iterator __last, const _Self& __s) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - return _M_replace(__first, __last, __s._M_Start(), __s._M_Finish(), &__s == this); - } - - _Self& replace(iterator __first, iterator __last, - const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__s) - return _M_replace(__first, __last, __s, __s + __n, _M_inside(__s)); - } - - _Self& replace(iterator __first, iterator __last, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__s) - return _M_replace(__first, __last, __s, __s + _Traits::length(__s), _M_inside(__s)); - } - - _Self& replace(iterator __first, iterator __last, size_type __n, _CharT __c); - -protected: // Helper functions for replace. - _Self& _M_replace(iterator __first, iterator __last, - const _CharT* __f, const _CharT* __l, bool __self_ref); - -public: -#if defined (_STLP_MEMBER_TEMPLATES) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - template <class _Integer> - _Self& _M_replace_dispatch(iterator __first, iterator __last, - _Integer __n, _Integer __x, const __true_type& /*IsIntegral*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return replace(__first, __last, (size_type) __n, (_CharT) __x); - } - - template <class _InputIter> - _Self& _M_replace_dispatch(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, const __false_type& /*IsIntegral*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - typedef typename _AreSameUnCVTypes<_InputIter, iterator>::_Ret _IsIterator; - typedef typename _AreSameUnCVTypes<_InputIter, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsIterator, _IsConstIterator>::_Ret _CheckInside; - return _M_replace_aux(__first, __last, __f, __l, _CheckInside()); - } - - template <class _RandomIter> - _Self& _M_replace_aux(iterator __first, iterator __last, - _RandomIter __f, _RandomIter __l, __true_type const& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return _M_replace(__first, __last, &(*__f), &(*__l), _M_inside(&(*__f))); - } - - template <class _InputIter> - _Self& _M_replace_aux(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, __false_type const& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return _M_replaceT(__first, __last, __f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - } - - template <class _InputIter> - _Self& _M_replaceT(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, const input_iterator_tag&__ite_tag) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - for ( ; __first != __last && __f != __l; ++__first, ++__f) - _Traits::assign(*__first, *__f); - if (__f == __l) - erase(__first, __last); - else - _M_insertT(__last, __f, __l, __ite_tag); - return *this; - } - - template <class _ForwardIter> - _Self& _M_replaceT(iterator __first, iterator __last, - _ForwardIter __f, _ForwardIter __l, const forward_iterator_tag &__ite_tag) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - difference_type __n = distance(__f, __l); - const difference_type __len = __last - __first; - if (__len >= __n) { - _M_copyT(__f, __l, __first); - erase(__first + __n, __last); - } - else { - _ForwardIter __m = __f; - advance(__m, __len); - _M_copyT(__f, __m, __first); - _M_insertT(__last, __m, __l, __ite_tag); - } - return *this; - } - -public: - // Check to see if _InputIter is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - _Self& replace(iterator __first, iterator __last, - _InputIter __f, _InputIter __l) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - return _M_replace_dispatch(__first, __last, __f, __l, _Integral()); - } - -# endif -#endif - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) -# if !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - _Self& replace(iterator __first, iterator __last, - const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - return _M_replace(__first, __last, __f, __l, _M_inside(__f)); - } -# endif -#endif - -public: // Other modifier member functions. - - size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const { - _STLP_FIX_LITERAL_BUG(__s) - if (__pos > size()) - this->_M_throw_out_of_range(); - const size_type __len = (min) (__n, size() - __pos); - _Traits::copy(__s, this->_M_Start() + __pos, __len); - return __len; - } - - void swap(_Self& __s) { - this->_M_Swap(__s); - } - -public: // Conversion to C string. - - const _CharT* c_str() const { return this->_M_Start(); } - const _CharT* data() const { return this->_M_Start(); } - -public: // find. - - size_type find(const _Self& __s, size_type __pos = 0) const - { return find(__s._M_Start(), __pos, __s.size()); } - - size_type find(const _CharT* __s, size_type __pos = 0) const - { _STLP_FIX_LITERAL_BUG(__s) return find(__s, __pos, _Traits::length(__s)); } - - size_type find(const _CharT* __s, size_type __pos, size_type __n) const; - - // WIE: Versant schema compiler 5.2.2 ICE workaround - size_type find(_CharT __c) const { return find(__c, 0); } - size_type find(_CharT __c, size_type __pos /* = 0 */) const; - -public: // rfind. - - size_type rfind(const _Self& __s, size_type __pos = npos) const - { return rfind(__s._M_Start(), __pos, __s.size()); } - - size_type rfind(const _CharT* __s, size_type __pos = npos) const - { _STLP_FIX_LITERAL_BUG(__s) return rfind(__s, __pos, _Traits::length(__s)); } - - size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const; - size_type rfind(_CharT __c, size_type __pos = npos) const; - -public: // find_first_of - - size_type find_first_of(const _Self& __s, size_type __pos = 0) const - { return find_first_of(__s._M_Start(), __pos, __s.size()); } - - size_type find_first_of(const _CharT* __s, size_type __pos = 0) const - { _STLP_FIX_LITERAL_BUG(__s) return find_first_of(__s, __pos, _Traits::length(__s)); } - - size_type find_first_of(const _CharT* __s, size_type __pos, - size_type __n) const; - - size_type find_first_of(_CharT __c, size_type __pos = 0) const - { return find(__c, __pos); } - -public: // find_last_of - - size_type find_last_of(const _Self& __s, - size_type __pos = npos) const - { return find_last_of(__s._M_Start(), __pos, __s.size()); } - - size_type find_last_of(const _CharT* __s, size_type __pos = npos) const - { _STLP_FIX_LITERAL_BUG(__s) return find_last_of(__s, __pos, _Traits::length(__s)); } - - size_type find_last_of(const _CharT* __s, size_type __pos, - size_type __n) const; - - size_type find_last_of(_CharT __c, size_type __pos = npos) const { - return rfind(__c, __pos); - } - -public: // find_first_not_of - - size_type find_first_not_of(const _Self& __s, - size_type __pos = 0) const - { return find_first_not_of(__s._M_Start(), __pos, __s.size()); } - - size_type find_first_not_of(const _CharT* __s, size_type __pos = 0) const - { _STLP_FIX_LITERAL_BUG(__s) return find_first_not_of(__s, __pos, _Traits::length(__s)); } - - size_type find_first_not_of(const _CharT* __s, size_type __pos, - size_type __n) const; - - size_type find_first_not_of(_CharT __c, size_type __pos = 0) const; - -public: // find_last_not_of - - size_type find_last_not_of(const _Self& __s, - size_type __pos = npos) const - { return find_last_not_of(__s._M_Start(), __pos, __s.size()); } - - size_type find_last_not_of(const _CharT* __s, size_type __pos = npos) const - { _STLP_FIX_LITERAL_BUG(__s) return find_last_not_of(__s, __pos, _Traits::length(__s)); } - - size_type find_last_not_of(const _CharT* __s, size_type __pos, - size_type __n) const; - - size_type find_last_not_of(_CharT __c, size_type __pos = npos) const; - -public: // Substring. - _Self substr(size_type __pos = 0, size_type __n = npos) const - { return _Self(*this, __pos, __n, get_allocator()); } - -public: // Compare - int compare(const _Self& __s) const - { return _M_compare(this->_M_Start(), this->_M_Finish(), __s._M_Start(), __s._M_Finish()); } - - int compare(size_type __pos1, size_type __n1, - const _Self& __s) const { - if (__pos1 > size()) - this->_M_throw_out_of_range(); - return _M_compare(this->_M_Start() + __pos1, - this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1), - __s._M_Start(), __s._M_Finish()); - } - - int compare(size_type __pos1, size_type __n1, - const _Self& __s, - size_type __pos2, size_type __n2) const { - 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), - __s._M_Start() + __pos2, - __s._M_Start() + __pos2 + (min) (__n2, __s.size() - __pos2)); - } - - int compare(const _CharT* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - return _M_compare(this->_M_Start(), this->_M_Finish(), __s, __s + _Traits::length(__s)); - } - - int compare(size_type __pos1, size_type __n1, const _CharT* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - if (__pos1 > size()) - this->_M_throw_out_of_range(); - return _M_compare(this->_M_Start() + __pos1, - this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1), - __s, __s + _Traits::length(__s)); - } - - int compare(size_type __pos1, size_type __n1, const _CharT* __s, - size_type __n2) const { - _STLP_FIX_LITERAL_BUG(__s) - if (__pos1 > size()) - this->_M_throw_out_of_range(); - return _M_compare(this->_M_Start() + __pos1, - this->_M_Start() + __pos1 + (min) (__n1, size() - __pos1), - __s, __s + __n2); - } - -public: // Helper functions for compare. - - static int _STLP_CALL _M_compare(const _CharT* __f1, const _CharT* __l1, - 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)); - 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) -# define _STLP_STRING_SUM_BASE(__reserve, __size, __alloc) _STLP_PRIV _String_base<_CharT,_Alloc>(__alloc, __size + 1) -# include <stl/_string_sum_methods.h> -# undef _STLP_STRING_SUM_BASE -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ -}; - -#if !defined (_STLP_STATIC_CONST_INIT_BUG) -# if defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96) -template <class _CharT, class _Traits, class _Alloc> -const size_t basic_string<_CharT, _Traits, _Alloc>::npos = ~(size_t) 0; -# endif -#endif - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS basic_string<char, char_traits<char>, allocator<char> >; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -#if defined (basic_string) -_STLP_MOVE_TO_STD_NAMESPACE -# undef basic_string -#endif - -_STLP_END_NAMESPACE - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -# include <stl/_string_workaround.h> -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// ------------------------------------------------------------ -// Non-member functions. -// Swap. -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -template <class _CharT, class _Traits, class _Alloc> -inline void _STLP_CALL -swap(basic_string<_CharT,_Traits,_Alloc>& __x, - basic_string<_CharT,_Traits,_Alloc>& __y) -{ __x.swap(__y); } -#endif /* _STLP_FUNCTION_TMPL_PARTIAL_ORDER */ - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _CharT, class _Traits, class _Alloc> -struct __move_traits<basic_string<_CharT, _Traits, _Alloc> > { - typedef __stlp_movable implemented; - //Completness depends on the allocator: - typedef typename __move_traits<_Alloc>::complete complete; -}; -/*#else - * There is no need to specialize for string and wstring in this case - * as the default __move_traits will already tell that string is movable - * but not complete. We cannot define it as complete as nothing guaranty - * that the STLport user hasn't specialized std::allocator for char or - * wchar_t. - */ -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -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 defined(_STLP_USE_WIDE_INTERFACE) -// A couple of functions to transfer between ASCII/Unicode -wstring __ASCIIToWide(const char *ascii); -string __WideToASCII(const wchar_t *wide); -#endif - -inline const char* _STLP_CALL -__get_c_string(const string& __str) { return __str.c_str(); } - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#include <stl/_string_operators.h> - -#if defined(_STLP_USE_NO_IOSTREAMS) || \ - (defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION)) -# include <stl/_string.c> -#endif - -#endif /* _STLP_INTERNAL_STRING_H */ - -/* - * Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/stl/_string_base.h b/WebKit/android/stlport/stl/_string_base.h deleted file mode 100644 index 923049d..0000000 --- a/WebKit/android/stlport/stl/_string_base.h +++ /dev/null @@ -1,249 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING_BASE_H -#define _STLP_STRING_BASE_H - -// ------------------------------------------------------------ -// Class _String_base. - -// _String_base is a helper class that makes it it easier to write an -// exception-safe version of basic_string. The constructor allocates, -// but does not initialize, a block of memory. The destructor -// deallocates, but does not destroy elements within, a block of -// memory. The destructor assumes that _M_start either is null, or else -// points to a block of memory that was allocated using _String_base's -// allocator and whose size is _M_end_of_storage._M_data - _M_start. - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -#ifndef _STLP_SHORT_STRING_SZ -# define _STLP_SHORT_STRING_SZ 16 -#endif - -template <class _Tp, class _Alloc> -class _String_base { - typedef _String_base<_Tp, _Alloc> _Self; -protected: - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) -public: - //dums: Some compiler(MSVC6) require it to be public not simply protected! - enum {_DEFAULT_SIZE = _STLP_SHORT_STRING_SZ}; - //This is needed by the full move framework - typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; - typedef _STLP_alloc_proxy<_Tp*, _Tp, allocator_type> _AllocProxy; - typedef size_t size_type; -private: -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - union _Buffers { - _Tp* _M_dynamic_buf; - _Tp _M_static_buf[_DEFAULT_SIZE]; - } _M_buffers; -#else - _Tp* _M_start; -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ -protected: -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - bool _M_using_static_buf() const { - return (_M_end_of_storage._M_data == _M_buffers._M_static_buf + _DEFAULT_SIZE); - } - _Tp const* _M_Start() const { - return _M_using_static_buf()?_M_buffers._M_static_buf:_M_buffers._M_dynamic_buf; - } - _Tp* _M_Start() { - return _M_using_static_buf()?_M_buffers._M_static_buf:_M_buffers._M_dynamic_buf; - } -#else - _Tp const* _M_Start() const {return _M_start;} - _Tp* _M_Start() {return _M_start;} -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - - _Tp* _M_finish; - _AllocProxy _M_end_of_storage; - - _Tp const* _M_Finish() const {return _M_finish;} - _Tp* _M_Finish() {return _M_finish;} - - // Precondition: 0 < __n <= max_size(). - void _M_allocate_block(size_t __n = _DEFAULT_SIZE); - void _M_deallocate_block() { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (!_M_using_static_buf() && (_M_buffers._M_dynamic_buf != 0)) - _M_end_of_storage.deallocate(_M_buffers._M_dynamic_buf, _M_end_of_storage._M_data - _M_buffers._M_dynamic_buf); -#else - if (_M_start != 0) - _M_end_of_storage.deallocate(_M_start, _M_end_of_storage._M_data - _M_start); -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - } - - 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; - } - - _String_base(const allocator_type& __a) -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - : _M_finish(_M_buffers._M_static_buf), _M_end_of_storage(__a, _M_buffers._M_static_buf + _DEFAULT_SIZE) -#else - : _M_start(0), _M_finish(0), _M_end_of_storage(__a, (_Tp*)0) -#endif - {} - - _String_base(const allocator_type& __a, size_t __n) -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - : _M_finish(_M_buffers._M_static_buf), _M_end_of_storage(__a, _M_buffers._M_static_buf + _DEFAULT_SIZE) { -#else - : _M_start(0), _M_finish(0), _M_end_of_storage(__a, (_Tp*)0) { -#endif - _M_allocate_block(__n); - } - -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - void _M_move_src (_Self &src) { - if (src._M_using_static_buf()) { - _M_buffers = src._M_buffers; - _M_finish = _M_buffers._M_static_buf + (src._M_finish - src._M_buffers._M_static_buf); - _M_end_of_storage._M_data = _M_buffers._M_static_buf + _DEFAULT_SIZE; - } - else { - _M_buffers._M_dynamic_buf = src._M_buffers._M_dynamic_buf; - _M_finish = src._M_finish; - _M_end_of_storage._M_data = src._M_end_of_storage._M_data; - src._M_buffers._M_dynamic_buf = 0; - } - } -#endif - - _String_base(__move_source<_Self> src) -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - : _M_end_of_storage(__move_source<_AllocProxy>(src.get()._M_end_of_storage)) { - _M_move_src(src.get()); -#else - : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish), - _M_end_of_storage(__move_source<_AllocProxy>(src.get()._M_end_of_storage)) { - src.get()._M_start = 0; -#endif - } - - ~_String_base() { _M_deallocate_block(); } - - void _M_reset(_Tp *__start, _Tp *__finish, _Tp *__end_of_storage) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - _M_buffers._M_dynamic_buf = __start; -#else - _M_start = __start; -#endif - _M_finish = __finish; - _M_end_of_storage._M_data = __end_of_storage; - } - - void _M_destroy_back () { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (!_M_using_static_buf()) -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_STD::_Destroy(_M_finish); - } - - void _M_destroy_range(size_t __from_off = 0, size_t __to_off = 1) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (!_M_using_static_buf()) - _STLP_STD::_Destroy_Range(_M_buffers._M_dynamic_buf + __from_off, _M_finish + __to_off); -#else - _STLP_STD::_Destroy_Range(_M_start + __from_off, _M_finish + __to_off); -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - } - - void _M_destroy_ptr_range(_Tp *__f, _Tp *__l) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (!_M_using_static_buf()) -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - _STLP_STD::_Destroy_Range(__f, __l); - } - - void _M_Swap(_Self &__s) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (_M_using_static_buf()) { - if (__s._M_using_static_buf()) { - _STLP_STD::swap(_M_buffers, __s._M_buffers); - _Tp *__tmp = _M_finish; - _M_finish = _M_buffers._M_static_buf + (__s._M_finish - __s._M_buffers._M_static_buf); - __s._M_finish = __s._M_buffers._M_static_buf + (__tmp - _M_buffers._M_static_buf); - //We need to swap _M_end_of_storage for allocators with state: - _M_end_of_storage.swap(__s._M_end_of_storage); - _M_end_of_storage._M_data = _M_buffers._M_static_buf + _DEFAULT_SIZE; - __s._M_end_of_storage._M_data = __s._M_buffers._M_static_buf + _DEFAULT_SIZE; - } else { - __s._M_Swap(*this); - return; - } - } - else if (__s._M_using_static_buf()) { - _Tp *__tmp = _M_buffers._M_dynamic_buf; - _Tp *__tmp_finish = _M_finish; - _Tp *__tmp_end_data = _M_end_of_storage._M_data; - _M_buffers = __s._M_buffers; - //We need to swap _M_end_of_storage for allocators with state: - _M_end_of_storage.swap(__s._M_end_of_storage); - _M_end_of_storage._M_data = _M_buffers._M_static_buf + _DEFAULT_SIZE; - _M_finish = _M_buffers._M_static_buf + (__s._M_finish - __s._M_buffers._M_static_buf); - __s._M_buffers._M_dynamic_buf = __tmp; - __s._M_end_of_storage._M_data = __tmp_end_data; - __s._M_finish = __tmp_finish; - } - else { - _STLP_STD::swap(_M_buffers._M_dynamic_buf, __s._M_buffers._M_dynamic_buf); - _M_end_of_storage.swap(__s._M_end_of_storage); - _STLP_STD::swap(_M_finish, __s._M_finish); - } -#else - _STLP_STD::swap(_M_start, __s._M_start); - _M_end_of_storage.swap(__s._M_end_of_storage); - _STLP_STD::swap(_M_finish, __s._M_finish); -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - } - - void _STLP_FUNCTION_THROWS _M_throw_length_error() const; - void _STLP_FUNCTION_THROWS _M_throw_out_of_range() const; -}; - -#undef _STLP_SHORT_STRING_SZ - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _String_base<char, allocator<char> >; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS _String_base<wchar_t, allocator<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_STRING_BASE_H */ - -/* - * Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/stl/_string_fwd.h b/WebKit/android/stlport/stl/_string_fwd.h deleted file mode 100644 index 1520322..0000000 --- a/WebKit/android/stlport/stl/_string_fwd.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING_FWD_H -#define _STLP_STRING_FWD_H - -#ifndef _STLP_IOSFWD -# include <iosfwd> -#endif - -_STLP_BEGIN_NAMESPACE - -#if !defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _CharT, - class _Traits = char_traits<_CharT>, - class _Alloc = allocator<_CharT> > -class basic_string; -#else -template <class _CharT, - class _Traits, - class _Alloc> -class basic_string; -#endif /* _STLP_LIMITED_DEFAULT_TEMPLATES */ - -typedef basic_string<char, char_traits<char>, allocator<char> > string; - -#if defined (_STLP_HAS_WCHAR_T) -typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring; -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -//This function limits header dependency between exception and string -//implementation. It is implemented in _string.h -const char* _STLP_CALL __get_c_string(const string& __str); - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_STRING_FWD_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_string_hash.h b/WebKit/android/stlport/stl/_string_hash.h deleted file mode 100644 index c5f1339..0000000 --- a/WebKit/android/stlport/stl/_string_hash.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING_HASH_H -#define _STLP_STRING_HASH_H - -#ifndef _STLP_HASH_FUN_H -# include <stl/_hash_fun.h> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _CharT, class _Traits, class _Alloc> -_STLP_INLINE_LOOP size_t -__stl_string_hash(const basic_string<_CharT,_Traits,_Alloc>& __s) { - unsigned long __h = 0; - size_t __len = __s.size(); - const _CharT* __data = __s.data(); - for ( size_t __i = 0; __i < __len; ++__i) - __h = /* 5 *__h */(__h << 2) + __h + __data[__i]; - return size_t(__h); -} - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - -template <class _CharT, class _Traits, class _Alloc> -struct hash<basic_string<_CharT,_Traits,_Alloc> > { - size_t operator()(const basic_string<_CharT,_Traits,_Alloc>& __s) const - { return __stl_string_hash(__s); } -}; - -#else - -_STLP_TEMPLATE_NULL -struct _STLP_CLASS_DECLSPEC hash<string> { - size_t operator()(const string& __s) const - { return __stl_string_hash(__s); } -}; - -# if defined (_STLP_HAS_WCHAR_T) -_STLP_TEMPLATE_NULL -struct _STLP_CLASS_DECLSPEC hash<wstring> { - size_t operator()(const wstring& __s) const - { return __stl_string_hash(__s); } -}; -# endif - -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif diff --git a/WebKit/android/stlport/stl/_string_io.c b/WebKit/android/stlport/stl/_string_io.c deleted file mode 100644 index 84b1873..0000000 --- a/WebKit/android/stlport/stl/_string_io.c +++ /dev/null @@ -1,172 +0,0 @@ -#ifndef _STLP_STRING_IO_C -#define _STLP_STRING_IO_C - -#ifndef _STLP_STRING_IO_H -# include <stl/_string_io.h> -#endif - -#ifndef _STLP_INTERNAL_CTYPE_H -# include <stl/_ctype.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _CharT, class _Traits> -bool _STLP_CALL -__stlp_string_fill(basic_ostream<_CharT, _Traits>& __os, - basic_streambuf<_CharT, _Traits>* __buf, - streamsize __n) { - _CharT __f = __os.fill(); - for (streamsize __i = 0; __i < __n; ++__i) { - if (_Traits::eq_int_type(__buf->sputc(__f), _Traits::eof())) - return false; - } - return true; -} - - -template <class _CharT, class _Traits, class _Alloc> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator << (basic_ostream<_CharT, _Traits>& __os, - const basic_string<_CharT,_Traits,_Alloc>& __s) { - typedef basic_ostream<_CharT, _Traits> __ostream; - typedef typename basic_string<_CharT, _Traits, _Alloc>::size_type size_type; - - // The hypothesis of this implementation is that size_type is unsigned: - _STLP_STATIC_ASSERT(__STATIC_CAST(size_type, -1) > 0) - - typename __ostream::sentry __sentry(__os); - bool __ok = false; - - if (__sentry) { - __ok = true; - size_type __n = __s.size(); - const bool __left = (__os.flags() & __ostream::left) != 0; - const streamsize __w = __os.width(0); - basic_streambuf<_CharT, _Traits>* __buf = __os.rdbuf(); - - const bool __need_pad = (((sizeof(streamsize) > sizeof(size_t)) && (__STATIC_CAST(streamsize, __n) < __w)) || - ((sizeof(streamsize) <= sizeof(size_t)) && (__n < __STATIC_CAST(size_t, __w)))); - streamsize __pad_len = __need_pad ? __w - __n : 0; - - if (!__left) - __ok = __stlp_string_fill(__os, __buf, __pad_len); - - __ok = __ok && (__buf->sputn(__s.data(), streamsize(__n)) == streamsize(__n)); - - if (__left) - __ok = __ok && __stlp_string_fill(__os, __buf, __pad_len); - } - - if (!__ok) - __os.setstate(__ostream::failbit); - - return __os; -} - -template <class _CharT, class _Traits, class _Alloc> -basic_istream<_CharT, _Traits>& _STLP_CALL -operator >> (basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT,_Traits, _Alloc>& __s) { - typedef basic_istream<_CharT, _Traits> __istream; - typedef typename basic_string<_CharT, _Traits, _Alloc>::size_type size_type; - - // The hypothesis of this implementation is that size_type is unsigned: - _STLP_STATIC_ASSERT(__STATIC_CAST(size_type, -1) > 0) - - typename __istream::sentry __sentry(__is); - - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf(); - typedef ctype<_CharT> _C_type; - - const locale& __loc = __is.getloc(); - const _C_type& _Ctype = use_facet<_C_type>(__loc); - __s.clear(); - streamsize __width = __is.width(0); - size_type __n; - if (__width <= 0) - __n = __s.max_size(); - /* __width can only overflow size_type if sizeof(streamsize) > sizeof(size_type) - * because here we know that __width is positive and the stattic assertion check - * that size_type is unsigned. - */ - else if (sizeof(streamsize) > sizeof(size_type) && - (__width > __STATIC_CAST(streamsize, __s.max_size()))) - __n = 0; - else { - __n = __STATIC_CAST(size_type, __width); - __s.reserve(__n); - } - - while (__n-- > 0) { - typename _Traits::int_type __c1 = __buf->sbumpc(); - if (_Traits::eq_int_type(__c1, _Traits::eof())) { - __is.setstate(__istream::eofbit); - break; - } - else { - _CharT __c = _Traits::to_char_type(__c1); - - if (_Ctype.is(_C_type::space, __c)) { - if (_Traits::eq_int_type(__buf->sputbackc(__c), _Traits::eof())) - __is.setstate(__istream::failbit); - break; - } - else - __s.push_back(__c); - } - } - - // If we have read no characters, then set failbit. - if (__s.empty()) - __is.setstate(__istream::failbit); - } - else - __is.setstate(__istream::failbit); - - return __is; -} - -template <class _CharT, class _Traits, class _Alloc> -basic_istream<_CharT, _Traits>& _STLP_CALL -getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT,_Traits,_Alloc>& __s, - _CharT __delim) { - typedef basic_istream<_CharT, _Traits> __istream; - typedef typename basic_string<_CharT, _Traits, _Alloc>::size_type size_type; - size_type __nread = 0; - typename basic_istream<_CharT, _Traits>::sentry __sentry(__is, true); - if (__sentry) { - basic_streambuf<_CharT, _Traits>* __buf = __is.rdbuf(); - __s.clear(); - - while (__nread < __s.max_size()) { - int __c1 = __buf->sbumpc(); - if (_Traits::eq_int_type(__c1, _Traits::eof())) { - __is.setstate(__istream::eofbit); - break; - } - else { - ++__nread; - _CharT __c = _Traits::to_char_type(__c1); - if (!_Traits::eq(__c, __delim)) - __s.push_back(__c); - else - break; // Character is extracted but not appended. - } - } - } - if (__nread == 0 || __nread >= __s.max_size()) - __is.setstate(__istream::failbit); - - return __is; -} - -_STLP_END_NAMESPACE - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_string_io.h b/WebKit/android/stlport/stl/_string_io.h deleted file mode 100644 index fe549fe..0000000 --- a/WebKit/android/stlport/stl/_string_io.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING_IO_H -#define _STLP_STRING_IO_H - -#ifndef _STLP_INTERNAL_OSTREAM_H -# include <stl/_ostream.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> -#endif - -// I/O. -_STLP_BEGIN_NAMESPACE - -template <class _CharT, class _Traits, class _Alloc> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, - const basic_string<_CharT,_Traits,_Alloc>& __s); - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -basic_ostream<_CharT, _Traits>& _STLP_CALL -operator<<(basic_ostream<_CharT, _Traits>& __os, - const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __sum) { - basic_string<_CharT, _Traits, _Alloc> __tmp(__sum); - return __os << __tmp; -} - -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -template <class _CharT, class _Traits, class _Alloc> -basic_istream<_CharT, _Traits>& _STLP_CALL -operator>>(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT,_Traits,_Alloc>& __s); - -template <class _CharT, class _Traits, class _Alloc> -basic_istream<_CharT, _Traits>& _STLP_CALL -getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT,_Traits,_Alloc>& __s, - _CharT __delim); - -#if !(defined (__BORLANDC__) && !defined (_STLP_USE_OWN_NAMESPACE)) - -template <class _CharT, class _Traits, class _Alloc> -inline basic_istream<_CharT, _Traits>& _STLP_CALL -getline(basic_istream<_CharT, _Traits>& __is, - basic_string<_CharT,_Traits,_Alloc>& __s) { - return getline(__is, __s, __is.widen('\n')); -} -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_string_io.c> -#endif - -#endif /* _STLP_STRING_IO_H */ diff --git a/WebKit/android/stlport/stl/_string_npos.h b/WebKit/android/stlport/stl/_string_npos.h deleted file mode 100644 index faa9c62..0000000 --- a/WebKit/android/stlport/stl/_string_npos.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * Copyright (c) 2005 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -/* This header contains npos definition used in basic_string and rope - * implementation. It do not have to be guarded as files including it - * are already guarded and it has sometimes to be included several times. - */ - -#if defined (_STLP_STATIC_CONST_INIT_BUG) - enum { npos = -1 }; -#elif defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96) - // inline initializer conflicts with 'extern template' - static const size_t npos; -#else - static const size_t npos = ~(size_t)0; -#endif diff --git a/WebKit/android/stlport/stl/_string_operators.h b/WebKit/android/stlport/stl/_string_operators.h deleted file mode 100644 index cff13af..0000000 --- a/WebKit/android/stlport/stl/_string_operators.h +++ /dev/null @@ -1,602 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING_OPERATORS_H -#define _STLP_STRING_OPERATORS_H - -_STLP_BEGIN_NAMESPACE - -#if !defined (_STLP_USE_TEMPLATE_EXPRESSION) - -# if defined (__GNUC__) || defined (__MLCCPP__) -# define _STLP_INIT_AMBIGUITY 1 -# endif - -template <class _CharT, class _Traits, class _Alloc> -inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - typedef basic_string<_CharT,_Traits,_Alloc> _Str; - typedef typename _Str::_Reserve_t _Reserve_t; -# if defined (_STLP_INIT_AMBIGUITY) - // gcc counts this as a function - _Str __result = _Str(_Reserve_t(), __s.size() + __y.size(), __s.get_allocator()); -# else - _Str __result(_Reserve_t(), __s.size() + __y.size(), __s.get_allocator()); -# endif - __result.append(__s); - __result.append(__y); - return __result; -} - -template <class _CharT, class _Traits, class _Alloc> -inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL -operator+(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - typedef basic_string<_CharT,_Traits,_Alloc> _Str; - typedef typename _Str::_Reserve_t _Reserve_t; - const size_t __n = _Traits::length(__s); -# if defined (_STLP_INIT_AMBIGUITY) - _Str __result = _Str(_Reserve_t(), __n + __y.size(), __y.get_allocator()); -# else - _Str __result(_Reserve_t(), __n + __y.size(), __y.get_allocator()); -# endif - __result.append(__s, __s + __n); - __result.append(__y); - return __result; -} - -template <class _CharT, class _Traits, class _Alloc> -inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL -operator+(_CharT __c, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - typedef basic_string<_CharT,_Traits,_Alloc> _Str; - typedef typename _Str::_Reserve_t _Reserve_t; -# if defined (_STLP_INIT_AMBIGUITY) - _Str __result = _Str(_Reserve_t(), 1 + __y.size(), __y.get_allocator()); -# else - _Str __result(_Reserve_t(), 1 + __y.size(), __y.get_allocator()); -# endif - __result.push_back(__c); - __result.append(__y); - return __result; -} - -template <class _CharT, class _Traits, class _Alloc> -inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - typedef basic_string<_CharT,_Traits,_Alloc> _Str; - typedef typename _Str::_Reserve_t _Reserve_t; - const size_t __n = _Traits::length(__s); -# if defined (_STLP_INIT_AMBIGUITY) - _Str __result = _Str(_Reserve_t(), __x.size() + __n, __x.get_allocator()); -# else - _Str __result(_Reserve_t(), __x.size() + __n, __x.get_allocator()); -# endif - __result.append(__x); - __result.append(__s, __s + __n); - return __result; -} - -template <class _CharT, class _Traits, class _Alloc> -inline basic_string<_CharT,_Traits,_Alloc> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT __c) { - typedef basic_string<_CharT,_Traits,_Alloc> _Str; - typedef typename _Str::_Reserve_t _Reserve_t; -# if defined (_STLP_INIT_AMBIGUITY) - _Str __result = _Str(_Reserve_t(), __x.size() + 1, __x.get_allocator()); -# else - _Str __result(_Reserve_t(), __x.size() + 1, __x.get_allocator()); -# endif - __result.append(__x); - __result.push_back(__c); - return __result; -} - -# undef _STLP_INIT_AMBIGUITY - -#else /* _STLP_USE_TEMPLATE_EXPRESSION */ - -// addition with basic_string -template <class _CharT, class _Traits, class _Alloc> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __lhs, - const basic_string<_CharT,_Traits,_Alloc>& __rhs) { - typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right> __root_type; - __root_type __root(__rhs, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__lhs.get_allocator())); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - __root_type, - _STLP_PRIV __on_right>(__lhs, __root); -} - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __lhs, - const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __rhs) { - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __on_right>(__lhs, __rhs); -} - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __on_left> _STLP_CALL -operator+(const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __lhs, - const basic_string<_CharT,_Traits,_Alloc>& __rhs) { - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __on_left>(__lhs, __rhs); -} - -// addition with C string -template <class _CharT, class _Traits, class _Alloc> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - const size_t __n = _Traits::length(__s); - typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right> __root_type; - __root_type __root(_STLP_PRIV __cstr_wrapper<_CharT>(__s, __n), _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__x.get_allocator())); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - __root_type, _STLP_PRIV __on_right>(__x, __root); -} - -template <class _CharT, class _Traits, class _Alloc> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - const size_t __n = _Traits::length(__s); - typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right> __root_type; - __root_type __root(__y, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__y.get_allocator())); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __cstr_wrapper<_CharT>, - __root_type, - _STLP_PRIV __on_right>(_STLP_PRIV __cstr_wrapper<_CharT>(__s, __n), __root); -} - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __on_left> _STLP_CALL -operator+(const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __x, - const _CharT* __s) { - const size_t __n = _Traits::length(__s); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __on_left>(__x, _STLP_PRIV __cstr_wrapper<_CharT>(__s, __n)); -} - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __y) { - const size_t __n = _Traits::length(__s); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __cstr_wrapper<_CharT>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __on_right>(_STLP_PRIV __cstr_wrapper<_CharT>(__s, __n), __y); -} - -// addition with char -template <class _CharT, class _Traits, class _Alloc> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __char_wrapper<_CharT>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const basic_string<_CharT,_Traits,_Alloc>& __x, const _CharT __c) { - typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right> __root_type; - __root_type __root(__c, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__x.get_allocator())); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - __root_type, _STLP_PRIV __on_right>(__x, __root); -} - -template <class _CharT, class _Traits, class _Alloc> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __char_wrapper<_CharT>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const _CharT __c, const basic_string<_CharT,_Traits,_Alloc>& __x) { - typedef _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_wrapper<_CharT,_Traits,_Alloc>, - _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>, - _STLP_PRIV __on_right> __root_type; - __root_type __root(__x, _STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc>(__x.get_allocator())); - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>, - __root_type, _STLP_PRIV __on_right>(__c, __root); -} - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __char_wrapper<_CharT>, - _STLP_PRIV __on_left> _STLP_CALL -operator+(const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __x, const _CharT __c) { - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __char_wrapper<_CharT>, _STLP_PRIV __on_left>(__x, __c); -} - -template <class _CharT, class _Traits, class _Alloc, class _Left, class _Right, class _StorageDir> -inline _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __on_right> _STLP_CALL -operator+(const _CharT __c, const _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>& __x) { - return _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _STLP_PRIV __char_wrapper<_CharT>, - _STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir>, - _STLP_PRIV __on_right>(__c, __x); -} - -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -// Operator== and operator!= - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator==(const basic_string<_CharT,_Traits,_Alloc>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - return __x.size() == __y.size() && _Traits::compare(__x.data(), __y.data(), __x.size()) == 0; -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator==(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - return __x.size() == __y.size() && _Traits::compare(__x.data(), __y.data(), __x.size()) == 0; -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator==(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - return __x.size() == __y.size() && _Traits::compare(__x.data(), __y.data(), __x.size()) == 0; -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator==(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return __n == __y.size() && _Traits::compare(__s, __y.data(), __n) == 0; -} - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator==(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return __x.size() == __n && _Traits::compare(__x.data(), __s, __n) == 0; -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator==(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return __n == __y.size() && _Traits::compare(__s, __y.data(), __n) == 0; -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator==(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return __x.size() == __n && _Traits::compare(__x.data(), __s, __n) == 0; -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -// Operator< (and also >, <=, and >=). - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator<(const basic_string<_CharT,_Traits,_Alloc>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()) < 0; -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator<(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()) < 0; -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator<(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(), - __y.begin(), __y.end()) < 0; -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator<(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__s, __s + __n, - __y.begin(), __y.end()) < 0; -} - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator<(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(), - __s, __s + __n) < 0; -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator<(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__s, __s + __n, - __y.begin(), __y.end()) < 0; -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator<(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - size_t __n = _Traits::length(__s); - return basic_string<_CharT,_Traits,_Alloc> ::_M_compare(__x.begin(), __x.end(), - __s, __s + __n) < 0; -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -#if defined (_STLP_USE_SEPARATE_RELOPS_NAMESPACE) - -/* Only defined if _STLP_USE_SEPARATE_RELOPS_NAMESPACE is defined otherwise - * it might introduce ambiguity with pure template relational operators - * from rel_ops namespace. - */ -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator!=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) -{ return !(__x == __y); } - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator>(const basic_string<_CharT,_Traits,_Alloc>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) -{ return __y < __x; } - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator<=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) -{ return !(__y < __x); } - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator>=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) -{ return !(__x < __y); } - -# if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator!=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const basic_string<_CharT,_Traits,_Alloc>& __y) -{ return !(__x==__y); } - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator!=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) -{ return !(__x==__y); } -# endif - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator!=(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__s == __y); -} - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator!=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__x == __s); -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator!=(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__s == __y); -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator!=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__x == __s); -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator>(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return __y < __s; -} - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator>(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return __s < __x; -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator>(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return __y < __s; -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator>(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return __s < __x; -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator<=(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__y < __s); -} - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator<=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__s < __x); -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator<=(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__y < __s); -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator<=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__s < __x); -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator>=(const _CharT* __s, - const basic_string<_CharT,_Traits,_Alloc>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__s < __y); -} - -template <class _CharT, class _Traits, class _Alloc> -inline bool _STLP_CALL -operator>=(const basic_string<_CharT,_Traits,_Alloc>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__x < __s); -} - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator>=(const _CharT* __s, - const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __y) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__s < __y); -} - -template <class _CharT, class _Traits, class _Alloc, class _Lhs, class _Rhs, class _StoreDir> -inline bool _STLP_CALL -operator>=(const _STLP_PRIV __bstr_sum<_CharT,_Traits,_Alloc,_Lhs,_Rhs,_StoreDir>& __x, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - return !(__x < __s); -} -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_STRING_OPERATORS_H */ - diff --git a/WebKit/android/stlport/stl/_string_sum.h b/WebKit/android/stlport/stl/_string_sum.h deleted file mode 100644 index 98e1e31..0000000 --- a/WebKit/android/stlport/stl/_string_sum.h +++ /dev/null @@ -1,413 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING_SUM_H -#define _STLP_STRING_SUM_H - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -/*char wrapper to simulate basic_string*/ -template <class _CharT> -struct __char_wrapper { - typedef const _CharT& const_reference; - - __char_wrapper(_CharT __val) : _Val(__val) {} - - _CharT getValue() const { return _Val; } - size_t size() const { return 1; } - - const_reference operator[] (size_t __n) const { - //To avoid a check on __n we use this strange implementation - return (&_Val)[__n]; - } - -private: - _CharT _Val; -}; - -/*C string wrapper to simulate basic_string*/ -template <class _CharT> -struct __cstr_wrapper { - typedef const _CharT& const_reference; - - __cstr_wrapper(const _CharT *__cstr, size_t __size) : - _CStr(__cstr), _Size(__size) {} - - const _CharT* c_str() const { return _CStr; } - - size_t size() const { return _Size; } - - const_reference operator[] (size_t __n) const { return _CStr[__n]; } - -private: - const _CharT *_CStr; - size_t _Size; -}; - -/*basic_string wrapper to ensure that we only store a reference to the original string and not copy it*/ -template <class _CharT, class _Traits, class _Alloc> -struct __bstr_wrapper { - typedef const _CharT& const_reference; - typedef basic_string<_CharT, _Traits, _Alloc> _BString; - - __bstr_wrapper (_BString const& __s) : - _BStr(__s) {} - - size_t size() const { return _BStr.size(); } - - const_reference operator[] (size_t __n) const { return _BStr[__n]; } - - _BString const& b_str() const { return _BStr; } - -private: - _BString const& _BStr; -}; - -struct __on_left {}; -struct __on_right {}; - -template <class _CharT, class _Traits, class _Alloc, - class _Left, class _Right, - class _StorageDirection> -class __bstr_sum { -public: - typedef basic_string<_CharT, _Traits, _Alloc> _BString; - typedef typename _BString::const_reference const_reference; - typedef typename _BString::const_iterator const_iterator; - typedef typename _BString::const_reverse_iterator const_reverse_iterator; - typedef typename _BString::size_type size_type; - typedef typename _BString::allocator_type allocator_type; - typedef __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDirection> _Self; - - __bstr_sum (_Left const& lhs, _Right const& rhs) : - _lhs(lhs), _rhs(rhs) {} - - _Left const& getLhs() const { return _lhs; } - _Right const& getRhs() const { return _rhs; } - - allocator_type get_allocator() const { return _M_get_storage(false).get_allocator(); } - - const_iterator begin() const { return _M_get_storage().begin(); } - const_iterator end() const { return _M_get_storage().end(); } - const_reverse_iterator rbegin() const { return _M_get_storage().rbegin(); } - const_reverse_iterator rend() const { return _M_get_storage().rend(); } - - size_type size() const { return _lhs.size() + _rhs.size(); } - size_type length() const { return size(); } - - size_t max_size() const { return _M_get_storage().max_size(); } - size_type capacity() const { return size(); } - bool empty() const { return size() == 0; } - - const_reference operator[](size_t __n) const - { return (__n < _lhs.size())?_lhs[__n]:_rhs[__n - _lhs.size()]; } - - const_reference at(size_type __n) const - { return _M_get_storage().at(__n); } - - //operator += - typedef __bstr_sum<_CharT, _Traits, _Alloc, _Self, __bstr_wrapper<_CharT, _Traits, _Alloc>, __on_left> _BStrOnLeft; - _BStrOnLeft operator += (const _BString& __s) { return append(__s); } - - typedef __bstr_sum<_CharT, _Traits, _Alloc, _Self, __cstr_wrapper<_CharT>, __on_left> _CStrOnLeft; - _CStrOnLeft operator += (const _CharT* __s) { return append(__s); } - - typedef __bstr_sum<_CharT, _Traits, _Alloc, _Self, __char_wrapper<_CharT>, __on_left> _CharOnLeft; - _CharOnLeft operator += (_CharT __c) { return _CharOnLeft(*this, __c); } - - //append - _BStrOnLeft append (const _BString& __s) - { return _BStrOnLeft(*this, __s); } - _BString& append(const _BString& __s, size_type __pos, size_type __n) - { return _M_get_storage().append(__s, __pos, __n); } - _CStrOnLeft append(const _CharT* __s) { - const size_type __n = _Traits::length(__s); - return _CStrOnLeft(*this, __cstr_wrapper<_CharT>(__s, __n)); - } - _CStrOnLeft append(const _CharT* __s, size_type __n) - { return _CStrOnLeft(*this, __cstr_wrapper<_CharT>(__s, __n)); } - _BString& append(size_type __n, _CharT __c) - {return _M_get_storage().append(__n, __c);} - template <class _InputIter> - _BString& append(_InputIter __first, _InputIter __last) - {return _M_get_storage().append(__first, __last);} - - //assign - _BString& assign(const _BString& __s) {return _M_get_storage().assign(__s);} - _BString& assign(const _BString& __s, size_type __pos, size_type __n) {return _M_get_storage().assign(__s, __pos, __n);} - _BString& assign(const _CharT* __s, size_type __n) {return _M_get_storage().assign(__s, __n);} - _BString& assign(const _CharT* __s) {return _M_get_storage().assign(__s); } - _BString& assign(size_type __n, _CharT __c) {return _M_get_storage().assign(__n, __c);} - - //insert - _BString& insert(size_type __pos, const _BString& __s) {return _M_get_storage().insert(__pos, __s);} - _BString& insert(size_type __pos, const _BString& __s, size_type __beg, size_type __n) - {return _M_get_storage().insert(__pos, __s, __beg, __n);} - _BString& insert(size_type __pos, const _CharT* __s, size_type __n) {return _M_get_storage().insert(__pos, __s, __n);} - _BString& insert(size_type __pos, const _CharT* __s) {return _M_get_storage().insert(__pos, __s);} - _BString& insert(size_type __pos, size_type __n, _CharT __c) {return _M_get_storage().insert(__pos, __n, __c);} - - //erase - _BString& erase(size_type __pos = 0, size_type __n =_BString::npos) {return _M_get_storage().erase(__pos, __n);} - - //replace - _BString& replace(size_type __pos, size_type __n, const _BString& __s) - {return _M_get_storage().replace(__pos, __n, __s);} - _BString& replace(size_type __pos1, size_type __n1, const _BString& __s, size_type __pos2, size_type __n2) - {return _M_get_storage().replace(__pos1, __n1, __s, __pos2, __n2);} - _BString& replace(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) - {return _M_get_storage().replace(__pos, __n1, __s, __n2);} - _BString& replace(size_type __pos, size_type __n1, const _CharT* __s) - {return _M_get_storage().replace(__pos, __n1, __s);} - _BString& replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) - {return _M_get_storage().replace(__pos, __n1, __n2, __c);} - - size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const - {return _M_get_storage().copy(__s, __n, __pos);} - - void swap(_BString& __s) - {_M_get_storage().swap(__s);} - - const _CharT* c_str() const { return _M_get_storage().c_str(); } - const _CharT* data() const { return _M_get_storage().data(); } - - //find family - size_type find(const _BString& __s, size_type __pos = 0) const { return _M_get_storage().find(__s, __pos); } - size_type find(const _CharT* __s, size_type __pos = 0) const { return _M_get_storage().find(__s, __pos); } - size_type find(const _CharT* __s, size_type __pos, size_type __n) const { return _M_get_storage().find(__s, __pos, __n); } - size_type find(_CharT __c, size_type __pos = 0) const { return _M_get_storage().find(__c, __pos); } - - size_type rfind(const _BString& __s, size_type __pos = _BString::npos) const { return _M_get_storage().rfind(__s, __pos); } - size_type rfind(const _CharT* __s, size_type __pos = _BString::npos) const { return _M_get_storage().rfind(__s, __pos); } - size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const { return _M_get_storage().rfind(__s, __pos, __n); } - size_type rfind(_CharT __c, size_type __pos = _BString::npos) const { return _M_get_storage().rfind(__c, __pos); } - - size_type find_first_of(const _BString& __s, size_type __pos = 0) const - { return _M_get_storage().find_first_of(__s, __pos); } - size_type find_first_of(const _CharT* __s, size_type __pos = 0) const - { return _M_get_storage().find_first_of(__s, __pos); } - size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const - { return _M_get_storage().find_first_of(__s, __pos, __n); } - size_type find_first_of(_CharT __c, size_type __pos = 0) const - { return _M_get_storage().find(__c, __pos); } - - size_type find_last_of(const _BString& __s, size_type __pos = _BString::npos) const - { return _M_get_storage().find_last_of(__s, __pos); } - size_type find_last_of(const _CharT* __s, size_type __pos = _BString::npos) const - { return _M_get_storage().find_last_of(__s, __pos); } - size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const - { return _M_get_storage().find_last_of(__s, __pos, __n); } - size_type find_last_of(_CharT __c, size_type __pos = _BString::npos) const - { return _M_get_storage().rfind(__c, __pos); } - - size_type find_first_not_of(const _BString& __s, size_type __pos = 0) const - { return _M_get_storage().find_first_not_of(__s, __pos); } - size_type find_first_not_of(const _CharT* __s, size_type __pos = 0) const - { return _M_get_storage().find_first_not_of(__s, __pos); } - size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const - { return _M_get_storage().find_first_not_of(__s, __pos, __n); } - size_type find_first_not_of(_CharT __c, size_type __pos = 0) const - { return _M_get_storage().find_first_not_of(__c, __pos); } - - size_type find_last_not_of(const _BString& __s, size_type __pos = _BString::npos) const - { return _M_get_storage().find_last_not_of(__s, __pos); } - size_type find_last_not_of(const _CharT* __s, size_type __pos =_BString:: npos) const - { return _M_get_storage().find_last_not_of(__s, __pos); } - size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const - { return _M_get_storage().find_last_not_of(__s, __pos, __n); } - size_type find_last_not_of(_CharT __c, size_type __pos = _BString::npos) const - { return _M_get_storage().find_last_not_of(__c, __pos); } - - _BString substr(size_type __pos = 0, size_type __n = _BString::npos) const - { return _M_get_storage().substr(__pos, __n); } - - //compare - int compare(const _BString& __s) const - { return _M_get_storage().compare(__s); } - int compare(size_type __pos1, size_type __n1, const _Self& __s) const - { return _M_get_storage().compare(__pos1, __n1, __s); } - int compare(size_type __pos1, size_type __n1, const _Self& __s, size_type __pos2, size_type __n2) const - { return _M_get_storage().compare(__pos1, __n1, __s, __pos2, __n2); } - int compare(const _CharT* __s) const - { return _M_get_storage().compare(__s); } - int compare(size_type __pos1, size_type __n1, const _CharT* __s) const - { return _M_get_storage().compare(__pos1, __n1, __s); } - int compare(size_type __pos1, size_type __n1, const _CharT* __s, size_type __n2) const - { return _M_get_storage().compare(__pos1, __n1, __s, __n2); } - - //Returns the underlying basic_string representation of the template expression - //The non const method will always initialise it. - _BString& _M_get_storage() - { return _rhs._M_get_storage(*this, _StorageDirection()); } - - template <class _Lhs, class _Rhs, class _StorageDir> - _BString& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir> const& __ref, - __on_left const& /*StorageDir*/) - { return _lhs._M_get_storage(__ref); } - - template <class _Lhs, class _Rhs, class _StorageDir> - _BString& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir> const& __ref, - __on_right const& /*StorageDir*/) - { return _rhs._M_get_storage(__ref); } - - template <class _Lhs, class _Rhs, class _StorageDir> - _BString& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir> const& __ref) - { return _M_get_storage(__ref, _StorageDirection()); } - - //The const method can be invoked without initialising the basic_string so avoiding dynamic allocation. - _BString const& _M_get_storage(bool __do_init = true) const - { return _M_get_storage(*this, __do_init, _StorageDirection()); } - - template <class _Lhs, class _Rhs, class _StorageDir> - _BString const& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir> const& __ref, - bool __do_init, __on_left const& /*StorageDir*/) const - { return _lhs._M_get_storage(__ref, __do_init); } - - template <class _Lhs, class _Rhs, class _StorageDir> - _BString const& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir> const& __ref, - bool __do_init, __on_right const& /*StorageDir*/) const - { return _rhs._M_get_storage(__ref, __do_init); } - - template <class _Lhs, class _Rhs, class _StorageDir> - _BString const& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Lhs, _Rhs, _StorageDir> const& __ref, - bool __do_init) const - { return _M_get_storage(__ref, __do_init, _StorageDirection()); } - -private: - _Left _lhs; - _Right _rhs; -}; - -/* - * For this operator we choose to use the right part as the storage part - */ -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline __bstr_sum<_CharT, _Traits, _Alloc, - __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1>, - __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2>, - __on_right> _STLP_CALL -operator + (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) { - return __bstr_sum<_CharT, _Traits, _Alloc, - __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1>, - __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2>, - __on_right>(__lhs, __rhs); -} - -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline bool _STLP_CALL -operator == (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) -{ return (__lhs.size() == __rhs.size()) && (__lhs._M_get_storage() == __rhs._M_get_storage()); } - -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline bool _STLP_CALL -operator < (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) -{ return __lhs._M_get_storage() < __rhs._M_get_storage(); } - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline bool _STLP_CALL -operator != (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) -{ return !(__lhs == __rhs); } - -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline bool _STLP_CALL -operator > (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) -{ return __rhs < __lhs; } - -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline bool _STLP_CALL -operator <= (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) -{ return !(__rhs < __lhs); } - -template <class _CharT, class _Traits, class _Alloc, - class _Lh1, class _Rh1, class _StoreDir1, - class _Lh2, class _Rh2, class _StoreDir2> -inline bool _STLP_CALL -operator >= (const __bstr_sum<_CharT, _Traits, _Alloc, _Lh1, _Rh1, _StoreDir1> &__lhs, - const __bstr_sum<_CharT, _Traits, _Alloc, _Lh2, _Rh2, _StoreDir2> &__rhs) -{ return !(__lhs < __rhs); } - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ - - -/* - * This class will be used to simulate a temporary string that is required for - * a call to the c_str method on the __bstr_sum class. - */ - -template <class _CharT, class _Traits, class _Alloc> -struct __sum_storage_elem { - typedef basic_string<_CharT, _Traits, _Alloc> _BString; - - __sum_storage_elem(_Alloc __alloc) : _M_init(false), _M_storage(__alloc) - {} - - template <class _Left, class _Right, class _StorageDir> - void _M_Init(__bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __ref) const { - if (!_M_init) { - _M_storage = __ref; - _M_init = true; - } - } - - template <class _Left, class _Right, class _StorageDir> - _BString const& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __ref, - bool __do_init) const { - if (__do_init) { - _M_Init(__ref); - } - return _M_storage; - } - template <class _Left, class _Right, class _StorageDir> - _BString& _M_get_storage(__bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __ref) { - _M_Init(__ref); - return _M_storage; - } - - size_t size() const { return 0; } - _CharT const& operator[](size_t __n) const - { return __STATIC_CAST(_CharT*, 0)[__n]; } - -private: - mutable bool _M_init; - mutable basic_string<_CharT, _Traits, _Alloc> _M_storage; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /*_STLP_STRING_SUM_H*/ diff --git a/WebKit/android/stlport/stl/_string_sum_methods.h b/WebKit/android/stlport/stl/_string_sum_methods.h deleted file mode 100644 index 952ce18..0000000 --- a/WebKit/android/stlport/stl/_string_sum_methods.h +++ /dev/null @@ -1,194 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* - * All the necessary methods used for template expressions with basic_string - * This file do not have to be macro guarded as it is only used in the _string.h - * file and it is a part of the basic_string definition. - */ - -public: - template <class _Left, class _Right, class _StorageDir> - basic_string(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s) - : _STLP_STRING_SUM_BASE(_Reserve_t(), __s.size(), __s.get_allocator()) - { _M_append_sum(__s); } - - template <class _Left, class _Right, class _StorageDir> - 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) { - 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)); - } - -private: - _CharT* _M_append_fast(_STLP_PRIV __char_wrapper<_CharT> __c, _CharT *__buf) { - _STLP_STD::_Copy_Construct(__buf, __c.getValue()); - return __buf + 1; - } - _CharT* _M_append_fast(_CharT const* __s, size_type __s_size, _CharT *__buf) - { return uninitialized_copy(__s, __s + __s_size, __buf); } - _CharT* _M_append_fast(_STLP_PRIV __cstr_wrapper<_CharT> const& __s, _CharT *__buf) - { return _M_append_fast(__s.c_str(), __s.size(), __buf); } - _CharT* _M_append_fast(_STLP_PRIV __bstr_wrapper<_CharT, _Traits, _Alloc> __s, _CharT *__buf) - { return _M_append_fast(__s.b_str(), __buf); } - _CharT* _M_append_fast(_Self const& __s, _CharT *__buf) - { return _M_append_fast(__s.data(), __s.size(), __buf); } - _CharT* _M_append_fast(_STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc> const&, _CharT *__buf) - { return __buf; } - template <class _Left, class _Right, class _StorageDir> - _CharT* _M_append_fast(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s, _CharT *__buf) - { return _M_append_fast(__s.getRhs(), _M_append_fast(__s.getLhs(), __buf)); } - - _CharT* _M_append_fast_pos(_STLP_PRIV __char_wrapper<_CharT> __c, _CharT *__buf, size_type /*__pos*/, size_type __n) { - if (__n == 0) - return __buf; - _STLP_STD::_Copy_Construct(__buf, __c.getValue()); - return __buf + 1; - } - _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); } - _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); } - _CharT* _M_append_fast_pos(_STLP_PRIV __bstr_wrapper<_CharT, _Traits, _Alloc> __s, _CharT *__buf, - size_type __pos, size_type __n) - { return _M_append_fast_pos(__s.b_str(), __buf, __pos, __n); } - _CharT* _M_append_fast_pos(_Self const& __s, _CharT *__buf, - size_type __pos, size_type __n) - { return _M_append_fast_pos(__s.data(), __s.size(), __buf, __pos, __n); } - _CharT* _M_append_fast_pos(_STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc> const&, _CharT *__buf, - size_type, size_type) - { return __buf; } - - template <class _Left, class _Right, class _StorageDir> - _CharT* _M_append_fast_pos(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s, - _CharT *__buf, size_type __pos, size_type __n) { - if (__n == 0) { - return __buf; - } - size_type __lhs_size = __s.getLhs().size(); - if (__pos < __lhs_size) { - if (__n < (__lhs_size - __pos)) { - return _M_append_fast_pos(__s.getLhs(), __buf, __pos, __n); - } else { - return _M_append_fast_pos(__s.getRhs(), _M_append_fast_pos(__s.getLhs(), __buf, __pos, __n), - 0, __n - (__lhs_size - __pos)); - } - } else { - return _M_append_fast_pos(__s.getRhs(), __buf, __pos - __lhs_size, __n); - } - } - - /* Note: We always force use of dynamic buffer if the short string optim option is activated - * to avoid complicated code if the basic_string was instanciated with a non POD type. - * In such a case we should use assignment for objects in the static array something that we - * do not do. - */ - size_type _M_get_additional_size(size_type __new_size, const __false_type& /*_Char_Is_POD*/) const { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - //To avoid problem with the string assumptions, never allocate a dynamic buffer smaller or equal - //than the static one: - if (__new_size < _Base::_DEFAULT_SIZE + 1) - return (_Base::_DEFAULT_SIZE + 1) - __new_size; -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - return 0; - } - size_type _M_get_additional_size(size_type, const __true_type& /*_Char_Is_POD*/) const - { return 0; } - - template <class _Left, class _Right, class _StorageDir> - _Self& _M_append_sum (_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s) { - size_type __s_size = __s.size(); - if (__s_size == 0) - return *this; - const size_type __old_size = this->size(); - if (__s_size > this->max_size() || __old_size > (this->max_size() - __s_size)) - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = uninitialized_copy(this->_M_Start(), this->_M_Finish(), __new_start); - __new_finish = this->_M_append_fast(__s, __new_finish); - this->_M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - else { - _M_append_sum_no_overflow(__s, 0, __s_size); - } - return *this; - } - - 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); - if (__s_size == 0) - return *this; - const size_type __old_size = this->size(); - if (__s_size > this->max_size() || __old_size > (this->max_size() - __s_size)) - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = uninitialized_copy(this->_M_Start(), this->_M_Finish(), __new_start); - __new_finish = _M_append_fast_pos(__s, __new_finish, __pos, __s_size); - this->_M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - else { - _M_append_sum_no_overflow(__s, __pos, __s_size); - } - return *this; - } - - template <class _Left, class _Right, class _StorageDir> - void _M_append_sum_no_overflow(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s, - size_type __pos, size_type __n) { - pointer __finish = this->_M_Finish(); - _M_append_fast_pos(__s, __finish + 1, __pos + 1, __n - 1); - _STLP_TRY { - this->_M_construct_null(__finish + __n); - } - _STLP_UNWIND(this->_M_destroy_ptr_range(__finish + 1, __finish + __n)) - /* The call to the traits::assign method is only important for non POD types because the instance - * pointed to by _M_finish has been constructed (default constructor) and should not be constructed - * (copy constructor) once again. For POD it is irrelevant, uninitialized_copy could be fine, - * but we are not going to make two implementations just for that. - */ - _Traits::assign(*this->_M_finish, __s[__pos]); - this->_M_finish += __n; - } diff --git a/WebKit/android/stlport/stl/_string_workaround.h b/WebKit/android/stlport/stl/_string_workaround.h deleted file mode 100644 index acd5d3d..0000000 --- a/WebKit/android/stlport/stl/_string_workaround.h +++ /dev/null @@ -1,733 +0,0 @@ -/* - * Copyright (c) 2004 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -//Included from _string.h, no need for macro guarding. - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_DEBUG) -# define basic_string _STLP_NON_DBG_NAME(str) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -#define _STLP_NO_MEM_T_STRING_BASE _STLP_PRIV _STLP_NO_MEM_T_NAME(str)<_CharT, _Traits, _Alloc> - -template <class _CharT, class _Traits, class _Alloc> -class basic_string : public _STLP_NO_MEM_T_STRING_BASE -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && \ - !defined (basic_string) - , public __stlport_class<basic_string<_CharT, _Traits, _Alloc> > -#endif -{ -protected: // Protected members inherited from base. - typedef basic_string<_CharT, _Traits, _Alloc> _Self; - typedef _STLP_NO_MEM_T_STRING_BASE _Base; - typedef typename _Base::_Char_Is_POD _Char_Is_POD; - -public: - - __IMPORT_WITH_REVERSE_ITERATORS(_Base) - - typedef typename _Base::_Iterator_category _Iterator_category; - typedef typename _Base::traits_type traits_type; - typedef typename _Base::_Reserve_t _Reserve_t; - -public: // Constructor, destructor, assignment. - explicit basic_string(const allocator_type& __a = allocator_type()) - : _STLP_NO_MEM_T_STRING_BASE(__a) {} - - basic_string(_Reserve_t __r, size_t __n, - const allocator_type& __a = allocator_type()) - : _STLP_NO_MEM_T_STRING_BASE(__r, __n, __a) {} - - basic_string(const _Self& __s) - : _STLP_NO_MEM_T_STRING_BASE(__s) {} - - basic_string(const _Self& __s, size_type __pos, size_type __n = npos, - const allocator_type& __a = allocator_type()) - : _STLP_NO_MEM_T_STRING_BASE(__s, __pos, __n, __a) {} - - basic_string(const _CharT* __s, size_type __n, - const allocator_type& __a = allocator_type()) - : _STLP_NO_MEM_T_STRING_BASE(__s, __n, __a) {} - - basic_string(const _CharT* __s, - const allocator_type& __a = allocator_type()) - : _STLP_NO_MEM_T_STRING_BASE(__s, __a) {} - - basic_string(size_type __n, _CharT __c, - const allocator_type& __a = allocator_type()) - : _STLP_NO_MEM_T_STRING_BASE(__n, __c, __a) {} - - basic_string(__move_source<_Self> src) - : _STLP_NO_MEM_T_STRING_BASE(__move_source<_Base>(src.get())) {} - - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. -#if !(defined(__MRC__) || (defined(__SC__) && !defined(__DMC__))) //*ty 04/30/2001 - mpw compilers choke on this ctor - template <class _InputIterator> - basic_string(_InputIterator __f, _InputIterator __l, - const allocator_type & __a _STLP_ALLOCATOR_TYPE_DFL) - : _STLP_NO_MEM_T_STRING_BASE(_Base::_CalledFromWorkaround_t(), __a) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__f, __l, _Integral()); - } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - basic_string(_InputIterator __f, _InputIterator __l) - : _STLP_NO_MEM_T_STRING_BASE(_Base::_CalledFromWorkaround_t(), allocator_type()) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_dispatch(__f, __l, _Integral()); - } -# endif -#endif /* !__MRC__ || (__SC__ && !__DMC__) */ - - _Self& operator=(const _Self& __s) { - _Base::operator=(__s); - return *this; - } - - _Self& operator=(const _CharT* __s) { - _Base::operator=(__s); - return *this; - } - - _Self& operator=(_CharT __c) { - _Base::operator=(__c); - return *this; - } - -private: - template <class _InputIter> - void _M_range_initialize(_InputIter __f, _InputIter __l, - const input_iterator_tag &__tag) { - this->_M_allocate_block(); - this->_M_construct_null(this->_M_Finish()); - _STLP_TRY { - _M_appendT(__f, __l, __tag); - } - _STLP_UNWIND(this->_M_destroy_range()) - } - - template <class _ForwardIter> - void _M_range_initialize(_ForwardIter __f, _ForwardIter __l, - const forward_iterator_tag &) { - difference_type __n = distance(__f, __l); - this->_M_allocate_block(__n + 1); -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _M_copyT(__f, __l, this->_M_Start()); - this->_M_finish = this->_M_Start() + __n; - } - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - this->_M_finish = uninitialized_copy(__f, __l, this->_M_Start()); - this->_M_terminate_string(); - } - - template <class _InputIter> - void _M_range_initializeT(_InputIter __f, _InputIter __l) { - _M_range_initialize(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - } - - template <class _Integer> - void _M_initialize_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/) { - this->_M_allocate_block(__n + 1); -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) { - _Traits::assign(this->_M_Start(), __n, __x); - this->_M_finish = this->_M_Start() + __n; - } - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - this->_M_finish = uninitialized_fill_n(this->_M_Start(), __n, __x); - this->_M_terminate_string(); - } - - template <class _InputIter> - void _M_initialize_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) { - _M_range_initializeT(__f, __l); - } - -public: // Append, operator+=, push_back. - _Self& operator+=(const _Self& __s) { - _Base::operator+=(__s); - return *this; - } - _Self& operator+=(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::operator+=(__s); - return *this; - } - _Self& operator+=(_CharT __c) { - _Base::operator+=(__c); - return *this; - } - - _Self& append(const _Self& __s) { - _Base::append(__s); - return *this; - } - - _Self& append(const _Self& __s, - size_type __pos, size_type __n) { - _Base::append(__s, __pos, __n); - return *this; - } - - _Self& append(const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::append(__s, __n); - return *this; - } - _Self& append(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::append(__s); - return *this; - } - _Self& append(size_type __n, _CharT __c) { - _Base::append(__n, __c); - return *this; - } - - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - _Self& append(_InputIter __first, _InputIter __last) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - return _M_append_dispatch(__first, __last, _Integral()); - } - -#if !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - //See equivalent assign method remark. - _Self& append(const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f)_STLP_FIX_LITERAL_BUG(__l) - _Base::append(__f, __l); - return *this; - } -#endif - -private: // Helper functions for append. - - template <class _InputIter> - _Self& _M_appendT(_InputIter __first, _InputIter __last, - const input_iterator_tag &) { - for ( ; __first != __last ; ++__first) - _Base::push_back(*__first); - return *this; - } - - template <class _ForwardIter> - _Self& _M_appendT(_ForwardIter __first, _ForwardIter __last, - const forward_iterator_tag &) { - if (__first != __last) { - const size_type __old_size = this->size(); - difference_type __n = distance(__first, __last); - if (__STATIC_CAST(size_type,__n) > max_size() || __old_size > max_size() - __STATIC_CAST(size_type,__n)) - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = uninitialized_copy(this->_M_Start(), this->_M_Finish(), __new_start); - __new_finish = uninitialized_copy(__first, __last, __new_finish); - _M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - else { - _ForwardIter __f1 = __first; - ++__f1; -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copyT(__f1, __last, this->_M_Finish() + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy(__f1, __last, this->_M_Finish() + 1); - _STLP_TRY { - this->_M_construct_null(this->_M_Finish() + __n); - } - _STLP_UNWIND(this->_M_destroy_ptr_range(this->_M_Finish() + 1, this->_M_Finish() + __n)) - _Traits::assign(*this->_M_finish, *__first); - this->_M_finish += __n; - } - } - return *this; - } - - template <class _Integer> - _Self& _M_append_dispatch(_Integer __n, _Integer __x, const __true_type& /*Integral*/) { - return append((size_type) __n, (_CharT) __x); - } - - template <class _InputIter> - _Self& _M_append_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*Integral*/) { - return _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - } - -public: // Assign - - _Self& assign(const _Self& __s) { - _Base::assign(__s); - return *this; - } - - _Self& assign(const _Self& __s, - size_type __pos, size_type __n) { - _Base::assign(__s, __pos, __n); - return *this; - } - - _Self& assign(const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::assign(__s, __n); - return *this; - } - - _Self& assign(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::assign(__s); - return *this; - } - - _Self& assign(size_type __n, _CharT __c) { - _Base::assign(__n, __c); - return *this; - } - -private: // Helper functions for assign. - - template <class _Integer> - _Self& _M_assign_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/) { - return assign((size_type) __n, (_CharT) __x); - } - - template <class _InputIter> - _Self& _M_assign_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) { - pointer __cur = this->_M_Start(); - while (__f != __l && __cur != this->_M_Finish()) { - _Traits::assign(*__cur, *__f); - ++__f; - ++__cur; - } - if (__f == __l) - _Base::erase(__cur, this->_M_Finish()); - else - _M_appendT(__f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - return *this; - } - -public: - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - _Self& assign(_InputIter __first, _InputIter __last) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - return _M_assign_dispatch(__first, __last, _Integral()); - } - -#if !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - /* This method is not part of the standard and is a specialization of the - * template method assign. It is only granted for convenience to call assign - * with mixed parameters iterator and const_iterator. - */ - _Self& assign(const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f)_STLP_FIX_LITERAL_BUG(__l) - _Base::assign(__f, __l); - return *this; - } -#endif - -public: // Insert - - _Self& insert(size_type __pos, const _Self& __s) { - _Base::insert(__pos, __s); - return *this; - } - - _Self& insert(size_type __pos, const _Self& __s, - size_type __beg, size_type __n) { - _Base::insert(__pos, __s, __beg, __n); - return *this; - } - _Self& insert(size_type __pos, const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::insert(__pos, __s, __n); - return *this; - } - - _Self& insert(size_type __pos, const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::insert(__pos, __s); - return *this; - } - - _Self& insert(size_type __pos, size_type __n, _CharT __c) { - _Base::insert(__pos, __n, __c); - return *this; - } - - iterator insert(iterator __p, _CharT __c) { - return _Base::insert(__p, __c); - } - - void insert(iterator __p, size_t __n, _CharT __c) { - _Base::insert(__p, __n, __c); - } - - // Check to see if _InputIterator is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - void insert(iterator __p, _InputIter __first, _InputIter __last) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - _M_insert_dispatch(__p, __first, __last, _Integral()); - } - -private: // Helper functions for insert. - - void _M_insert(iterator __p, const _CharT* __f, const _CharT* __l, bool __self_ref) { - _STLP_FIX_LITERAL_BUG(__f)_STLP_FIX_LITERAL_BUG(__l) - _Base::_M_insert(__p, __f, __l, __self_ref); - } - - template <class _ForwardIter> - 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; - pointer __new_start = this->_M_end_of_storage.allocate(__len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = uninitialized_copy(this->_M_Start(), __position, __new_start); - __new_finish = uninitialized_copy(__first, __last, __new_finish); - __new_finish = uninitialized_copy(__position, this->_M_Finish(), __new_finish); - this->_M_construct_null(__new_finish); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - this->_M_destroy_range(); - this->_M_deallocate_block(); - this->_M_reset(__new_start, __new_finish, __new_start + __len); - } - - template <class _InputIter> - void _M_insertT(iterator __p, _InputIter __first, _InputIter __last, - const input_iterator_tag &) { - for ( ; __first != __last; ++__first) { - __p = insert(__p, *__first); - ++__p; - } - } - - template <class _ForwardIter> - void _M_insertT(iterator __position, _ForwardIter __first, _ForwardIter __last, - const forward_iterator_tag &) { - if (__first != __last) { - difference_type __n = distance(__first, __last); - if (this->_M_end_of_storage._M_data - this->_M_finish >= __n + 1) { - const difference_type __elems_after = this->_M_finish - __position; - if (__elems_after >= __n) { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _Base::_M_copy((this->_M_Finish() - __n) + 1, this->_M_Finish() + 1, this->_M_Finish() + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy((this->_M_Finish() - __n) + 1, this->_M_Finish() + 1, this->_M_Finish() + 1); - this->_M_finish += __n; - _Traits::move(__position + __n, __position, (__elems_after - __n) + 1); - _M_copyT(__first, __last, __position); - } - else { - pointer __old_finish = this->_M_Finish(); - _ForwardIter __mid = __first; - advance(__mid, __elems_after + 1); -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _M_copyT(__mid, __last, this->_M_Finish() + 1); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy(__mid, __last, this->_M_Finish() + 1); - this->_M_finish += __n - __elems_after; - _STLP_TRY { -#if defined (_STLP_USE_SHORT_STRING_OPTIM) - if (this->_M_using_static_buf()) - _Base::_M_copy(__position, __old_finish + 1, this->_M_Finish()); - else -#endif /* _STLP_USE_SHORT_STRING_OPTIM */ - uninitialized_copy(__position, __old_finish + 1, this->_M_Finish()); - this->_M_finish += __elems_after; - } - _STLP_UNWIND((this->_M_destroy_ptr_range(__old_finish + 1, this->_M_Finish()), - this->_M_finish = __old_finish)) - _M_copyT(__first, __mid, __position); - } - } - else { - _M_insert_overflow(__position, __first, __last, __n); - } - } - } - - template <class _Integer> - void _M_insert_dispatch(iterator __p, _Integer __n, _Integer __x, - const __true_type& /*Integral*/) { - insert(__p, (size_type) __n, (_CharT) __x); - } - - template <class _InputIter> - void _M_insert_dispatch(iterator __p, _InputIter __first, _InputIter __last, - const __false_type& /*Integral*/) { - _STLP_FIX_LITERAL_BUG(__p) - /* - * Within the basic_string implementation we are only going to check for - * self referencing if iterators are string iterators or _CharT pointers. - * A user could encapsulate those iterator within their own iterator interface - * and in this case lead to a bad behavior, this is a known limitation. - */ - typedef typename _AreSameUnCVTypes<_InputIter, iterator>::_Ret _IsIterator; - typedef typename _AreSameUnCVTypes<_InputIter, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsIterator, _IsConstIterator>::_Ret _CheckInside; - _M_insert_aux(__p, __first, __last, _CheckInside()); - } - - template <class _RandomIter> - void _M_insert_aux (iterator __p, _RandomIter __first, _RandomIter __last, - const __true_type& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__p) - _M_insert(__p, &(*__first), &(*__last), _Base::_M_inside(&(*__first))); - } - - template<class _InputIter> - void _M_insert_aux (iterator __p, _InputIter __first, _InputIter __last, - const __false_type& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__p) - _M_insertT(__p, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); - } - - template <class _InputIterator> - void _M_copyT(_InputIterator __first, _InputIterator __last, pointer __result) { - _STLP_FIX_LITERAL_BUG(__p) - for ( ; __first != __last; ++__first, ++__result) - _Traits::assign(*__result, *__first); - } - -#if !defined (_STLP_NO_METHOD_SPECIALIZATION) - void _M_copyT(const _CharT* __f, const _CharT* __l, _CharT* __res) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) _STLP_FIX_LITERAL_BUG(__res) - _Base::_M_copy(__f, __l, __res); - } -#endif - -public: // Erase. - - _Self& erase(size_type __pos = 0, size_type __n = npos) { - _Base::erase(__pos, __n); - return *this; - } - - iterator erase(iterator __pos) { - _STLP_FIX_LITERAL_BUG(__pos) - return _Base::erase(__pos); - } - - iterator erase(iterator __first, iterator __last) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return _Base::erase(__first, __last); - } - -public: // Replace. (Conceptually equivalent - // to erase followed by insert.) - _Self& replace(size_type __pos, size_type __n, const _Self& __s) { - _Base::replace(__pos, __n, __s); - return *this; - } - - _Self& replace(size_type __pos1, size_type __n1, const _Self& __s, - size_type __pos2, size_type __n2) { - _Base::replace(__pos1, __n1, __s, __pos2, __n2); - return *this; - } - - _Self& replace(size_type __pos, size_type __n1, - const _CharT* __s, size_type __n2) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::replace(__pos, __n1, __s, __n2); - return *this; - } - - _Self& replace(size_type __pos, size_type __n1, const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _Base::replace(__pos, __n1, __s); - return *this; - } - - _Self& replace(size_type __pos, size_type __n1, - size_type __n2, _CharT __c) { - _Base::replace(__pos, __n1, __n2, __c); - return *this; - } - - _Self& replace(iterator __first, iterator __last, const _Self& __s) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _Base::replace(__first, __last, __s); - return *this; - } - - _Self& replace(iterator __first, iterator __last, - const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__s) - _Base::replace(__first, __last, __s, __n); - return *this; - } - - _Self& replace(iterator __first, iterator __last, - const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__s) - _Base::replace(__first, __last, __s); - return *this; - } - - _Self& replace(iterator __first, iterator __last, - size_type __n, _CharT __c) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _Base::replace(__first, __last, __n, __c); - return *this; - } - - // Check to see if _InputIter is an integer type. If so, then - // it can't be an iterator. - template <class _InputIter> - _Self& replace(iterator __first, iterator __last, - _InputIter __f, _InputIter __l) { - _STLP_FIX_LITERAL_BUG(__first)_STLP_FIX_LITERAL_BUG(__last) - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - return _M_replace_dispatch(__first, __last, __f, __l, _Integral()); - } - -#if !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - _Self& replace(iterator __first, iterator __last, - const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _Base::replace(__first, __last, __f, __l); - return *this; - } -#endif - -protected: // Helper functions for replace. - _Self& _M_replace(iterator __first, iterator __last, - const _CharT* __f, const _CharT* __l, bool __self_ref) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _Base::_M_replace(__first, __last, __f, __l, __self_ref); - return *this; - } - - template <class _Integer> - _Self& _M_replace_dispatch(iterator __first, iterator __last, - _Integer __n, _Integer __x, const __true_type& /*IsIntegral*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return replace(__first, __last, (size_type) __n, (_CharT) __x); - } - - template <class _InputIter> - _Self& _M_replace_dispatch(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, const __false_type& /*IsIntegral*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - typedef typename _AreSameUnCVTypes<_InputIter, iterator>::_Ret _IsIterator; - typedef typename _AreSameUnCVTypes<_InputIter, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsIterator, _IsConstIterator>::_Ret _CheckInside; - return _M_replace_aux(__first, __last, __f, __l, _CheckInside()); - } - - template <class _RandomIter> - _Self& _M_replace_aux(iterator __first, iterator __last, - _RandomIter __f, _RandomIter __l, __true_type const& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return _M_replace(__first, __last, &(*__f), &(*__l), _Base::_M_inside(&(*__f))); - } - - template <class _InputIter> - _Self& _M_replace_aux(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, __false_type const& /*_CheckInside*/) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - return _M_replaceT(__first, __last, __f, __l, _STLP_ITERATOR_CATEGORY(__f, _InputIter)); - } - - template <class _InputIter> - _Self& _M_replaceT(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, const input_iterator_tag&__ite_tag) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - for ( ; __first != __last && __f != __l; ++__first, ++__f) - _Traits::assign(*__first, *__f); - if (__f == __l) - _Base::erase(__first, __last); - else - _M_insertT(__last, __f, __l, __ite_tag); - return *this; - } - - template <class _ForwardIter> - _Self& _M_replaceT(iterator __first, iterator __last, - _ForwardIter __f, _ForwardIter __l, const forward_iterator_tag &__ite_tag) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - difference_type __n = distance(__f, __l); - const difference_type __len = __last - __first; - if (__len >= __n) { - _M_copyT(__f, __l, __first); - _Base::erase(__first + __n, __last); - } - else { - _ForwardIter __m = __f; - advance(__m, __len); - _M_copyT(__f, __m, __first); - _M_insertT(__last, __m, __l, __ite_tag); - } - return *this; - } - -public: // Other modifier member functions. - - void swap(_Self& __s) - { _Base::swap(__s); } - -public: // Substring. - - _Self substr(size_type __pos = 0, size_type __n = npos) const - { return _Self(*this, __pos, __n, get_allocator()); } - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) && !defined (_STLP_DEBUG) -# define _STLP_STRING_SUM_BASE _STLP_NO_MEM_T_STRING_BASE -# include <stl/_string_sum_methods.h> -# undef _STLP_STRING_SUM_BASE -#endif -}; - -#undef _STLP_NO_MEM_T_STRING_BASE - -#if defined (basic_string) -_STLP_MOVE_TO_STD_NAMESPACE -# undef basic_string -#endif - -_STLP_END_NAMESPACE diff --git a/WebKit/android/stlport/stl/_strstream.h b/WebKit/android/stlport/stl/_strstream.h deleted file mode 100644 index 5e3d4c3..0000000 --- a/WebKit/android/stlport/stl/_strstream.h +++ /dev/null @@ -1,165 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_INTERNAL_STRSTREAM -#define _STLP_INTERNAL_STRSTREAM - -#ifndef _STLP_INTERNAL_STREAMBUF -# include <stl/_streambuf.h> -#endif - -#ifndef _STLP_INTERNAL_ISTREAM -# include <stl/_istream.h> // Includes <ostream>, <ios>, <iosfwd> -#endif - -#ifndef _STLP_INTERNAL_STRING_H -# include <stl/_string.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#ifndef _STLP_USE_NAMESPACES -# define strstream _STLP_strstream -# define ostrstream _STLP_ostrstream -# define istrstream _STLP_istrstream -# define strstreambuf _STLP_strstreambuf -#endif - -//---------------------------------------------------------------------- -// Class strstreambuf, a streambuf class that manages an array of char. -// Note that this class is not a template. - -class _STLP_CLASS_DECLSPEC strstreambuf : public basic_streambuf<char, char_traits<char> > { -public: // Types. - typedef char_traits<char> _Traits; - typedef basic_streambuf<char, char_traits<char> > _Base; - typedef void* (*__alloc_fn)(size_t); - typedef void (*__free_fn)(void*); -public: // Constructor, destructor - - explicit strstreambuf(streamsize _Initial_capacity = 0); - - strstreambuf(__alloc_fn, __free_fn); - - strstreambuf(char* __get, streamsize __n, char* __put = 0); - strstreambuf(signed char* __get, streamsize __n, signed char* __put = 0); - strstreambuf(unsigned char* __get, streamsize __n, unsigned char* __put=0); - - strstreambuf(const char* __get, streamsize __n); - strstreambuf(const signed char* __get, streamsize __n); - strstreambuf(const unsigned char* __get, streamsize __n); - - virtual ~strstreambuf(); - -public: // strstreambuf operations. - void freeze(bool = true); - char* str(); - int pcount() const; - -protected: // Overridden virtual member functions. - virtual int_type overflow(int_type __c = _Traits::eof()); - virtual int_type pbackfail(int_type __c = _Traits::eof()); - virtual int_type underflow(); - virtual _Base* setbuf(char* __buf, streamsize __n); - virtual pos_type seekoff(off_type __off, ios_base::seekdir __dir, - ios_base::openmode __mode - = ios_base::in | ios_base::out); - virtual pos_type seekpos(pos_type __pos, ios_base::openmode __mode - = ios_base::in | ios_base::out); - -private: // Helper functions. - // Dynamic allocation, possibly using _M_alloc_fun and _M_free_fun. - char* _M_alloc(size_t); - void _M_free(char*); - - // Helper function used in constructors. - void _M_setup(char* __get, char* __put, streamsize __n); -private: // Data members. - __alloc_fn _M_alloc_fun; - __free_fn _M_free_fun; - bool _M_dynamic : 1; - bool _M_frozen : 1; - bool _M_constant : 1; -}; - -//---------------------------------------------------------------------- -// Class istrstream, an istream that manages a strstreambuf. - -class _STLP_CLASS_DECLSPEC istrstream : public basic_istream<char, char_traits<char> > { -public: - explicit istrstream(char*); - explicit istrstream(const char*); - istrstream(char* , streamsize); - istrstream(const char*, streamsize); - virtual ~istrstream(); - - strstreambuf* rdbuf() const; - char* str(); - -private: - strstreambuf _M_buf; -}; - -//---------------------------------------------------------------------- -// Class ostrstream - -class _STLP_CLASS_DECLSPEC ostrstream : public basic_ostream<char, char_traits<char> > -{ -public: - ostrstream(); - ostrstream(char*, int, ios_base::openmode = ios_base::out); - virtual ~ostrstream(); - - strstreambuf* rdbuf() const; - void freeze(bool = true); - char* str(); - int pcount() const; - -private: - strstreambuf _M_buf; -}; - -//---------------------------------------------------------------------- -// Class strstream - -class _STLP_CLASS_DECLSPEC strstream : public basic_iostream<char, char_traits<char> > { -public: - typedef char char_type; - typedef char_traits<char>::int_type int_type; - typedef char_traits<char>::pos_type pos_type; - typedef char_traits<char>::off_type off_type; - - strstream(); - strstream(char*, int, ios_base::openmode = ios_base::in | ios_base::out); - virtual ~strstream(); - - strstreambuf* rdbuf() const; - void freeze(bool = true); - int pcount() const; - char* str(); - -private: - strstreambuf _M_buf; - - //explicitely defined as private to avoid warnings: - strstream(strstream const&); - strstream& operator = (strstream const&); -}; - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_STRSTREAM */ diff --git a/WebKit/android/stlport/stl/_tempbuf.c b/WebKit/android/stlport/stl/_tempbuf.c deleted file mode 100644 index 179b472..0000000 --- a/WebKit/android/stlport/stl/_tempbuf.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_TEMPBUF_C -#define _STLP_TEMPBUF_C - -#ifndef _STLP_INTERNAL_TEMPBUF_H -# include <stl/_tempbuf.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp> -pair<_Tp*, ptrdiff_t> _STLP_CALL -__get_temporary_buffer(ptrdiff_t __len, _Tp*) -{ - if (__len > ptrdiff_t(INT_MAX / sizeof(_Tp))) - __len = INT_MAX / sizeof(_Tp); - - while (__len > 0) { - _Tp* __tmp = (_Tp*) malloc((size_t)__len * sizeof(_Tp)); - if (__tmp != 0) - return pair<_Tp*, ptrdiff_t>(__tmp, __len); - __len /= 2; - } - - return pair<_Tp*, ptrdiff_t>((_Tp*)0, 0); -} -_STLP_END_NAMESPACE - -#endif /* _STLP_TEMPBUF_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_tempbuf.h b/WebKit/android/stlport/stl/_tempbuf.h deleted file mode 100644 index b50e6d4..0000000 --- a/WebKit/android/stlport/stl/_tempbuf.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_TEMPBUF_H -#define _STLP_INTERNAL_TEMPBUF_H - -#ifndef _STLP_CLIMITS -# include <climits> -#endif - -#ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -#endif - -#ifndef _STLP_INTERNAL_UNINITIALIZED_H -# include <stl/_uninitialized.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp> -pair<_Tp*, ptrdiff_t> _STLP_CALL -__get_temporary_buffer(ptrdiff_t __len, _Tp*); - -#ifndef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS - -template <class _Tp> -inline pair<_Tp*, ptrdiff_t> _STLP_CALL get_temporary_buffer(ptrdiff_t __len) { - return __get_temporary_buffer(__len, (_Tp*) 0); -} - -# if ! defined(_STLP_NO_EXTENSIONS) -// This overload is not required by the standard; it is an extension. -// It is supported for backward compatibility with the HP STL, and -// because not all compilers support the language feature (explicit -// function template arguments) that is required for the standard -// version of get_temporary_buffer. -template <class _Tp> -inline pair<_Tp*, ptrdiff_t> _STLP_CALL -get_temporary_buffer(ptrdiff_t __len, _Tp*) { - return __get_temporary_buffer(__len, (_Tp*) 0); -} -# endif -#endif - -template <class _Tp> -inline void _STLP_CALL return_temporary_buffer(_Tp* __p) { -// SunPro brain damage - free((char*)__p); -} - -template <class _ForwardIterator, class _Tp> -class _Temporary_buffer { -private: - ptrdiff_t _M_original_len; - ptrdiff_t _M_len; - _Tp* _M_buffer; - - void _M_allocate_buffer() { - _M_original_len = _M_len; - _M_buffer = 0; - - if (_M_len > (ptrdiff_t)(INT_MAX / sizeof(_Tp))) - _M_len = INT_MAX / sizeof(_Tp); - - while (_M_len > 0) { - _M_buffer = (_Tp*) malloc(_M_len * sizeof(_Tp)); - if (_M_buffer) - break; - _M_len /= 2; - } - } - - void _M_initialize_buffer(const _Tp&, const __true_type&) {} - void _M_initialize_buffer(const _Tp& val, const __false_type&) { - uninitialized_fill_n(_M_buffer, _M_len, val); - } - -public: - ptrdiff_t size() const { return _M_len; } - ptrdiff_t requested_size() const { return _M_original_len; } - _Tp* begin() { return _M_buffer; } - _Tp* end() { return _M_buffer + _M_len; } - - _Temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) { - // Workaround for a __type_traits bug in the pre-7.3 compiler. -# if defined(__sgi) && !defined(__GNUC__) && _COMPILER_VERSION < 730 - typedef typename __type_traits<_Tp>::is_POD_type _Trivial; -# else - typedef typename __type_traits<_Tp>::has_trivial_default_constructor _Trivial; -# endif - _STLP_TRY { - _M_len = distance(__first, __last); - _M_allocate_buffer(); - if (_M_len > 0) - _M_initialize_buffer(*__first, _Trivial()); - } - _STLP_UNWIND(free(_M_buffer); _M_buffer = 0; _M_len = 0) - } - - ~_Temporary_buffer() { - _STLP_STD::_Destroy_Range(_M_buffer, _M_buffer + _M_len); - free(_M_buffer); - } - -private: - // Disable copy constructor and assignment operator. - _Temporary_buffer(const _Temporary_buffer<_ForwardIterator, _Tp>&) {} - void operator=(const _Temporary_buffer<_ForwardIterator, _Tp>&) {} -}; - -# ifndef _STLP_NO_EXTENSIONS - -// Class temporary_buffer is not part of the standard. It is an extension. - -template <class _ForwardIterator, - class _Tp -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - = typename iterator_traits<_ForwardIterator>::value_type -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - > -struct temporary_buffer : public _Temporary_buffer<_ForwardIterator, _Tp> -{ - temporary_buffer(_ForwardIterator __first, _ForwardIterator __last) - : _Temporary_buffer<_ForwardIterator, _Tp>(__first, __last) {} - ~temporary_buffer() {} -}; - -# endif /* _STLP_NO_EXTENSIONS */ - -_STLP_END_NAMESPACE - -# ifndef _STLP_LINK_TIME_INSTANTIATION -# include <stl/_tempbuf.c> -# endif - -#endif /* _STLP_INTERNAL_TEMPBUF_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_threads.c b/WebKit/android/stlport/stl/_threads.c deleted file mode 100644 index 40641e8..0000000 --- a/WebKit/android/stlport/stl/_threads.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_THREADS_C -#define _STLP_THREADS_C - -#ifndef _STLP_INTERNAL_THREADS_H -# include <stl/_threads.h> -#endif - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) - -#if defined (_STLP_SGI_THREADS) -# include <time.h> -#elif defined (_STLP_UNIX) -# ifndef _STLP_INTERNAL_CTIME -# include <stl/_ctime.h> -# endif -# if defined (_STLP_USE_NAMESPACES) && !defined (_STLP_VENDOR_GLOBAL_CSTD) -using _STLP_VENDOR_CSTD::time_t; -# endif -# include <sys/time.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if (_STLP_STATIC_TEMPLATE_DATA > 0) - -# if defined (_STLP_USE_ATOMIC_SWAP_MUTEX) -template<int __32bits> -_STLP_STATIC_MUTEX -_Atomic_swap_struct<__32bits>::_S_swap_lock _STLP_MUTEX_INITIALIZER; -# undef _STLP_USE_ATOMIC_SWAP_MUTEX -# endif - -# if defined (_STLP_THREADS) && !defined (_STLP_USE_PTHREAD_SPINLOCK) -template <int __inst> -unsigned _STLP_mutex_spin<__inst>::__max = _STLP_mutex_spin<__inst>::__low_max; - -template <int __inst> -unsigned _STLP_mutex_spin<__inst>::__last = 0; -# endif // _STLP_USE_PTHREAD_SPINLOCK - -#else /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -# if defined (_STLP_USE_ATOMIC_SWAP_MUTEX) -__DECLARE_INSTANCE(_STLP_STATIC_MUTEX, _Atomic_swap_struct<sizeof(__stl_atomic_t) == sizeof(void*)>::_S_swap_lock, - _STLP_MUTEX_INITIALIZER ); -# undef _STLP_USE_ATOMIC_SWAP_MUTEX -# endif /* _STLP_PTHREADS */ - -# if defined (_STLP_THREADS) && !defined (_STLP_USE_PTHREAD_SPINLOCK) -__DECLARE_INSTANCE(unsigned, _STLP_mutex_spin<0>::__max, =30); -__DECLARE_INSTANCE(unsigned, _STLP_mutex_spin<0>::__last, =0); -# endif // _STLP_USE_PTHREAD_SPINLOCK - -#endif /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -#if defined (_STLP_THREADS) && !defined (_STLP_USE_PTHREAD_SPINLOCK) - -# if defined (_STLP_SPARC_SOLARIS_THREADS) -// underground function in libc.so; we do not want dependance on librt -extern "C" int __nanosleep(const struct timespec*, struct timespec*); -# define _STLP_NANOSLEEP __nanosleep -# else -# define _STLP_NANOSLEEP nanosleep -# endif - -template <int __inst> -void _STLP_CALL -_STLP_mutex_spin<__inst>::_S_nsec_sleep(int __log_nsec) { -# if defined (_STLP_WIN32THREADS) - if (__log_nsec <= 20) { - // Note from boost (www.boost.org): - // Changed to Sleep(1) from Sleep(0). - // According to MSDN, Sleep(0) will never yield - // to a lower-priority thread, whereas Sleep(1) - // will. Performance seems not to be affected. - Sleep(1); - } else { - Sleep(1 << (__log_nsec - 20)); - } -# elif defined(_STLP_OS2THREADS) - if (__log_nsec <= 20) { - DosSleep(0); - } else { - DosSleep(1 << (__log_nsec - 20)); - } -# elif defined (_STLP_UNIX) - timespec __ts; - /* Max sleep is 2**27nsec ~ 60msec */ - __ts.tv_sec = 0; - __ts.tv_nsec = 1 << __log_nsec; - _STLP_NANOSLEEP(&__ts, 0); -# endif -} - -template <int __inst> -void _STLP_CALL -_STLP_mutex_spin<__inst>::_M_do_lock(volatile __stl_atomic_t* __lock) { -# if defined(_STLP_ATOMIC_EXCHANGE) - if (_Atomic_swap(__lock, 1)) { - unsigned __my_spin_max = _STLP_mutex_spin<0>::__max; - unsigned __my_last_spins = _STLP_mutex_spin<0>::__last; - volatile unsigned __junk = 17; // Value doesn't matter. - unsigned __i; - - for (__i = 0; __i < __my_spin_max; ++__i) { - if (__i < __my_last_spins/2 || *__lock) { - __junk *= __junk; __junk *= __junk; - __junk *= __junk; __junk *= __junk; - } else { - if (!_Atomic_swap(__lock, 1)) { - // got it! - // Spinning worked. Thus we're probably not being scheduled - // against the other process with which we were contending. - // Thus it makes sense to spin longer the next time. - _STLP_mutex_spin<0>::__last = __i; - _STLP_mutex_spin<0>::__max = _STLP_mutex_spin<0>::__high_max; - return; - } - } - } - - // We are probably being scheduled against the other process. Sleep. - _STLP_mutex_spin<0>::__max = _STLP_mutex_spin<0>::__low_max; - - for (__i = 0 ;; ++__i) { - int __log_nsec = __i + 6; - - if (__log_nsec > 27) __log_nsec = 27; - if (!_Atomic_swap(__lock, 1)) { - break; - } - _S_nsec_sleep(__log_nsec); - } - } /* first _Atomic_swap */ -# endif -} -#endif // _STLP_USE_PTHREAD_SPINLOCK - -_STLP_END_NAMESPACE - -#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */ -#endif /* _STLP_THREADS_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_threads.h b/WebKit/android/stlport/stl/_threads.h deleted file mode 100644 index ca96ca2..0000000 --- a/WebKit/android/stlport/stl/_threads.h +++ /dev/null @@ -1,700 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_THREADS_H -#define _STLP_INTERNAL_THREADS_H - -// Supported threading models are native SGI, pthreads, uithreads -// (similar to pthreads, but based on an earlier draft of the Posix -// threads standard), and Win32 threads. Uithread support by Jochen -// Schlick, 1999, and Solaris threads generalized to them. - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -#ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -#endif - -// On SUN and Mac OS X gcc, zero-initialization works just fine... -#if defined (__sun) || (defined (__GNUC__) && defined(__APPLE__)) -# define _STLP_MUTEX_INITIALIZER -#endif - -/* This header defines the following atomic operation that platform should - * try to support as much as possible. Atomic operation are exposed as macro - * in order to easily test for their existance. They are: - * __stl_atomic_t _STLP_ATOMIC_INCREMENT(volatile __stl_atomic_t* __ptr) : - * increment *__ptr by 1 and returns the new value - * __stl_atomic_t _STLP_ATOMIC_DECREMENT(volatile __stl_atomic_t* __ptr) : - * decrement *__ptr by 1 and returns the new value - * __stl_atomic_t _STLP_ATOMIC_EXCHANGE(volatile __stl_atomic_t* __target, __stl_atomic_t __val) : - * assign __val to *__target and returns former *__target value - * void* _STLP_ATOMIC_EXCHANGE_PTR(void* volatile* __target, void* __ptr) : - * assign __ptr to *__target and returns former *__target value - * __stl_atomic_t _STLP_ATOMIC_ADD(volatile __stl_atomic_t* __target, __stl_atomic_t __val) : - * does *__target = *__target + __val and returns the old *__target value - */ - -#if defined (_STLP_WIN32) || defined (__sgi) || defined (_STLP_SPARC_SOLARIS_THREADS) -typedef long __stl_atomic_t; -#else -/* Don't import whole namespace!!!! - ptr */ -// # if defined (_STLP_USE_NAMESPACES) && ! defined (_STLP_VENDOR_GLOBAL_CSTD) -// // using _STLP_VENDOR_CSTD::size_t; -// using namespace _STLP_VENDOR_CSTD; -// # endif -typedef size_t __stl_atomic_t; -#endif - -#if defined (_STLP_THREADS) - -# if defined (_STLP_SGI_THREADS) - -# include <mutex.h> -// Hack for SGI o32 compilers. -# if !defined(__add_and_fetch) && \ - (__mips < 3 || !(defined (_ABIN32) || defined(_ABI64))) -# define __add_and_fetch(__l,__v) add_then_test((unsigned long*)__l,__v) -# define __test_and_set(__l,__v) test_and_set(__l,__v) -# endif /* o32 */ - -# if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) -# define _STLP_ATOMIC_EXCHANGE(__p, __q) test_and_set(__p, __q) -# else -# define _STLP_ATOMIC_EXCHANGE(__p, __q) __test_and_set((unsigned long*)__p, (unsigned long)__q) -# endif - -# define _STLP_ATOMIC_INCREMENT(__x) __add_and_fetch(__x, 1) -# define _STLP_ATOMIC_DECREMENT(__x) __add_and_fetch(__x, (size_t) -1) - -# elif defined (_STLP_PTHREADS) - -# include <pthread.h> -# if !defined (_STLP_USE_PTHREAD_SPINLOCK) -# if defined (PTHREAD_MUTEX_INITIALIZER) && !defined (_STLP_MUTEX_INITIALIZER) && defined (_REENTRANT) -# define _STLP_MUTEX_INITIALIZER = { PTHREAD_MUTEX_INITIALIZER } -# endif -//HPUX variants have (on some platforms optional) non-standard "DCE" pthreads impl -# if defined (_DECTHREADS_) && (defined (_PTHREAD_USE_D4) || defined (__hpux)) && !defined (_CMA_SUPPRESS_EXTERNALS_) -# define _STLP_PTHREAD_ATTR_DEFAULT pthread_mutexattr_default -# else -# define _STLP_PTHREAD_ATTR_DEFAULT 0 -# endif -# else // _STLP_USE_PTHREAD_SPINLOCK -# if defined (__OpenBSD__) -# include <spinlock.h> -# endif -# endif // _STLP_USE_PTHREAD_SPINLOCK - -# if defined (__GNUC__) && defined (__i386__) - -# if !defined (_STLP_ATOMIC_INCREMENT) -inline long _STLP_atomic_increment_gcc_x86(long volatile* p) { - long result; - __asm__ __volatile__ - ("lock; xaddl %1, %0;" - :"=m" (*p), "=r" (result) - :"m" (*p), "1" (1) - :"cc"); - return result + 1; -} -# define _STLP_ATOMIC_INCREMENT(__x) (_STLP_atomic_increment_gcc_x86((long volatile*)__x)) -# endif - -# if !defined (_STLP_ATOMIC_DECREMENT) -inline long _STLP_atomic_decrement_gcc_x86(long volatile* p) { - long result; - __asm__ __volatile__ - ("lock; xaddl %1, %0;" - :"=m" (*p), "=r" (result) - :"m" (*p), "1" (-1) - :"cc"); - return result - 1; -} -# define _STLP_ATOMIC_DECREMENT(__x) (_STLP_atomic_decrement_gcc_x86((long volatile*)__x)) -# endif - -# if !defined (_STLP_ATOMIC_ADD) -inline long _STLP_atomic_add_gcc_x86(long volatile* p, long addend) { - long result; - __asm__ __volatile__ - ("lock; xaddl %1, %0;" - :"=m" (*p), "=r" (result) - :"m" (*p), "1" (addend) - :"cc"); - return result + addend; -} -# define _STLP_ATOMIC_ADD(__dst, __val) (_STLP_atomic_add_gcc_x86((long volatile*)__dst, (long)__val)) -# endif - -# endif /* if defined(__GNUC__) && defined(__i386__) */ - -# elif defined (_STLP_WIN32THREADS) - -# if !defined (_STLP_ATOMIC_INCREMENT) -# if !defined (_STLP_NEW_PLATFORM_SDK) -# define _STLP_ATOMIC_INCREMENT(__x) InterlockedIncrement(__CONST_CAST(long*, __x)) -# define _STLP_ATOMIC_DECREMENT(__x) InterlockedDecrement(__CONST_CAST(long*, __x)) -# define _STLP_ATOMIC_EXCHANGE(__x, __y) InterlockedExchange(__CONST_CAST(long*, __x), __y) -# else -# define _STLP_ATOMIC_INCREMENT(__x) InterlockedIncrement(__x) -# define _STLP_ATOMIC_DECREMENT(__x) InterlockedDecrement(__x) -# define _STLP_ATOMIC_EXCHANGE(__x, __y) InterlockedExchange(__x, __y) -# endif -# define _STLP_ATOMIC_EXCHANGE_PTR(__x, __y) STLPInterlockedExchangePointer(__x, __y) -/* - * The following functionnality is only available since Windows 98, those that are targeting previous OSes - * should define _WIN32_WINDOWS to a value lower that the one of Win 98, see Platform SDK documentation for - * more informations: - */ -# if defined (_STLP_NEW_PLATFORM_SDK) && (!defined (_STLP_WIN32_VERSION) || (_STLP_WIN32_VERSION >= 0x0410)) -# define _STLP_ATOMIC_ADD(__dst, __val) InterlockedExchangeAdd(__dst, __val) -# endif -# endif - -# elif defined (__DECC) || defined (__DECCXX) - -# include <machine/builtins.h> -# define _STLP_ATOMIC_EXCHANGE __ATOMIC_EXCH_LONG -# define _STLP_ATOMIC_INCREMENT(__x) __ATOMIC_ADD_LONG(__x, 1) -# define _STLP_ATOMIC_DECREMENT(__x) __ATOMIC_ADD_LONG(__x, -1) - -# elif defined(_STLP_SPARC_SOLARIS_THREADS) - -# include <stl/_sparc_atomic.h> - -# elif defined (_STLP_UITHREADS) - -// this inclusion is potential hazard to bring up all sorts -// of old-style headers. Let's assume vendor already know how -// to deal with that. -# ifndef _STLP_INTERNAL_CTIME -# include <stl/_ctime.h> -# endif -# if defined (_STLP_USE_NAMESPACES) && ! defined (_STLP_VENDOR_GLOBAL_CSTD) -using _STLP_VENDOR_CSTD::time_t; -# endif -# include <synch.h> -# include <cstdio> -# include <cwchar> - -# elif defined (_STLP_BETHREADS) - -# include <OS.h> -# include <cassert> -# include <stdio.h> -# define _STLP_MUTEX_INITIALIZER = { 0 } - -# elif defined (_STLP_NWTHREADS) - -# include <nwthread.h> -# include <nwsemaph.h> - -# elif defined(_STLP_OS2THREADS) - -# if defined (__GNUC__) -# define INCL_DOSSEMAPHORES -# include <os2.h> -# else -// This section serves to replace os2.h for VisualAge C++ - typedef unsigned long ULONG; -# if !defined (__HEV__) /* INCL_SEMAPHORE may also define HEV */ -# define __HEV__ - typedef ULONG HEV; - typedef HEV* PHEV; -# endif - typedef ULONG APIRET; - typedef ULONG HMTX; - typedef HMTX* PHMTX; - typedef const char* PCSZ; - typedef ULONG BOOL32; - APIRET _System DosCreateMutexSem(PCSZ pszName, PHEV phev, ULONG flAttr, BOOL32 fState); - APIRET _System DosRequestMutexSem(HMTX hmtx, ULONG ulTimeout); - APIRET _System DosReleaseMutexSem(HMTX hmtx); - APIRET _System DosCloseMutexSem(HMTX hmtx); -# define _STLP_MUTEX_INITIALIZER = { 0 } -# endif /* GNUC */ - -# endif - -#else -/* no threads */ -# define _STLP_ATOMIC_INCREMENT(__x) ++(*__x) -# define _STLP_ATOMIC_DECREMENT(__x) --(*__x) -/* We do not grant other atomic operations as they are useless if STLport do not have - * to be thread safe - */ -#endif - -#if !defined (_STLP_MUTEX_INITIALIZER) -# if defined(_STLP_ATOMIC_EXCHANGE) -# define _STLP_MUTEX_INITIALIZER = { 0 } -# elif defined(_STLP_UITHREADS) -# define _STLP_MUTEX_INITIALIZER = { DEFAULTMUTEX } -# else -# define _STLP_MUTEX_INITIALIZER -# endif -#endif - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_THREADS) && !defined (_STLP_USE_PTHREAD_SPINLOCK) -// Helper struct. This is a workaround for various compilers that don't -// handle static variables in inline functions properly. -template <int __inst> -struct _STLP_mutex_spin { - enum { __low_max = 30, __high_max = 1000 }; - // Low if we suspect uniprocessor, high for multiprocessor. - static unsigned __max; - static unsigned __last; - static void _STLP_CALL _M_do_lock(volatile __stl_atomic_t* __lock); - static void _STLP_CALL _S_nsec_sleep(int __log_nsec); -}; -#endif // !_STLP_USE_PTHREAD_SPINLOCK - -// Locking class. Note that this class *does not have a constructor*. -// It must be initialized either statically, with _STLP_MUTEX_INITIALIZER, -// or dynamically, by explicitly calling the _M_initialize member function. -// (This is similar to the ways that a pthreads mutex can be initialized.) -// There are explicit member functions for acquiring and releasing the lock. - -// There is no constructor because static initialization is essential for -// some uses, and only a class aggregate (see section 8.5.1 of the C++ -// standard) can be initialized that way. That means we must have no -// constructors, no base classes, no virtual functions, and no private or -// protected members. - -// For non-static cases, clients should use _STLP_mutex. - -struct _STLP_CLASS_DECLSPEC _STLP_mutex_base { -#if defined (_STLP_ATOMIC_EXCHANGE) || defined (_STLP_SGI_THREADS) - // It should be relatively easy to get this to work on any modern Unix. - volatile __stl_atomic_t _M_lock; -#endif - -#if defined (_STLP_THREADS) -# if defined (_STLP_ATOMIC_EXCHANGE) - inline void _M_initialize() { _M_lock = 0; } - inline void _M_destroy() {} - - void _M_acquire_lock() { - _STLP_mutex_spin<0>::_M_do_lock(&_M_lock); - } - - inline void _M_release_lock() { - volatile __stl_atomic_t* __lock = &_M_lock; -# if defined(_STLP_SGI_THREADS) && defined(__GNUC__) && __mips >= 3 - asm("sync"); - *__lock = 0; -# elif defined(_STLP_SGI_THREADS) && __mips >= 3 && \ - (defined (_ABIN32) || defined(_ABI64)) - __lock_release(__lock); -# elif defined (_STLP_SPARC_SOLARIS_THREADS) -# if defined (__WORD64) || defined (__arch64__) || defined (__sparcv9) || defined (__sparcv8plus) - asm("membar #StoreStore ; membar #LoadStore"); -# else - asm(" stbar "); -# endif - *__lock = 0; -# else - *__lock = 0; - // This is not sufficient on many multiprocessors, since - // writes to protected variables and the lock may be reordered. -# endif - } -# elif defined (_STLP_PTHREADS) -# if defined (_STLP_USE_PTHREAD_SPINLOCK) -# if !defined (__OpenBSD__) - pthread_spinlock_t _M_lock; - inline void _M_initialize() { pthread_spin_init( &_M_lock, 0 ); } - inline void _M_destroy() { pthread_spin_destroy( &_M_lock ); } - - // sorry, but no static initializer for pthread_spinlock_t; - // this will not work for compilers that has problems with call - // constructor of static object... - - // _STLP_mutex_base() - // { pthread_spin_init( &_M_lock, 0 ); } - - // ~_STLP_mutex_base() - // { pthread_spin_destroy( &_M_lock ); } - - inline void _M_acquire_lock() { pthread_spin_lock( &_M_lock ); } - inline void _M_release_lock() { pthread_spin_unlock( &_M_lock ); } -# else // __OpenBSD__ - spinlock_t _M_lock; - inline void _M_initialize() { _SPINLOCK_INIT( &_M_lock ); } - inline void _M_destroy() { } - inline void _M_acquire_lock() { _SPINLOCK( &_M_lock ); } - inline void _M_release_lock() { _SPINUNLOCK( &_M_lock ); } -# endif // __OpenBSD__ -# else // !_STLP_USE_PTHREAD_SPINLOCK - pthread_mutex_t _M_lock; - inline void _M_initialize() - { pthread_mutex_init(&_M_lock,_STLP_PTHREAD_ATTR_DEFAULT); } - inline void _M_destroy() - { pthread_mutex_destroy(&_M_lock); } - inline void _M_acquire_lock() { -# if defined ( __hpux ) && ! defined (PTHREAD_MUTEX_INITIALIZER) - if (!_M_lock.field1) _M_initialize(); -# endif - pthread_mutex_lock(&_M_lock); - } - inline void _M_release_lock() { pthread_mutex_unlock(&_M_lock); } -# endif // !_STLP_USE_PTHREAD_SPINLOCK - -# elif defined (_STLP_UITHREADS) - mutex_t _M_lock; - inline void _M_initialize() - { mutex_init(&_M_lock, 0, NULL); } - inline void _M_destroy() - { mutex_destroy(&_M_lock); } - inline void _M_acquire_lock() { mutex_lock(&_M_lock); } - inline void _M_release_lock() { mutex_unlock(&_M_lock); } - -# elif defined (_STLP_OS2THREADS) - HMTX _M_lock; - inline void _M_initialize() { DosCreateMutexSem(NULL, &_M_lock, 0, false); } - inline void _M_destroy() { DosCloseMutexSem(_M_lock); } - inline void _M_acquire_lock() { - if (!_M_lock) _M_initialize(); - DosRequestMutexSem(_M_lock, SEM_INDEFINITE_WAIT); - } - inline void _M_release_lock() { DosReleaseMutexSem(_M_lock); } -# elif defined (_STLP_BETHREADS) - sem_id sem; - inline void _M_initialize() { - sem = create_sem(1, "STLPort"); - assert(sem > 0); - } - inline void _M_destroy() { - int t = delete_sem(sem); - assert(t == B_NO_ERROR); - } - inline void _M_acquire_lock(); - inline void _M_release_lock() { - status_t t = release_sem(sem); - assert(t == B_NO_ERROR); - } -# elif defined (_STLP_NWTHREADS) - LONG _M_lock; - inline void _M_initialize() - { _M_lock = OpenLocalSemaphore(1); } - inline void _M_destroy() - { CloseLocalSemaphore(_M_lock); } - inline void _M_acquire_lock() - { WaitOnLocalSemaphore(_M_lock); } - inline void _M_release_lock() { SignalLocalSemaphore(_M_lock); } -# else //*ty 11/24/2001 - added configuration check -# error "Unknown thread facility configuration" -# endif -#else /* No threads */ - inline void _M_initialize() {} - inline void _M_destroy() {} - inline void _M_acquire_lock() {} - inline void _M_release_lock() {} -#endif // _STLP_PTHREADS -}; - -// Locking class. The constructor initializes the lock, the destructor destroys it. -// Well - behaving class, does not need static initializer - -class _STLP_CLASS_DECLSPEC _STLP_mutex : public _STLP_mutex_base { - public: - inline _STLP_mutex () { _M_initialize(); } - inline ~_STLP_mutex () { _M_destroy(); } - private: - _STLP_mutex(const _STLP_mutex&); - void operator=(const _STLP_mutex&); -}; - -// A locking class that uses _STLP_STATIC_MUTEX. The constructor takes -// a reference to an _STLP_STATIC_MUTEX, and acquires a lock. The destructor -// releases the lock. -// It's not clear that this is exactly the right functionality. -// It will probably change in the future. - -struct _STLP_CLASS_DECLSPEC _STLP_auto_lock { - _STLP_auto_lock(_STLP_STATIC_MUTEX& __lock) : _M_lock(__lock) - { _M_lock._M_acquire_lock(); } - ~_STLP_auto_lock() - { _M_lock._M_release_lock(); } - -private: - _STLP_STATIC_MUTEX& _M_lock; - void operator=(const _STLP_auto_lock&); - _STLP_auto_lock(const _STLP_auto_lock&); -}; - -/* - * Class _Refcount_Base provides a type, __stl_atomic_t, a data member, - * _M_ref_count, and member functions _M_incr and _M_decr, which perform - * atomic preincrement/predecrement. The constructor initializes - * _M_ref_count. - */ -class _STLP_CLASS_DECLSPEC _Refcount_Base { - // The data member _M_ref_count -#if defined (__DMC__) -public: -#endif - _STLP_VOLATILE __stl_atomic_t _M_ref_count; - -#if defined (_STLP_THREADS) && \ - (!defined (_STLP_ATOMIC_INCREMENT) || !defined (_STLP_ATOMIC_DECREMENT) || \ - (defined (_STLP_WIN32_VERSION) && (_STLP_WIN32_VERSION <= 0x0400))) -# define _STLP_USE_MUTEX - _STLP_mutex _M_mutex; -#endif - - public: - // Constructor - _Refcount_Base(__stl_atomic_t __n) : _M_ref_count(__n) {} - - // _M_incr and _M_decr -#if defined (_STLP_THREADS) -# if !defined (_STLP_USE_MUTEX) - __stl_atomic_t _M_incr() { return _STLP_ATOMIC_INCREMENT(&_M_ref_count); } - __stl_atomic_t _M_decr() { return _STLP_ATOMIC_DECREMENT(&_M_ref_count); } -# else -# undef _STLP_USE_MUTEX - __stl_atomic_t _M_incr() { - _STLP_auto_lock l(_M_mutex); - return ++_M_ref_count; - } - __stl_atomic_t _M_decr() { - _STLP_auto_lock l(_M_mutex); - return --_M_ref_count; - } -# endif -#else /* No threads */ - __stl_atomic_t _M_incr() { return ++_M_ref_count; } - __stl_atomic_t _M_decr() { return --_M_ref_count; } -#endif -}; - -/* Atomic swap on __stl_atomic_t - * This is guaranteed to behave as though it were atomic only if all - * possibly concurrent updates use _Atomic_swap. - * In some cases the operation is emulated with a lock. - * Idem for _Atomic_swap_ptr - */ -/* Helper struct to handle following cases: - * - on platforms where sizeof(__stl_atomic_t) == sizeof(void*) atomic - * exchange can be done on pointers - * - on platform without atomic operation swap is done in a critical section, - * portable but inefficient. - */ -template <int __use_ptr_atomic_swap> -class _Atomic_swap_struct { -public: -#if defined (_STLP_THREADS) && \ - !defined (_STLP_ATOMIC_EXCHANGE) && \ - (defined (_STLP_PTHREADS) || defined (_STLP_UITHREADS) || defined (_STLP_OS2THREADS) || \ - defined (_STLP_USE_PTHREAD_SPINLOCK) || defined (_STLP_NWTHREADS)) -# define _STLP_USE_ATOMIC_SWAP_MUTEX - static _STLP_STATIC_MUTEX _S_swap_lock; -#endif - - static __stl_atomic_t _S_swap(_STLP_VOLATILE __stl_atomic_t* __p, __stl_atomic_t __q) { -#if defined (_STLP_THREADS) -# if defined (_STLP_ATOMIC_EXCHANGE) - return _STLP_ATOMIC_EXCHANGE(__p, __q); -# elif defined (_STLP_USE_ATOMIC_SWAP_MUTEX) - _S_swap_lock._M_acquire_lock(); - __stl_atomic_t __result = *__p; - *__p = __q; - _S_swap_lock._M_release_lock(); - return __result; -# else -# error Missing atomic swap implementation -# endif -#else - /* no threads */ - __stl_atomic_t __result = *__p; - *__p = __q; - return __result; -#endif // _STLP_THREADS - } - - static void* _S_swap_ptr(void* _STLP_VOLATILE* __p, void* __q) { -#if defined (_STLP_THREADS) -# if defined (_STLP_ATOMIC_EXCHANGE_PTR) - return _STLP_ATOMIC_EXCHANGE_PTR(__p, __q); -# elif defined (_STLP_ATOMIC_EXCHANGE) - _STLP_STATIC_ASSERT(sizeof(__stl_atomic_t) == sizeof(void*)) - return __REINTERPRET_CAST(void*, _STLP_ATOMIC_EXCHANGE(__REINTERPRET_CAST(volatile __stl_atomic_t*, __p), - __REINTERPRET_CAST(__stl_atomic_t, __q)) - ); -# elif defined (_STLP_USE_ATOMIC_SWAP_MUTEX) - _S_swap_lock._M_acquire_lock(); - void *__result = *__p; - *__p = __q; - _S_swap_lock._M_release_lock(); - return __result; -# else -# error Missing pointer atomic swap implementation -# endif -#else - /* no thread */ - void *__result = *__p; - *__p = __q; - return __result; -#endif - } -}; - -_STLP_TEMPLATE_NULL -class _Atomic_swap_struct<0> { -public: -#if defined (_STLP_THREADS) && \ - (!defined (_STLP_ATOMIC_EXCHANGE) || !defined (_STLP_ATOMIC_EXCHANGE_PTR)) && \ - (defined (_STLP_PTHREADS) || defined (_STLP_UITHREADS) || defined (_STLP_OS2THREADS) || \ - defined (_STLP_USE_PTHREAD_SPINLOCK) || defined (_STLP_NWTHREADS)) -# define _STLP_USE_ATOMIC_SWAP_MUTEX - static _STLP_STATIC_MUTEX _S_swap_lock; -#endif - - static __stl_atomic_t _S_swap(_STLP_VOLATILE __stl_atomic_t* __p, __stl_atomic_t __q) { -#if defined (_STLP_THREADS) -# if defined (_STLP_ATOMIC_EXCHANGE) - return _STLP_ATOMIC_EXCHANGE(__p, __q); -# elif defined (_STLP_USE_ATOMIC_SWAP_MUTEX) - /* This should be portable, but performance is expected - * to be quite awful. This really needs platform specific - * code. - */ - _S_swap_lock._M_acquire_lock(); - __stl_atomic_t __result = *__p; - *__p = __q; - _S_swap_lock._M_release_lock(); - return __result; -# else -# error Missing atomic swap implementation -# endif -#else - /* no threads */ - __stl_atomic_t __result = *__p; - *__p = __q; - return __result; -#endif // _STLP_THREADS - } - - static void* _S_swap_ptr(void* _STLP_VOLATILE* __p, void* __q) { -#if defined (_STLP_THREADS) -# if defined (_STLP_ATOMIC_EXCHANGE_PTR) - return _STLP_ATOMIC_EXCHANGE_PTR(__p, __q); -# elif defined (_STLP_ATOMIC_EXCHANGE) - _STLP_STATIC_ASSERT(sizeof(__stl_atomic_t) == sizeof(void*)) - return __REINTERPRET_CAST(void*, _STLP_ATOMIC_EXCHANGE(__REINTERPRET_CAST(volatile __stl_atomic_t*, __p), - __REINTERPRET_CAST(__stl_atomic_t, __q)) - ); -# elif defined (_STLP_USE_ATOMIC_SWAP_MUTEX) - _S_swap_lock._M_acquire_lock(); - void *__result = *__p; - *__p = __q; - _S_swap_lock._M_release_lock(); - return __result; -# else -# error Missing pointer atomic swap implementation -# endif -#else - /* no thread */ - void *__result = *__p; - *__p = __q; - return __result; -#endif - } -}; - -#if defined (_STLP_MSVC) && (_STLP_MSVC == 1300) -# pragma warning (push) -# pragma warning (disable : 4189) //__use_ptr_atomic_swap initialized but not used -#endif - -inline __stl_atomic_t _STLP_CALL _Atomic_swap(_STLP_VOLATILE __stl_atomic_t * __p, __stl_atomic_t __q) { - const int __use_ptr_atomic_swap = sizeof(__stl_atomic_t) == sizeof(void*); - return _Atomic_swap_struct<__use_ptr_atomic_swap>::_S_swap(__p, __q); -} - -inline void* _STLP_CALL _Atomic_swap_ptr(void* _STLP_VOLATILE* __p, void* __q) { - const int __use_ptr_atomic_swap = sizeof(__stl_atomic_t) == sizeof(void*); - return _Atomic_swap_struct<__use_ptr_atomic_swap>::_S_swap_ptr(__p, __q); -} - -#if defined (_STLP_MSVC) && (_STLP_MSVC == 1300) -# pragma warning (pop) -#endif - -#if defined (_STLP_BETHREADS) -template <int __inst> -struct _STLP_beos_static_lock_data { - static bool is_init; - struct mutex_t : public _STLP_mutex { - mutex_t() - { _STLP_beos_static_lock_data<0>::is_init = true; } - ~mutex_t() - { _STLP_beos_static_lock_data<0>::is_init = false; } - }; - static mutex_t mut; -}; - -template <int __inst> -bool _STLP_beos_static_lock_data<__inst>::is_init = false; -template <int __inst> -typename _STLP_beos_static_lock_data<__inst>::mutex_t _STLP_beos_static_lock_data<__inst>::mut; - -inline void _STLP_mutex_base::_M_acquire_lock() { - if (sem == 0) { - // we need to initialise on demand here - // to prevent race conditions use our global - // mutex if it's available: - if (_STLP_beos_static_lock_data<0>::is_init) { - _STLP_auto_lock al(_STLP_beos_static_lock_data<0>::mut); - if (sem == 0) _M_initialize(); - } - else { - // no lock available, we must still be - // in startup code, THERE MUST BE ONE THREAD - // ONLY active at this point. - _M_initialize(); - } - } - status_t t; - t = acquire_sem(sem); - assert(t == B_NO_ERROR); -} -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_threads.c> -#endif - -#endif /* _STLP_INTERNAL_THREADS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_time_facets.c b/WebKit/android/stlport/stl/_time_facets.c deleted file mode 100644 index 53f87f9..0000000 --- a/WebKit/android/stlport/stl/_time_facets.c +++ /dev/null @@ -1,508 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_TIME_FACETS_C -#define _STLP_TIME_FACETS_C - -#ifndef _STLP_INTERNAL_TIME_FACETS_H -# include <stl/_time_facets.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_PUT_H -# include <stl/_num_put.h> -#endif - -#ifndef _STLP_INTERNAL_NUM_GET_H -# include <stl/_num_get.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//---------------------------------------------------------------------- -// Declarations of static template members. -#if (_STLP_STATIC_TEMPLATE_DATA > 0) - -# if !defined (__BORLANDC__) -template <class _CharT, class _InputIterator> -locale::id time_get<_CharT, _InputIterator>::id; - -template <class _CharT, class _OutputIterator> -locale::id time_put<_CharT, _OutputIterator>::id; -# endif - -# if (defined (__CYGWIN__) || defined (__MINGW32__)) && \ - defined (_STLP_USE_DYNAMIC_LIB) && !defined (__BUILDING_STLPORT) -/* - * Under cygwin, when STLport is used as a shared library, the id needs - * to be specified as imported otherwise they will be duplicated in the - * calling executable. - */ -template <> -_STLP_DECLSPEC locale::id time_get<char, istreambuf_iterator<char, char_traits<char> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id time_get<char, const char*>::id; -*/ - -template <> -_STLP_DECLSPEC locale::id time_put<char, ostreambuf_iterator<char, char_traits<char> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id time_put<char, char*>::id; -*/ - -# ifndef _STLP_NO_WCHAR_T -template <> -_STLP_DECLSPEC locale::id time_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id time_get<wchar_t, const wchar_t*>::id; -*/ - -template <> -_STLP_DECLSPEC locale::id time_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >::id; -/* -template <> -_STLP_DECLSPEC locale::id time_put<wchar_t, wchar_t*>::id; -*/ -# endif /* _STLP_NO_WCHAR_T */ -# endif /* __CUGWIN__ && _STLP_USE_DYNAMIC_LIB */ - -#else /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -//typedef time_get<char, const char*> time_get_char; -typedef time_get<char, istreambuf_iterator<char, char_traits<char> > > time_get_char_2; -//typedef time_put<char, char*> time_put_char; -typedef time_put<char, ostreambuf_iterator<char, char_traits<char> > > time_put_char_2; - -//__DECLARE_INSTANCE(locale::id, time_get_char::id, ); -__DECLARE_INSTANCE(locale::id, time_get_char_2::id, ); -//__DECLARE_INSTANCE(locale::id, time_put_char::id, ); -__DECLARE_INSTANCE(locale::id, time_put_char_2::id, ); - -# if !defined (_STLP_NO_WCHAR_T) - -//typedef time_get<wchar_t, const wchar_t*> time_get_wchar_t; -typedef time_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > > time_get_wchar_t_2; -//typedef time_put<wchar_t, wchar_t*> time_put_wchar_t; -typedef time_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > > time_put_wchar_t_2; - -//__DECLARE_INSTANCE(locale::id, time_get_wchar_t::id, ); -__DECLARE_INSTANCE(locale::id, time_get_wchar_t_2::id, ); -//__DECLARE_INSTANCE(locale::id, time_put_wchar_t::id, ); -__DECLARE_INSTANCE(locale::id, time_put_wchar_t_2::id, ); - -# endif - -#endif /* ( _STLP_STATIC_TEMPLATE_DATA > 0 ) */ - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InIt, class _CharT> -const string* _STLP_CALL -__match(_InIt& __first, _InIt& __last, const string *__name, const string *__name_end, - const ctype<_CharT>& __ct) { - typedef ptrdiff_t difference_type; - difference_type __n = __name_end - __name; - difference_type __i; - size_t __pos = 0; - difference_type __check_count = __n; - bool __do_check[_MAXNAMES]; - const string* __matching_name[_MAX_NAME_LENGTH]; - - for (__i = 0; __i < _MAXNAMES; ++__i) - __do_check[__i] = true; - - for (__i = 0; __i < _MAX_NAME_LENGTH; ++__i) - __matching_name[__i] = __name_end; - - while (__first != __last) { - for (__i = 0; __i < __n; ++__i) { - if (__do_check[__i]) { - if (*__first == __ct.widen(__name[__i][__pos])) { - if (__pos == (__name[__i].size() - 1)) { - __do_check[__i] = 0; - __matching_name[__pos + 1] = __name + __i; - --__check_count; - if (__check_count == 0) { - ++__first; - return __name + __i; - } - } - } - else { - __do_check[__i] = 0; - --__check_count; - if (__check_count == 0) - return __matching_name[__pos]; - } - } - } - - ++__first; ++__pos; - } - - return __matching_name[__pos]; -} - -// __get_formatted_time reads input that is assumed to be formatted -// according to the rules for the C strftime function (C standard, -// 7.12.3.5). This function is used to implement the do_get_time -// and do_get_date virtual functions, which depend on the locale -// specifications for the time and day formats respectively. -// Note the catchall default case, intended mainly for the '%Z' -// format designator, which does not make sense here since the -// representation of timezones is not part of the locale. -// -// The case branches are implemented either by doing a match using -// the appopriate name table or by doing a __get_integer_nogroup. -// -// 'y' format is assumed to mean that the input represents years -// since 1900. That is, 2002 should be represented as 102. There -// is no century-guessing. -// -// The match is successful if and only if the second component of the -// return value is format_end. - -// Note that the antepenultimate parameter is being used only to determine -// the correct overloading for the calls to __get_integer_nogroup. -template <class _InIt1, class _Ch> -string::const_iterator _STLP_CALL -__get_formatted_time _STLP_WEAK (_InIt1 __first, _InIt1 __last, - string::const_iterator __format, string::const_iterator __format_end, - _Ch*, const _Time_Info& __table, - const ios_base& __s, ios_base::iostate& __err, tm* __t) { - const ctype<_Ch>& __ct = *__STATIC_CAST(const ctype<_Ch>*, __s._M_ctype_facet()); - while (__first != __last && __format != __format_end) { - if (*__format == '%') { - ++__format; - char __c = *__format; - if (__c == '#') { //MS extension - ++__format; - __c = *__format; - } - - switch (__c) { - case 'a': { - const string* __pr = __match(__first, __last, - __table._M_dayname + 0, __table._M_dayname + 7, - __ct); - if (__pr == __table._M_dayname + 7) - return __format; - __t->tm_wday = __STATIC_CAST(int, __pr - __table._M_dayname); - break; - } - - case 'A': { - const string* __pr = __match(__first, __last, - __table._M_dayname + 7, __table._M_dayname + 14, - __ct); - if (__pr == __table._M_dayname + 14) - return __format; - __t->tm_wday = __STATIC_CAST(int, __pr - __table._M_dayname - 7); - break; - } - - case 'b': { - const string* __pr = __match(__first, __last, - __table._M_monthname + 0, __table._M_monthname + 12, - __ct); - if (__pr == __table._M_monthname + 12) - return __format; - __t->tm_mon = __STATIC_CAST(int, __pr - __table._M_monthname); - break; - } - - case 'B': { - const string* __pr = __match(__first, __last, - __table._M_monthname + 12, __table._M_monthname + 24, - __ct); - if (__pr == __table._M_monthname + 24) - return __format; - __t->tm_mon = __STATIC_CAST(int, __pr - __table._M_monthname - 12); - break; - } - - case 'd': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_mday, __STATIC_CAST(_Ch*, 0)); - if (!__pr || __t->tm_mday < 1 || __t->tm_mday > 31) { - __err |= ios_base::failbit; - return __format; - } - break; - } - - case 'H': case 'I': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_hour, __STATIC_CAST(_Ch*, 0)); - if (!__pr) - return __format; - break; - } - - case 'j': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_yday, __STATIC_CAST(_Ch*, 0)); - if (!__pr) - return __format; - break; - } - - case 'm': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_mon, __STATIC_CAST(_Ch*, 0)); - --__t->tm_mon; - if (!__pr || __t->tm_mon < 0 || __t->tm_mon > 11) { - __err |= ios_base::failbit; - return __format; - } - break; - } - - case 'M': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_min, __STATIC_CAST(_Ch*, 0)); - if (!__pr) - return __format; - break; - } - - case 'p': { - const string* __pr = __match(__first, __last, - __table._M_am_pm + 0, __table._M_am_pm + 2, __ct); - if (__pr == __table._M_am_pm + 2) - return __format; - // 12:00 PM <=> 12:00, 12:00 AM <=> 00:00 - if (__pr == __table._M_am_pm + 1 && __t->tm_hour != 12 ) - __t->tm_hour += 12; - if (__pr == __table._M_am_pm && __t->tm_hour == 12 ) - __t->tm_hour = 0; - break; - } - - case 'S': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_sec, __STATIC_CAST(_Ch*, 0)); - if (!__pr) - return __format; - break; - } - - case 'y': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_year, __STATIC_CAST(_Ch*, 0)); - if (!__pr) - return __format; - break; - } - - case 'Y': { - bool __pr = __get_decimal_integer(__first, __last, __t->tm_year, __STATIC_CAST(_Ch*, 0)); - __t->tm_year -= 1900; - if (!__pr) - return __format; - break; - } - - default: - break; - } - } - else { - if (*__first++ != __ct.widen(*__format)) break; - } - - ++__format; - } - - return __format; -} - -template <class _InIt, class _CharT> -bool _STLP_CALL -__get_short_or_long_dayname(_InIt& __first, _InIt& __last, const ctype<_CharT>& __ct, - const _Time_Info& __table, tm* __t) { - const string* __pr = - __match(__first, __last, __table._M_dayname + 0, __table._M_dayname + 14, __ct); - __t->tm_wday = __STATIC_CAST(int, (__pr - __table._M_dayname) % 7); - return __pr != __table._M_dayname + 14; -} - -template <class _InIt, class _CharT> -bool _STLP_CALL -__get_short_or_long_monthname(_InIt& __first, _InIt& __last, const ctype<_CharT>& __ct, - const _Time_Info& __table, tm* __t) { - const string* __pr = - __match(__first, __last, __table._M_monthname + 0, __table._M_monthname + 24, __ct); - __t->tm_mon = __STATIC_CAST(int, (__pr - __table._M_monthname) % 12); - return __pr != __table._M_monthname + 24; -} - -#if !defined (_STLP_NO_WCHAR_T) -template <class _OuIt> -_OuIt _STLP_CALL -__put_time(char * __first, char * __last, _OuIt __out_ite, - const ios_base& __s, wchar_t) { - const ctype<wchar_t>& __ct = *__STATIC_CAST(const ctype<wchar_t>*, __s._M_ctype_facet()); - wchar_t __wbuf[64]; - __ct.widen(__first, __last, __wbuf); - ptrdiff_t __len = __last - __first; - wchar_t * __eend = __wbuf + __len; - return copy((wchar_t*)__wbuf, __eend, __out_ite); -} -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Ch, class _InIt> -_InIt -time_get<_Ch, _InIt>::do_get_date(_InIt __s, _InIt __end, - ios_base& __str, ios_base::iostate& __err, - tm* __t) const { - typedef string::const_iterator string_iterator; - - string_iterator __format = _M_timeinfo._M_date_format.begin(); - string_iterator __format_end = _M_timeinfo._M_date_format.end(); - - string_iterator __result - = _STLP_PRIV __get_formatted_time(__s, __end, __format, __format_end, - __STATIC_CAST(_Ch*, 0), _M_timeinfo, - __str, __err, __t); - if (__result == __format_end) - __err = ios_base::goodbit; - else { - __err = ios_base::failbit; - if (__s == __end) - __err |= ios_base::eofbit; - } - return __s; -} - -template <class _Ch, class _InIt> -_InIt -time_get<_Ch, _InIt>::do_get_time(_InIt __s, _InIt __end, - ios_base& __str, ios_base::iostate& __err, - tm* __t) const { - typedef string::const_iterator string_iterator; - string_iterator __format = _M_timeinfo._M_time_format.begin(); - string_iterator __format_end = _M_timeinfo._M_time_format.end(); - - string_iterator __result - = _STLP_PRIV __get_formatted_time(__s, __end, __format, __format_end, - __STATIC_CAST(_Ch*, 0), _M_timeinfo, - __str, __err, __t); - __err = __result == __format_end ? ios_base::goodbit - : ios_base::failbit; - if (__s == __end) - __err |= ios_base::eofbit; - return __s; -} - -template <class _Ch, class _InIt> -_InIt -time_get<_Ch, _InIt>::do_get_year(_InIt __s, _InIt __end, - ios_base&, ios_base::iostate& __err, - tm* __t) const { - if (__s == __end) { - __err = ios_base::failbit | ios_base::eofbit; - return __s; - } - - bool __pr = _STLP_PRIV __get_decimal_integer(__s, __end, __t->tm_year, __STATIC_CAST(_Ch*, 0)); - __t->tm_year -= 1900; - __err = __pr ? ios_base::goodbit : ios_base::failbit; - if (__s == __end) - __err |= ios_base::eofbit; - - return __s; -} - -template <class _Ch, class _InIt> -_InIt -time_get<_Ch, _InIt>::do_get_weekday(_InIt __s, _InIt __end, - ios_base &__str, ios_base::iostate &__err, - tm *__t) const { - const ctype<_Ch>& __ct = *__STATIC_CAST(const ctype<_Ch>*, __str._M_ctype_facet()); - bool __result = - _STLP_PRIV __get_short_or_long_dayname(__s, __end, __ct, _M_timeinfo, __t); - if (__result) - __err = ios_base::goodbit; - else { - __err = ios_base::failbit; - if (__s == __end) - __err |= ios_base::eofbit; - } - return __s; -} - -template <class _Ch, class _InIt> -_InIt -time_get<_Ch, _InIt>::do_get_monthname(_InIt __s, _InIt __end, - ios_base &__str, ios_base::iostate &__err, - tm *__t) const { - const ctype<_Ch>& __ct = *__STATIC_CAST(const ctype<_Ch>*, __str._M_ctype_facet()); - bool __result = - _STLP_PRIV __get_short_or_long_monthname(__s, __end, __ct, _M_timeinfo, __t); - if (__result) - __err = ios_base::goodbit; - else { - __err = ios_base::failbit; - if (__s == __end) - __err |= ios_base::eofbit; - } - return __s; -} - -template<class _Ch, class _OutputIter> -_OutputIter -time_put<_Ch,_OutputIter>::put(_OutputIter __s, ios_base& __f, _Ch __fill, - const tm* __tmb, const _Ch* __pat, - const _Ch* __pat_end) const { - // locale __loc = __f.getloc(); - // const ctype<_Ch>& _Ct = use_facet<ctype<_Ch> >(__loc); - const ctype<_Ch>& _Ct = *__STATIC_CAST(const ctype<_Ch>*, __f._M_ctype_facet()); - while (__pat != __pat_end) { - char __c = _Ct.narrow(*__pat, 0); - if (__c == '%') { - char __mod = 0; - ++__pat; - __c = _Ct.narrow(*__pat++, 0); - if (__c == '#') { // MS extension - __mod = __c; - __c = _Ct.narrow(*__pat++, 0); - } - __s = do_put(__s, __f, __fill, __tmb, __c, __mod); - } - else - *__s++ = *__pat++; - } - return __s; -} - -template<class _Ch, class _OutputIter> -_OutputIter -time_put<_Ch,_OutputIter>::do_put(_OutputIter __s, ios_base& __f, _Ch /* __fill */, - const tm* __tmb, char __format, - char __modifier ) const { - char __buf[64]; - char * __iend = _STLP_PRIV __write_formatted_time(_STLP_ARRAY_AND_SIZE(__buf), - __format, __modifier, _M_timeinfo, __tmb); - // locale __loc = __f.getloc(); - return _STLP_PRIV __put_time(__buf, __iend, __s, __f, _Ch()); -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_TIME_FACETS_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_time_facets.h b/WebKit/android/stlport/stl/_time_facets.h deleted file mode 100644 index 3423818..0000000 --- a/WebKit/android/stlport/stl/_time_facets.h +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: This is an internal header file, included by other C++ -// standard library headers. You should not attempt to use this header -// file directly. - - -#ifndef _STLP_INTERNAL_TIME_FACETS_H -#define _STLP_INTERNAL_TIME_FACETS_H - -#ifndef _STLP_INTERNAL_CTIME -# include <stl/_ctime.h> // Needed (for struct tm) by time facets -#endif - -#ifndef _STLP_C_LOCALE_H -# include <stl/c_locale.h> -#endif - -#ifndef _STLP_IOS_BASE_H -# include <stl/_ios_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// Template functions used by time_get - -// Matching input against a list of names - -// Alphabetic input of the names of months and the names -// of weekdays requires matching input against a list of names. -// We use a simple generic algorithm to accomplish this. This -// algorithm is not very efficient, especially for longer lists -// of names, but it probably does not matter for the initial -// implementation and it may never matter, since we do not expect -// this kind of input to be used very often. The algorithm -// could be improved fairly simply by creating a new list of -// names still in the running at each iteration. A more sophisticated -// approach would be to build a trie to do the matching. -// -// We compare each character of the input to the corresponding -// character of each name on the list that has not been eliminated, -// either because every character in the name has already been -// matched, or because some character has not been matched. We -// continue only as long as there are some names that have not been -// eliminated. - -// We do not really need a random access iterator (a forward iterator -// would do), but the extra generality makes the notation clumsier, -// and we don't really need it. - -// We can recognize a failed match by the fact that the second -// component of the return value will be __name_end. - -#define _MAXNAMES 64 -#define _MAX_NAME_LENGTH 64 - -// Both time_get and time_put need a structure of type _Time_Info -// to provide names and abbreviated names for months and days, -// as well as the am/pm designator. The month and weekday tables -// have the all the abbreviated names before all the full names. -// The _Time_Info tables are initialized using the non-template -// function _Init_timeinfo, which has two overloadings: one -// with a single reference parameter for the table to be initialized, -// and one with a second _Locale_time * parameter. The first form -// is called by the default constructor and the second by a special -// constructor invoked from the _byname subclass constructor to -// construct the base class. - -class _STLP_CLASS_DECLSPEC _Time_Info { -public: - string _M_dayname[14]; - string _M_monthname[24]; - string _M_am_pm[2]; - string _M_time_format; - string _M_date_format; - string _M_date_time_format; - string _M_long_date_format; - string _M_long_date_time_format; -}; - -void _STLP_CALL _Init_timeinfo(_Time_Info&); -void _STLP_CALL _Init_timeinfo(_Time_Info&, _Locale_time*); - -_STLP_MOVE_TO_STD_NAMESPACE - -class _STLP_CLASS_DECLSPEC time_base { -public: - enum dateorder {no_order, dmy, mdy, ymd, ydm}; -}; - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _Ch, class _InIt> -#else -template <class _Ch, class _InIt = istreambuf_iterator<_Ch, char_traits<_Ch> > > -#endif -class time_get : public locale::facet, public time_base { - friend class _Locale_impl; - -public: - typedef _Ch char_type; - typedef _InIt iter_type; - - explicit time_get(size_t __refs = 0) : locale::facet(__refs) - { _STLP_PRIV _Init_timeinfo(_M_timeinfo); } - dateorder date_order() const { return do_date_order(); } - iter_type get_time(iter_type __s, iter_type __end, ios_base& __str, - ios_base::iostate& __err, tm* __t) const - { return do_get_time(__s, __end, __str, __err, __t); } - iter_type get_date(iter_type __s, iter_type __end, ios_base& __str, - ios_base::iostate& __err, tm* __t) const - { return do_get_date(__s, __end, __str, __err, __t); } - iter_type get_weekday(iter_type __s, iter_type __end, ios_base& __str, - ios_base::iostate& __err, tm* __t) const - { return do_get_weekday(__s, __end, __str, __err, __t); } - iter_type get_monthname(iter_type __s, iter_type __end, ios_base& __str, - ios_base::iostate& __err, tm* __t) const - { return do_get_monthname(__s, __end, __str, __err, __t); } - iter_type get_year(iter_type __s, iter_type __end, ios_base& __str, - ios_base::iostate& __err, tm* __t) const - { return do_get_year(__s, __end, __str, __err, __t); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - time_get(_Locale_time *, size_t __refs) : locale::facet(__refs) {} - - ~time_get() {} - - virtual dateorder do_date_order() const {return no_order;} - - virtual iter_type do_get_time(iter_type __s, iter_type __end, - ios_base&, ios_base::iostate& __err, - tm* __t) const; - - virtual iter_type do_get_date(iter_type __s, iter_type __end, - ios_base&, ios_base::iostate& __err, - tm* __t) const; - - virtual iter_type do_get_weekday(iter_type __s, iter_type __end, - ios_base&, - ios_base::iostate& __err, - tm* __t) const; - virtual iter_type do_get_monthname(iter_type __s, iter_type __end, - ios_base&, - ios_base::iostate& __err, - tm* __t) const; - - virtual iter_type do_get_year(iter_type __s, iter_type __end, - ios_base&, ios_base::iostate& __err, - tm* __t) const; - - _STLP_PRIV _Time_Info _M_timeinfo; -}; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -time_base::dateorder _STLP_CALL __get_date_order(_Locale_time*); -_Locale_time* _STLP_CALL __acquire_time(const char* __name, _Locale_name_hint*); -void _STLP_CALL __release_time(_Locale_time* __time); - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Ch, class _InIt> -class time_get_byname; - -#if defined (__GNUC__) && (__GNUC__ < 3) -template <class _Ch, class _InIt> -_Locale_name_hint* _Locale_time_extract_hint(time_get_byname<_Ch, _InIt>*); -#else -_Locale_name_hint* _Locale_time_extract_hint(time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >*); -#endif - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _Ch, class _InIt> -#else -template <class _Ch, class _InIt = istreambuf_iterator<_Ch, char_traits<_Ch> > > -#endif -class time_get_byname : public time_get<_Ch, _InIt> { -public: - typedef time_base::dateorder dateorder; - typedef _InIt iter_type; - - explicit time_get_byname(const char* __name, size_t __refs = 0, _Locale_name_hint* __hint = 0) - : time_get<_Ch, _InIt>((_Locale_time*) 0, __refs), - _M_time(_STLP_PRIV __acquire_time(__name, __hint)) - { _STLP_PRIV _Init_timeinfo(this->_M_timeinfo, this->_M_time); } - -protected: - ~time_get_byname() { _STLP_PRIV __release_time(_M_time); } - dateorder do_date_order() const { return _STLP_PRIV __get_date_order(_M_time); } - -private: - _Locale_time* _M_time; - - typedef time_get_byname<_Ch, _InIt> _Self; - //explicitely defined as private to avoid warnings: - time_get_byname(_Self const&); - _Self& operator = (_Self const&); -#if defined (__GNUC__) && (__GNUC__ < 3) - friend _Locale_name_hint* _Locale_time_extract_hint<>(_Self*); -#else - friend _Locale_name_hint* _Locale_time_extract_hint(time_get_byname<char, istreambuf_iterator<char, char_traits<char> > >*); -#endif -}; - -// time_put facet - -// For the formats 'x, 'X', and 'c', do_put calls the first form of -// put with the pattern obtained from _M_timeinfo._M_date_format or -// _M_timeinfo._M_time_format. - -// Helper function: __ takes a single-character -// format. As indicated by the foregoing remark, this will never be -// 'x', 'X', or 'c'. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -char * _STLP_CALL -__write_formatted_time(char *__buf, size_t __buf_size, char __format, char __modifier, - const _Time_Info& __table, const tm* __t); - -template <class _OuIt> -inline _OuIt _STLP_CALL __put_time(char * __first, char * __last, _OuIt __out_ite, - const ios_base& /* __loc */, char) -{ return copy(__first, __last, __out_ite); } - -#if !defined (_STLP_NO_WCHAR_T) -template <class _OuIt> -_OuIt _STLP_CALL __put_time(char * __first, char * __last, _OuIt __out_ite, - const ios_base& __s, wchar_t); -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _Ch, class _OutIt> -#else -template <class _Ch, class _OutIt = ostreambuf_iterator<_Ch, char_traits<_Ch> > > -#endif -class time_put : public locale::facet, public time_base { - friend class _Locale_impl; -public: - typedef _Ch char_type; - typedef _OutIt iter_type; - - explicit time_put(size_t __refs = 0) : locale::facet(__refs) - { _STLP_PRIV _Init_timeinfo(_M_timeinfo); } - - _OutIt put(iter_type __s, ios_base& __f, _Ch __fill, - const tm* __tmb, - const _Ch* __pat, const _Ch* __pat_end) const; - - _OutIt put(iter_type __s, ios_base& __f, _Ch __fill, - const tm* __tmb, char __format, char __modifier = 0) const - { return do_put(__s, __f, __fill, __tmb, __format, __modifier); } - - static _STLP_STATIC_MEMBER_DECLSPEC locale::id id; - -protected: - time_put(_Locale_time* /*__time*/, size_t __refs) : locale::facet(__refs) - {} //_STLP_PRIV _Init_timeinfo(_M_timeinfo, __time); } - - ~time_put() {} - virtual iter_type do_put(iter_type __s, ios_base& __f, - char_type /* __fill */, const tm* __tmb, - char __format, char /* __modifier */) const; - - _STLP_PRIV _Time_Info _M_timeinfo; -}; - -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -template <class _Ch, class _OutIt> -#else -template <class _Ch, class _OutIt = ostreambuf_iterator<_Ch, char_traits<_Ch> > > -#endif -class time_put_byname : public time_put<_Ch, _OutIt> { - friend class _Locale_impl; -public: - typedef time_base::dateorder dateorder; - typedef _OutIt iter_type; - typedef _Ch char_type; - - explicit time_put_byname(const char * __name, size_t __refs = 0, _Locale_name_hint* __hint = 0) - : time_put<_Ch, _OutIt>((_Locale_time*) 0, __refs), - _M_time(_STLP_PRIV __acquire_time(__name, __hint)) - { _STLP_PRIV _Init_timeinfo(this->_M_timeinfo, this->_M_time); } - -protected: - ~time_put_byname() { _STLP_PRIV __release_time(_M_time); } - -private: - _Locale_time* _M_time; - - typedef time_put_byname<_Ch, _OutIt> _Self; - //explicitely defined as private to avoid warnings: - time_put_byname(_Self const&); - _Self& operator = (_Self const&); -}; - -#if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS time_get<char, istreambuf_iterator<char, char_traits<char> > >; -_STLP_EXPORT_TEMPLATE_CLASS time_put<char, ostreambuf_iterator<char, char_traits<char> > >; -// _STLP_EXPORT_TEMPLATE_CLASS time_get<char, const char*>; -// _STLP_EXPORT_TEMPLATE_CLASS time_put<char, char*>; -# if !defined (_STLP_NO_WCHAR_T) -_STLP_EXPORT_TEMPLATE_CLASS time_get<wchar_t, istreambuf_iterator<wchar_t, char_traits<wchar_t> > >; -_STLP_EXPORT_TEMPLATE_CLASS time_put<wchar_t, ostreambuf_iterator<wchar_t, char_traits<wchar_t> > >; -// _STLP_EXPORT_TEMPLATE_CLASS time_get<wchar_t, const wchar_t*>; -// _STLP_EXPORT_TEMPLATE_CLASS time_put<wchar_t, wchar_t*>; -# endif - -#endif - -_STLP_END_NAMESPACE - -#if defined (_STLP_EXPOSE_STREAM_IMPLEMENTATION) && !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_time_facets.c> -#endif - -#endif /* _STLP_INTERNAL_TIME_FACETS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_tree.c b/WebKit/android/stlport/stl/_tree.c deleted file mode 100644 index 818fcc4..0000000 --- a/WebKit/android/stlport/stl/_tree.c +++ /dev/null @@ -1,730 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - * Modified CRP 7/10/00 for improved conformance / efficiency on insert_unique / - * insert_equal with valid hint -- efficiency is improved all around, and it is - * should now be standard conforming for complexity on insert point immediately - * after hint (amortized constant time). - * - */ -#ifndef _STLP_TREE_C -#define _STLP_TREE_C - -#ifndef _STLP_INTERNAL_TREE_H -# include <stl/_tree.h> -#endif - -#if defined (_STLP_DEBUG) -# define _Rb_tree _STLP_NON_DBG_NAME(Rb_tree) -#endif - -// fbp: these defines are for outline methods definitions. -// needed for definitions to be portable. Should not be used in method bodies. -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# define __iterator__ _Rb_tree_iterator<_Value, _STLP_HEADER_TYPENAME _Traits::_NonConstTraits> -# define __size_type__ size_t -# define iterator __iterator__ -#else -# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc>::iterator -# define __size_type__ _STLP_TYPENAME_ON_RETURN_TYPE _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc>::size_type -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) - -template <class _Dummy> void _STLP_CALL -_Rb_global<_Dummy>::_Rotate_left(_Rb_tree_node_base* __x, - _Rb_tree_node_base*& __root) { - _Rb_tree_node_base* __y = __x->_M_right; - __x->_M_right = __y->_M_left; - if (__y->_M_left != 0) - __y->_M_left->_M_parent = __x; - __y->_M_parent = __x->_M_parent; - - if (__x == __root) - __root = __y; - else if (__x == __x->_M_parent->_M_left) - __x->_M_parent->_M_left = __y; - else - __x->_M_parent->_M_right = __y; - __y->_M_left = __x; - __x->_M_parent = __y; -} - -template <class _Dummy> void _STLP_CALL -_Rb_global<_Dummy>::_Rotate_right(_Rb_tree_node_base* __x, - _Rb_tree_node_base*& __root) { - _Rb_tree_node_base* __y = __x->_M_left; - __x->_M_left = __y->_M_right; - if (__y->_M_right != 0) - __y->_M_right->_M_parent = __x; - __y->_M_parent = __x->_M_parent; - - if (__x == __root) - __root = __y; - else if (__x == __x->_M_parent->_M_right) - __x->_M_parent->_M_right = __y; - else - __x->_M_parent->_M_left = __y; - __y->_M_right = __x; - __x->_M_parent = __y; -} - -template <class _Dummy> void _STLP_CALL -_Rb_global<_Dummy>::_Rebalance(_Rb_tree_node_base* __x, - _Rb_tree_node_base*& __root) { - __x->_M_color = _S_rb_tree_red; - while (__x != __root && __x->_M_parent->_M_color == _S_rb_tree_red) { - if (__x->_M_parent == __x->_M_parent->_M_parent->_M_left) { - _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_right; - if (__y && __y->_M_color == _S_rb_tree_red) { - __x->_M_parent->_M_color = _S_rb_tree_black; - __y->_M_color = _S_rb_tree_black; - __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red; - __x = __x->_M_parent->_M_parent; - } - else { - if (__x == __x->_M_parent->_M_right) { - __x = __x->_M_parent; - _Rotate_left(__x, __root); - } - __x->_M_parent->_M_color = _S_rb_tree_black; - __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red; - _Rotate_right(__x->_M_parent->_M_parent, __root); - } - } - else { - _Rb_tree_node_base* __y = __x->_M_parent->_M_parent->_M_left; - if (__y && __y->_M_color == _S_rb_tree_red) { - __x->_M_parent->_M_color = _S_rb_tree_black; - __y->_M_color = _S_rb_tree_black; - __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red; - __x = __x->_M_parent->_M_parent; - } - else { - if (__x == __x->_M_parent->_M_left) { - __x = __x->_M_parent; - _Rotate_right(__x, __root); - } - __x->_M_parent->_M_color = _S_rb_tree_black; - __x->_M_parent->_M_parent->_M_color = _S_rb_tree_red; - _Rotate_left(__x->_M_parent->_M_parent, __root); - } - } - } - __root->_M_color = _S_rb_tree_black; -} - -template <class _Dummy> _Rb_tree_node_base* _STLP_CALL -_Rb_global<_Dummy>::_Rebalance_for_erase(_Rb_tree_node_base* __z, - _Rb_tree_node_base*& __root, - _Rb_tree_node_base*& __leftmost, - _Rb_tree_node_base*& __rightmost) { - _Rb_tree_node_base* __y = __z; - _Rb_tree_node_base* __x; - _Rb_tree_node_base* __x_parent; - - if (__y->_M_left == 0) // __z has at most one non-null child. y == z. - __x = __y->_M_right; // __x might be null. - else { - if (__y->_M_right == 0) // __z has exactly one non-null child. y == z. - __x = __y->_M_left; // __x is not null. - else { // __z has two non-null children. Set __y to - __y = _Rb_tree_node_base::_S_minimum(__y->_M_right); // __z's successor. __x might be null. - __x = __y->_M_right; - } - } - - if (__y != __z) { // relink y in place of z. y is z's successor - __z->_M_left->_M_parent = __y; - __y->_M_left = __z->_M_left; - if (__y != __z->_M_right) { - __x_parent = __y->_M_parent; - if (__x) __x->_M_parent = __y->_M_parent; - __y->_M_parent->_M_left = __x; // __y must be a child of _M_left - __y->_M_right = __z->_M_right; - __z->_M_right->_M_parent = __y; - } - else - __x_parent = __y; - if (__root == __z) - __root = __y; - else if (__z->_M_parent->_M_left == __z) - __z->_M_parent->_M_left = __y; - else - __z->_M_parent->_M_right = __y; - __y->_M_parent = __z->_M_parent; - _STLP_STD::swap(__y->_M_color, __z->_M_color); - __y = __z; - // __y now points to node to be actually deleted - } - else { // __y == __z - __x_parent = __y->_M_parent; - if (__x) __x->_M_parent = __y->_M_parent; - if (__root == __z) - __root = __x; - else { - if (__z->_M_parent->_M_left == __z) - __z->_M_parent->_M_left = __x; - else - __z->_M_parent->_M_right = __x; - } - - if (__leftmost == __z) { - if (__z->_M_right == 0) // __z->_M_left must be null also - __leftmost = __z->_M_parent; - // makes __leftmost == _M_header if __z == __root - else - __leftmost = _Rb_tree_node_base::_S_minimum(__x); - } - if (__rightmost == __z) { - if (__z->_M_left == 0) // __z->_M_right must be null also - __rightmost = __z->_M_parent; - // makes __rightmost == _M_header if __z == __root - else // __x == __z->_M_left - __rightmost = _Rb_tree_node_base::_S_maximum(__x); - } - } - - if (__y->_M_color != _S_rb_tree_red) { - while (__x != __root && (__x == 0 || __x->_M_color == _S_rb_tree_black)) - if (__x == __x_parent->_M_left) { - _Rb_tree_node_base* __w = __x_parent->_M_right; - if (__w->_M_color == _S_rb_tree_red) { - __w->_M_color = _S_rb_tree_black; - __x_parent->_M_color = _S_rb_tree_red; - _Rotate_left(__x_parent, __root); - __w = __x_parent->_M_right; - } - if ((__w->_M_left == 0 || - __w->_M_left->_M_color == _S_rb_tree_black) && (__w->_M_right == 0 || - __w->_M_right->_M_color == _S_rb_tree_black)) { - __w->_M_color = _S_rb_tree_red; - __x = __x_parent; - __x_parent = __x_parent->_M_parent; - } else { - if (__w->_M_right == 0 || - __w->_M_right->_M_color == _S_rb_tree_black) { - if (__w->_M_left) __w->_M_left->_M_color = _S_rb_tree_black; - __w->_M_color = _S_rb_tree_red; - _Rotate_right(__w, __root); - __w = __x_parent->_M_right; - } - __w->_M_color = __x_parent->_M_color; - __x_parent->_M_color = _S_rb_tree_black; - if (__w->_M_right) __w->_M_right->_M_color = _S_rb_tree_black; - _Rotate_left(__x_parent, __root); - break; - } - } else { // same as above, with _M_right <-> _M_left. - _Rb_tree_node_base* __w = __x_parent->_M_left; - if (__w->_M_color == _S_rb_tree_red) { - __w->_M_color = _S_rb_tree_black; - __x_parent->_M_color = _S_rb_tree_red; - _Rotate_right(__x_parent, __root); - __w = __x_parent->_M_left; - } - if ((__w->_M_right == 0 || - __w->_M_right->_M_color == _S_rb_tree_black) && (__w->_M_left == 0 || - __w->_M_left->_M_color == _S_rb_tree_black)) { - __w->_M_color = _S_rb_tree_red; - __x = __x_parent; - __x_parent = __x_parent->_M_parent; - } else { - if (__w->_M_left == 0 || - __w->_M_left->_M_color == _S_rb_tree_black) { - if (__w->_M_right) __w->_M_right->_M_color = _S_rb_tree_black; - __w->_M_color = _S_rb_tree_red; - _Rotate_left(__w, __root); - __w = __x_parent->_M_left; - } - __w->_M_color = __x_parent->_M_color; - __x_parent->_M_color = _S_rb_tree_black; - if (__w->_M_left) __w->_M_left->_M_color = _S_rb_tree_black; - _Rotate_right(__x_parent, __root); - break; - } - } - if (__x) __x->_M_color = _S_rb_tree_black; - } - return __y; -} - -template <class _Dummy> _Rb_tree_node_base* _STLP_CALL -_Rb_global<_Dummy>::_M_decrement(_Rb_tree_node_base* _M_node) { - if (_M_node->_M_color == _S_rb_tree_red && _M_node->_M_parent->_M_parent == _M_node) - _M_node = _M_node->_M_right; - else if (_M_node->_M_left != 0) { - _M_node = _Rb_tree_node_base::_S_maximum(_M_node->_M_left); - } - else { - _Base_ptr __y = _M_node->_M_parent; - while (_M_node == __y->_M_left) { - _M_node = __y; - __y = __y->_M_parent; - } - _M_node = __y; - } - return _M_node; -} - -template <class _Dummy> _Rb_tree_node_base* _STLP_CALL -_Rb_global<_Dummy>::_M_increment(_Rb_tree_node_base* _M_node) { - if (_M_node->_M_right != 0) { - _M_node = _Rb_tree_node_base::_S_minimum(_M_node->_M_right); - } - else { - _Base_ptr __y = _M_node->_M_parent; - while (_M_node == __y->_M_right) { - _M_node = __y; - __y = __y->_M_parent; - } - // check special case: This is necessary if _M_node is the - // _M_head and the tree contains only a single node __y. In - // that case parent, left and right all point to __y! - if (_M_node->_M_right != __y) - _M_node = __y; - } - return _M_node; -} - -#endif /* _STLP_EXPOSE_GLOBALS_IMPLEMENTATION */ - - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>& -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::operator=( - const _Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>& __x) { - if (this != &__x) { - // Note that _Key may be a constant type. - clear(); - _M_node_count = 0; - _M_key_compare = __x._M_key_compare; - if (__x._M_root() == 0) { - _M_root() = 0; - _M_leftmost() = &this->_M_header._M_data; - _M_rightmost() = &this->_M_header._M_data; - } - else { - _M_root() = _M_copy(__x._M_root(), &this->_M_header._M_data); - _M_leftmost() = _S_minimum(_M_root()); - _M_rightmost() = _S_maximum(_M_root()); - _M_node_count = __x._M_node_count; - } - } - return *this; -} - -// CRP 7/10/00 inserted argument __on_right, which is another hint (meant to -// act like __on_left and ignore a portion of the if conditions -- specify -// __on_right != 0 to bypass comparison as false or __on_left != 0 to bypass -// comparison as true) -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -__iterator__ -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::_M_insert(_Rb_tree_node_base * __parent, - const _Value& __val, - _Rb_tree_node_base * __on_left, - _Rb_tree_node_base * __on_right) { - // We do not create the node here as, depending on tests, we might call - // _M_key_compare that can throw an exception. - _Base_ptr __new_node; - - if ( __parent == &this->_M_header._M_data ) { - __new_node = _M_create_node(__val); - _S_left(__parent) = __new_node; // also makes _M_leftmost() = __new_node - _M_root() = __new_node; - _M_rightmost() = __new_node; - } - else if ( __on_right == 0 && // If __on_right != 0, the remainder fails to false - ( __on_left != 0 || // If __on_left != 0, the remainder succeeds to true - _M_key_compare( _KeyOfValue()(__val), _S_key(__parent) ) ) ) { - __new_node = _M_create_node(__val); - _S_left(__parent) = __new_node; - if (__parent == _M_leftmost()) - _M_leftmost() = __new_node; // maintain _M_leftmost() pointing to min node - } - else { - __new_node = _M_create_node(__val); - _S_right(__parent) = __new_node; - if (__parent == _M_rightmost()) - _M_rightmost() = __new_node; // maintain _M_rightmost() pointing to max node - } - _S_parent(__new_node) = __parent; - _Rb_global_inst::_Rebalance(__new_node, this->_M_header._M_data._M_parent); - ++_M_node_count; - return iterator(__new_node); -} - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -__iterator__ -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_equal(const _Value& __val) { - _Base_ptr __y = &this->_M_header._M_data; - _Base_ptr __x = _M_root(); - while (__x != 0) { - __y = __x; - if (_M_key_compare(_KeyOfValue()(__val), _S_key(__x))) { - __x = _S_left(__x); - } - else - __x = _S_right(__x); - } - return _M_insert(__y, __val, __x); -} - - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -pair<__iterator__, bool> -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_unique(const _Value& __val) { - _Base_ptr __y = &this->_M_header._M_data; - _Base_ptr __x = _M_root(); - bool __comp = true; - while (__x != 0) { - __y = __x; - __comp = _M_key_compare(_KeyOfValue()(__val), _S_key(__x)); - __x = __comp ? _S_left(__x) : _S_right(__x); - } - iterator __j = iterator(__y); - if (__comp) { - if (__j == begin()) - return pair<iterator,bool>(_M_insert(__y, __val, /* __x*/ __y), true); - else - --__j; - } - if (_M_key_compare(_S_key(__j._M_node), _KeyOfValue()(__val))) { - return pair<iterator,bool>(_M_insert(__y, __val, __x), true); - } - return pair<iterator,bool>(__j, false); -} - -// Modifications CRP 7/10/00 as noted to improve conformance and -// efficiency. -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -__iterator__ -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_unique(iterator __position, - const _Value& __val) { - if (__position._M_node == this->_M_header._M_data._M_left) { // begin() - - // if the container is empty, fall back on insert_unique. - if (empty()) - return insert_unique(__val).first; - - if (_M_key_compare(_KeyOfValue()(__val), _S_key(__position._M_node))) { - return _M_insert(__position._M_node, __val, __position._M_node); - } - // first argument just needs to be non-null - else { - bool __comp_pos_v = _M_key_compare( _S_key(__position._M_node), _KeyOfValue()(__val) ); - - if (__comp_pos_v == false) // compare > and compare < both false so compare equal - return __position; - //Below __comp_pos_v == true - - // Standard-conformance - does the insertion point fall immediately AFTER - // the hint? - iterator __after = __position; - ++__after; - - // Check for only one member -- in that case, __position points to itself, - // and attempting to increment will cause an infinite loop. - if (__after._M_node == &this->_M_header._M_data) - // Check guarantees exactly one member, so comparison was already - // performed and we know the result; skip repeating it in _M_insert - // by specifying a non-zero fourth argument. - return _M_insert(__position._M_node, __val, 0, __position._M_node); - - // All other cases: - - // Optimization to catch insert-equivalent -- save comparison results, - // and we get this for free. - if (_M_key_compare( _KeyOfValue()(__val), _S_key(__after._M_node) )) { - if (_S_right(__position._M_node) == 0) - return _M_insert(__position._M_node, __val, 0, __position._M_node); - else - return _M_insert(__after._M_node, __val, __after._M_node); - } - else { - return insert_unique(__val).first; - } - } - } - else if (__position._M_node == &this->_M_header._M_data) { // end() - if (_M_key_compare(_S_key(_M_rightmost()), _KeyOfValue()(__val))) { - // pass along to _M_insert that it can skip comparing - // v, Key ; since compare Key, v was true, compare v, Key must be false. - return _M_insert(_M_rightmost(), __val, 0, __position._M_node); // Last argument only needs to be non-null - } - else - return insert_unique(__val).first; - } - else { - iterator __before = __position; - --__before; - - bool __comp_v_pos = _M_key_compare(_KeyOfValue()(__val), _S_key(__position._M_node)); - - if (__comp_v_pos - && _M_key_compare( _S_key(__before._M_node), _KeyOfValue()(__val) )) { - - if (_S_right(__before._M_node) == 0) - return _M_insert(__before._M_node, __val, 0, __before._M_node); // Last argument only needs to be non-null - else - return _M_insert(__position._M_node, __val, __position._M_node); - // first argument just needs to be non-null - } - else { - // Does the insertion point fall immediately AFTER the hint? - iterator __after = __position; - ++__after; - // Optimization to catch equivalent cases and avoid unnecessary comparisons - bool __comp_pos_v = !__comp_v_pos; // Stored this result earlier - // If the earlier comparison was true, this comparison doesn't need to be - // performed because it must be false. However, if the earlier comparison - // was false, we need to perform this one because in the equal case, both will - // be false. - if (!__comp_v_pos) { - __comp_pos_v = _M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__val)); - } - - if ( (!__comp_v_pos) // comp_v_pos true implies comp_v_pos false - && __comp_pos_v - && (__after._M_node == &this->_M_header._M_data || - _M_key_compare( _KeyOfValue()(__val), _S_key(__after._M_node) ))) { - if (_S_right(__position._M_node) == 0) - return _M_insert(__position._M_node, __val, 0, __position._M_node); - else - return _M_insert(__after._M_node, __val, __after._M_node); - } else { - // Test for equivalent case - if (__comp_v_pos == __comp_pos_v) - return __position; - else - return insert_unique(__val).first; - } - } - } -} - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -__iterator__ -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::insert_equal(iterator __position, - const _Value& __val) { - if (__position._M_node == this->_M_header._M_data._M_left) { // begin() - - // Check for zero members - if (size() <= 0) - return insert_equal(__val); - - if (!_M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__val))) - return _M_insert(__position._M_node, __val, __position._M_node); - else { - // Check for only one member - if (__position._M_node->_M_left == __position._M_node) - // Unlike insert_unique, can't avoid doing a comparison here. - return _M_insert(__position._M_node, __val); - - // All other cases: - // Standard-conformance - does the insertion point fall immediately AFTER - // the hint? - iterator __after = __position; - ++__after; - - // Already know that compare(pos, v) must be true! - // Therefore, we want to know if compare(after, v) is false. - // (i.e., we now pos < v, now we want to know if v <= after) - // If not, invalid hint. - if ( __after._M_node == &this->_M_header._M_data || - !_M_key_compare( _S_key(__after._M_node), _KeyOfValue()(__val) ) ) { - if (_S_right(__position._M_node) == 0) - return _M_insert(__position._M_node, __val, 0, __position._M_node); - else - return _M_insert(__after._M_node, __val, __after._M_node); - } - else { // Invalid hint - return insert_equal(__val); - } - } - } - else if (__position._M_node == &this->_M_header._M_data) { // end() - if (!_M_key_compare(_KeyOfValue()(__val), _S_key(_M_rightmost()))) - return _M_insert(_M_rightmost(), __val, 0, __position._M_node); // Last argument only needs to be non-null - else { - return insert_equal(__val); - } - } - else { - iterator __before = __position; - --__before; - // store the result of the comparison between pos and v so - // that we don't have to do it again later. Note that this reverses the shortcut - // on the if, possibly harming efficiency in comparisons; I think the harm will - // be negligible, and to do what I want to do (save the result of a comparison so - // that it can be re-used) there is no alternative. Test here is for before <= v <= pos. - bool __comp_pos_v = _M_key_compare(_S_key(__position._M_node), _KeyOfValue()(__val)); - if (!__comp_pos_v && - !_M_key_compare(_KeyOfValue()(__val), _S_key(__before._M_node))) { - if (_S_right(__before._M_node) == 0) - return _M_insert(__before._M_node, __val, 0, __before._M_node); // Last argument only needs to be non-null - else - return _M_insert(__position._M_node, __val, __position._M_node); - } - else { - // Does the insertion point fall immediately AFTER the hint? - // Test for pos < v <= after - iterator __after = __position; - ++__after; - - if (__comp_pos_v && - ( __after._M_node == &this->_M_header._M_data || - !_M_key_compare( _S_key(__after._M_node), _KeyOfValue()(__val) ) ) ) { - if (_S_right(__position._M_node) == 0) - return _M_insert(__position._M_node, __val, 0, __position._M_node); - else - return _M_insert(__after._M_node, __val, __after._M_node); - } - else { // Invalid hint - return insert_equal(__val); - } - } - } -} - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -_Rb_tree_node_base* -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> ::_M_copy(_Rb_tree_node_base* __x, - _Rb_tree_node_base* __p) { - // structural copy. __x and __p must be non-null. - _Base_ptr __top = _M_clone_node(__x); - _S_parent(__top) = __p; - - _STLP_TRY { - if (_S_right(__x)) - _S_right(__top) = _M_copy(_S_right(__x), __top); - __p = __top; - __x = _S_left(__x); - - while (__x != 0) { - _Base_ptr __y = _M_clone_node(__x); - _S_left(__p) = __y; - _S_parent(__y) = __p; - if (_S_right(__x)) - _S_right(__y) = _M_copy(_S_right(__x), __y); - __p = __y; - __x = _S_left(__x); - } - } - _STLP_UNWIND(_M_erase(__top)) - - return __top; -} - -// this has to stay out-of-line : it's recursive -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -void -_Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>::_M_erase(_Rb_tree_node_base *__x) { - // erase without rebalancing - while (__x != 0) { - _M_erase(_S_right(__x)); - _Base_ptr __y = _S_left(__x); - _STLP_STD::_Destroy(&_S_value(__x)); - this->_M_header.deallocate(__STATIC_CAST(_Link_type, __x),1); - __x = __y; - } -} - -#if defined (_STLP_DEBUG) -inline int -__black_count(_Rb_tree_node_base* __node, _Rb_tree_node_base* __root) { - if (__node == 0) - return 0; - else { - int __bc = __node->_M_color == _S_rb_tree_black ? 1 : 0; - if (__node == __root) - return __bc; - else - return __bc + __black_count(__node->_M_parent, __root); - } -} - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc> -bool _Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc>::__rb_verify() const { - if (_M_node_count == 0 || begin() == end()) - return ((_M_node_count == 0) && - (begin() == end()) && - (this->_M_header._M_data._M_left == &this->_M_header._M_data) && - (this->_M_header._M_data._M_right == &this->_M_header._M_data)); - - int __len = __black_count(_M_leftmost(), _M_root()); - for (const_iterator __it = begin(); __it != end(); ++__it) { - _Base_ptr __x = __it._M_node; - _Base_ptr __L = _S_left(__x); - _Base_ptr __R = _S_right(__x); - - if (__x->_M_color == _S_rb_tree_red) - if ((__L && __L->_M_color == _S_rb_tree_red) || - (__R && __R->_M_color == _S_rb_tree_red)) - return false; - - if (__L && _M_key_compare(_S_key(__x), _S_key(__L))) - return false; - if (__R && _M_key_compare(_S_key(__R), _S_key(__x))) - return false; - - if (!__L && !__R && __black_count(__x, _M_root()) != __len) - return false; - } - - if (_M_leftmost() != _Rb_tree_node_base::_S_minimum(_M_root())) - return false; - if (_M_rightmost() != _Rb_tree_node_base::_S_maximum(_M_root())) - return false; - - return true; -} -#endif /* _STLP_DEBUG */ - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -#undef _Rb_tree -#undef __iterator__ -#undef iterator -#undef __size_type__ - -#endif /* _STLP_TREE_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_tree.h b/WebKit/android/stlport/stl/_tree.h deleted file mode 100644 index c4c799d..0000000 --- a/WebKit/android/stlport/stl/_tree.h +++ /dev/null @@ -1,679 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_TREE_H -#define _STLP_INTERNAL_TREE_H - -/* - -Red-black tree class, designed for use in implementing STL -associative containers (set, multiset, map, and multimap). The -insertion and deletion algorithms are based on those in Cormen, -Leiserson, and Rivest, Introduction to Algorithms (MIT Press, 1990), -except that - -(1) the header cell is maintained with links not only to the root -but also to the leftmost node of the tree, to enable constant time -begin(), and to the rightmost node of the tree, to enable linear time -performance when used with the generic set algorithms (set_union, -etc.); - -(2) when a node being deleted has two children its successor node is -relinked into its place, rather than copied, so that the only -iterators invalidated are those referring to the deleted node. - -*/ - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -typedef bool _Rb_tree_Color_type; -//const _Rb_tree_Color_type _S_rb_tree_red = false; -//const _Rb_tree_Color_type _S_rb_tree_black = true; - -#define _S_rb_tree_red false -#define _S_rb_tree_black true - -struct _Rb_tree_node_base { - typedef _Rb_tree_Color_type _Color_type; - typedef _Rb_tree_node_base* _Base_ptr; - - _Color_type _M_color; - _Base_ptr _M_parent; - _Base_ptr _M_left; - _Base_ptr _M_right; - - static _Base_ptr _STLP_CALL _S_minimum(_Base_ptr __x) { - while (__x->_M_left != 0) __x = __x->_M_left; - return __x; - } - - static _Base_ptr _STLP_CALL _S_maximum(_Base_ptr __x) { - while (__x->_M_right != 0) __x = __x->_M_right; - return __x; - } -}; - -template <class _Value> -struct _Rb_tree_node : public _Rb_tree_node_base { - _Value _M_value_field; - __TRIVIAL_STUFF(_Rb_tree_node) -}; - -struct _Rb_tree_base_iterator; - -template <class _Dummy> -class _Rb_global { -public: - typedef _Rb_tree_node_base* _Base_ptr; - // those used to be global functions - static void _STLP_CALL _Rebalance(_Base_ptr __x, _Base_ptr& __root); - static _Base_ptr _STLP_CALL _Rebalance_for_erase(_Base_ptr __z, - _Base_ptr& __root, - _Base_ptr& __leftmost, - _Base_ptr& __rightmost); - // those are from _Rb_tree_base_iterator - moved here to reduce code bloat - // moved here to reduce code bloat without templatizing _Rb_tree_base_iterator - static _Base_ptr _STLP_CALL _M_increment (_Base_ptr); - static _Base_ptr _STLP_CALL _M_decrement (_Base_ptr); - static void _STLP_CALL _Rotate_left (_Base_ptr __x, _Base_ptr& __root); - static void _STLP_CALL _Rotate_right(_Base_ptr __x, _Base_ptr& __root); -}; - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE_CLASS _Rb_global<bool>; -# endif - -typedef _Rb_global<bool> _Rb_global_inst; - -struct _Rb_tree_base_iterator { - typedef _Rb_tree_node_base* _Base_ptr; - typedef bidirectional_iterator_tag iterator_category; - typedef ptrdiff_t difference_type; - _Base_ptr _M_node; - _Rb_tree_base_iterator() : _M_node(0) {} - _Rb_tree_base_iterator(_Base_ptr __x) : _M_node(__x) {} -}; - -template <class _Value, class _Traits> -struct _Rb_tree_iterator : public _Rb_tree_base_iterator { - typedef _Value value_type; - typedef typename _Traits::reference reference; - typedef typename _Traits::pointer pointer; - typedef _Rb_tree_iterator<_Value, _Traits> _Self; - typedef _Rb_tree_node_base* _Base_ptr; - typedef _Rb_tree_node<_Value>* _Link_type; - - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef _Rb_tree_iterator<_Value, _NonConstTraits> iterator; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef _Rb_tree_iterator<_Value, _ConstTraits> const_iterator; - - _Rb_tree_iterator() {} -#if !defined (_STLP_DEBUG) - /* In STL debug mode we need this constructor implicit for the pointer - * specialization implementation. - */ - explicit -#endif - _Rb_tree_iterator(_Base_ptr __x) : _Rb_tree_base_iterator(__x) {} - //copy constructor for iterator and constructor from iterator for const_iterator - _Rb_tree_iterator(const iterator& __it) : _Rb_tree_base_iterator(__it._M_node) {} - - reference operator*() const { - return __STATIC_CAST(_Link_type, _M_node)->_M_value_field; - } - - _STLP_DEFINE_ARROW_OPERATOR - - _Self& operator++() { - _M_node = _Rb_global_inst::_M_increment(_M_node); - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - ++(*this); - return __tmp; - } - - _Self& operator--() { - _M_node = _Rb_global_inst::_M_decrement(_M_node); - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - --(*this); - return __tmp; - } - - bool operator == (const_iterator __rhs) const { - return _M_node == __rhs._M_node; - } - bool operator != (const_iterator __rhs) const { - return _M_node != __rhs._M_node; - } -}; - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Value, class _Traits> -struct __type_traits<_STLP_PRIV _Rb_tree_iterator<_Value, _Traits> > { - typedef __false_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Value, class _Traits> -inline _Value* value_type(const _STLP_PRIV _Rb_tree_iterator<_Value, _Traits>&) -{ return (_Value*)0; } -inline bidirectional_iterator_tag iterator_category(const _STLP_PRIV _Rb_tree_base_iterator&) -{ return bidirectional_iterator_tag(); } -inline ptrdiff_t* distance_type(const _STLP_PRIV _Rb_tree_base_iterator&) -{ return (ptrdiff_t*) 0; } -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -// Base class to help EH - -template <class _Tp, class _Alloc> -class _Rb_tree_base { -public: - typedef _Rb_tree_node_base _Node_base; - typedef _Rb_tree_node<_Tp> _Node; - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; -private: - typedef _Rb_tree_base<_Tp, _Alloc> _Self; - typedef typename _Alloc_traits<_Node, _Alloc>::allocator_type _M_node_allocator_type; - typedef _STLP_alloc_proxy<_Node_base, _Node, _M_node_allocator_type> _AllocProxy; - -public: - allocator_type get_allocator() const { - return _STLP_CONVERT_ALLOCATOR(_M_header, _Tp); - } - -protected: - _Rb_tree_base(const allocator_type& __a) : - _M_header(_STLP_CONVERT_ALLOCATOR(__a, _Node), _Node_base() ) { - _M_empty_initialize(); - } - _Rb_tree_base(__move_source<_Self> src) : - _M_header(__move_source<_AllocProxy>(src.get()._M_header)) { - _M_rebind(&src.get()._M_header._M_data); - src.get()._M_empty_initialize(); - } - void _M_empty_initialize() { - _M_header._M_data._M_color = _S_rb_tree_red; // used to distinguish header from - // __root, in iterator.operator++ - _M_header._M_data._M_parent = 0; - _M_header._M_data._M_left = &_M_header._M_data; - _M_header._M_data._M_right = &_M_header._M_data; - } - - void _M_rebind(_Node_base *__static_node) { - if (_M_header._M_data._M_parent != 0) { - _M_header._M_data._M_parent->_M_parent = &_M_header._M_data; - } - if (_M_header._M_data._M_right == __static_node) { - _M_header._M_data._M_right = &_M_header._M_data; - } - if (_M_header._M_data._M_left == __static_node) { - _M_header._M_data._M_left = &_M_header._M_data; - } - } - - _AllocProxy _M_header; -}; - -#if defined (_STLP_DEBUG) -# define _Rb_tree _STLP_NON_DBG_NAME(Rb_tree) -#endif - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, - _STLP_DEFAULT_ALLOCATOR_SELECT(_Value) > -class _Rb_tree : public _Rb_tree_base<_Value, _Alloc> { - typedef _Rb_tree_base<_Value, _Alloc> _Base; - typedef _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc> _Self; -protected: - typedef _Rb_tree_node_base * _Base_ptr; - typedef _Rb_tree_node<_Value> _Node; - typedef _Node* _Link_type; - typedef _Rb_tree_Color_type _Color_type; -public: - typedef _Key key_type; - typedef _Value value_type; - typedef typename _Traits::pointer pointer; - typedef const value_type* const_pointer; - typedef typename _Traits::reference reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef bidirectional_iterator_tag _Iterator_category; - typedef typename _Base::allocator_type allocator_type; - -protected: - - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - _Base_ptr _M_create_node(const value_type& __x) { - _Link_type __tmp = this->_M_header.allocate(1); - _STLP_TRY { - _Copy_Construct(&__tmp->_M_value_field, __x); - } - _STLP_UNWIND(this->_M_header.deallocate(__tmp,1)) - _S_left(__tmp) = 0; - _S_right(__tmp) = 0; - return __tmp; - } - - _Base_ptr _M_clone_node(_Base_ptr __x) { - _Base_ptr __tmp = _M_create_node(_S_value(__x)); - _S_color(__tmp) = _S_color(__x); - return __tmp; - } - - size_type _M_node_count; // keeps track of size of tree - _Compare _M_key_compare; - - _Base_ptr _M_root() const - { return this->_M_header._M_data._M_parent; } - _Base_ptr _M_leftmost() const - { return this->_M_header._M_data._M_left; } - _Base_ptr _M_rightmost() const - { return this->_M_header._M_data._M_right; } - - _Base_ptr& _M_root() - { return this->_M_header._M_data._M_parent; } - _Base_ptr& _M_leftmost() - { return this->_M_header._M_data._M_left; } - _Base_ptr& _M_rightmost() - { return this->_M_header._M_data._M_right; } - - static _Base_ptr& _STLP_CALL _S_left(_Base_ptr __x) - { return __x->_M_left; } - static _Base_ptr& _STLP_CALL _S_right(_Base_ptr __x) - { return __x->_M_right; } - static _Base_ptr& _STLP_CALL _S_parent(_Base_ptr __x) - { return __x->_M_parent; } - static value_type& _STLP_CALL _S_value(_Base_ptr __x) - { return __STATIC_CAST(_Link_type, __x)->_M_value_field; } - static const _Key& _STLP_CALL _S_key(_Base_ptr __x) - { return _KeyOfValue()(_S_value(__x));} - static _Color_type& _STLP_CALL _S_color(_Base_ptr __x) - { return (_Color_type&)(__x->_M_color); } - - static _Base_ptr _STLP_CALL _S_minimum(_Base_ptr __x) - { return _Rb_tree_node_base::_S_minimum(__x); } - - static _Base_ptr _STLP_CALL _S_maximum(_Base_ptr __x) - { return _Rb_tree_node_base::_S_maximum(__x); } - -public: - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef _Rb_tree_iterator<value_type, _NonConstTraits> iterator; - typedef _Rb_tree_iterator<value_type, _ConstTraits> const_iterator; - _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS; - -private: - iterator _M_insert(_Base_ptr __parent, const value_type& __val, _Base_ptr __on_left = 0, _Base_ptr __on_right = 0); - _Base_ptr _M_copy(_Base_ptr __x, _Base_ptr __p); - void _M_erase(_Base_ptr __x); - -public: - // allocation/deallocation - _Rb_tree() - : _Rb_tree_base<_Value, _Alloc>(allocator_type()), _M_node_count(0), _M_key_compare(_Compare()) - {} - - _Rb_tree(const _Compare& __comp) - : _Rb_tree_base<_Value, _Alloc>(allocator_type()), _M_node_count(0), _M_key_compare(__comp) - {} - - _Rb_tree(const _Compare& __comp, const allocator_type& __a) - : _Rb_tree_base<_Value, _Alloc>(__a), _M_node_count(0), _M_key_compare(__comp) - {} - - _Rb_tree(const _Self& __x) - : _Rb_tree_base<_Value, _Alloc>(__x.get_allocator()), - _M_node_count(0), _M_key_compare(__x._M_key_compare) { - if (__x._M_root() != 0) { - _S_color(&this->_M_header._M_data) = _S_rb_tree_red; - _M_root() = _M_copy(__x._M_root(), &this->_M_header._M_data); - _M_leftmost() = _S_minimum(_M_root()); - _M_rightmost() = _S_maximum(_M_root()); - } - _M_node_count = __x._M_node_count; - } - - _Rb_tree(__move_source<_Self> src) - : _Rb_tree_base<_Value, _Alloc>(__move_source<_Base>(src.get())), - _M_node_count(src.get()._M_node_count), - _M_key_compare(_AsMoveSource(src.get()._M_key_compare)) { - src.get()._M_node_count = 0; - } - - ~_Rb_tree() { clear(); } - _Self& operator=(const _Self& __x); - -public: - // accessors: - _Compare key_comp() const { return _M_key_compare; } - - iterator begin() { return iterator(_M_leftmost()); } - const_iterator begin() const { return const_iterator(_M_leftmost()); } - iterator end() { return iterator(&this->_M_header._M_data); } - const_iterator end() const { return const_iterator(__CONST_CAST(_Base_ptr, &this->_M_header._M_data)); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const - { return const_reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const - { return const_reverse_iterator(begin()); } - bool empty() const { return _M_node_count == 0; } - size_type size() const { return _M_node_count; } - size_type max_size() const { return size_type(-1); } - - void swap(_Self& __t) { - if (__t.empty()) { - if (this->empty()) return; - __t._M_header.swap(this->_M_header); - __t._M_rebind(&this->_M_header._M_data); - this->_M_empty_initialize(); - } - else if (this->empty()) { - __t.swap(*this); - return; - } - else { - this->_M_header.swap(__t._M_header); - this->_M_rebind(&__t._M_header._M_data); - __t._M_rebind(&this->_M_header._M_data); - } - _STLP_STD::swap(_M_node_count, __t._M_node_count); - _STLP_STD::swap(_M_key_compare, __t._M_key_compare); - } - -public: - // insert/erase - pair<iterator,bool> insert_unique(const value_type& __x); - iterator insert_equal(const value_type& __x); - - iterator insert_unique(iterator __pos, const value_type& __x); - iterator insert_equal(iterator __pos, const value_type& __x); - -#if defined (_STLP_MEMBER_TEMPLATES) - template<class _II> void insert_equal(_II __first, _II __last) { - for ( ; __first != __last; ++__first) - insert_equal(*__first); - } - template<class _II> void insert_unique(_II __first, _II __last) { - for ( ; __first != __last; ++__first) - insert_unique(*__first); - } -#else - void insert_unique(const_iterator __first, const_iterator __last) { - for ( ; __first != __last; ++__first) - insert_unique(*__first); - } - void insert_unique(const value_type* __first, const value_type* __last) { - for ( ; __first != __last; ++__first) - insert_unique(*__first); - } - void insert_equal(const_iterator __first, const_iterator __last) { - for ( ; __first != __last; ++__first) - insert_equal(*__first); - } - void insert_equal(const value_type* __first, const value_type* __last) { - for ( ; __first != __last; ++__first) - insert_equal(*__first); - } -#endif - - void erase(iterator __pos) { - _Base_ptr __x = _Rb_global_inst::_Rebalance_for_erase(__pos._M_node, - this->_M_header._M_data._M_parent, - this->_M_header._M_data._M_left, - this->_M_header._M_data._M_right); - _STLP_STD::_Destroy(&_S_value(__x)); - this->_M_header.deallocate(__STATIC_CAST(_Link_type, __x), 1); - --_M_node_count; - } - - size_type erase(const key_type& __x) { - pair<iterator,iterator> __p = equal_range(__x); - size_type __n = distance(__p.first, __p.second); - erase(__p.first, __p.second); - return __n; - } - - size_type erase_unique(const key_type& __x) { - iterator __i = find(__x); - if (__i._M_node != &this->_M_header._M_data) { - erase(__i); - return 1; - } - return 0; - } - - void erase(iterator __first, iterator __last) { - if (__first._M_node == this->_M_header._M_data._M_left && // begin() - __last._M_node == &this->_M_header._M_data) // end() - clear(); - else - while (__first != __last) erase(__first++); - } - - void erase(const key_type* __first, const key_type* __last) { - while (__first != __last) erase(*__first++); - } - - void clear() { - if (_M_node_count != 0) { - _M_erase(_M_root()); - _M_leftmost() = &this->_M_header._M_data; - _M_root() = 0; - _M_rightmost() = &this->_M_header._M_data; - _M_node_count = 0; - } - } - -public: - // set operations: - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __k) { return iterator(_M_find(__k)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __k) const { return const_iterator(_M_find(__k)); } -private: - _STLP_TEMPLATE_FOR_CONT_EXT - _Base_ptr _M_find(const _KT& __k) const { - _Base_ptr __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); // Last node which is not less than __k. - _Base_ptr __x = _M_root(); // Current node. - - while (__x != 0) - if (!_M_key_compare(_S_key(__x), __k)) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - - if (__y != &this->_M_header._M_data) { - if (_M_key_compare(__k, _S_key(__y))) { - __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); - } - } - return __y; - } - - _STLP_TEMPLATE_FOR_CONT_EXT - _Base_ptr _M_lower_bound(const _KT& __k) const { - _Base_ptr __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); /* Last node which is not less than __k. */ - _Base_ptr __x = _M_root(); /* Current node. */ - - while (__x != 0) - if (!_M_key_compare(_S_key(__x), __k)) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - - return __y; - } - - _STLP_TEMPLATE_FOR_CONT_EXT - _Base_ptr _M_upper_bound(const _KT& __k) const { - _Base_ptr __y = __CONST_CAST(_Base_ptr, &this->_M_header._M_data); /* Last node which is greater than __k. */ - _Base_ptr __x = _M_root(); /* Current node. */ - - while (__x != 0) - if (_M_key_compare(__k, _S_key(__x))) - __y = __x, __x = _S_left(__x); - else - __x = _S_right(__x); - - return __y; - } - -public: - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const { - pair<const_iterator, const_iterator> __p = equal_range(__x); - return distance(__p.first, __p.second); - } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) { return iterator(_M_lower_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const { return const_iterator(_M_lower_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) { return iterator(_M_upper_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const { return const_iterator(_M_upper_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator,iterator> equal_range(const _KT& __x) - { return pair<iterator, iterator>(lower_bound(__x), upper_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __x) const - { return pair<const_iterator, const_iterator>(lower_bound(__x), upper_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator,iterator> equal_range_unique(const _KT& __x) { - pair<iterator, iterator> __p; - __p.second = lower_bound(__x); - if (__p.second._M_node != &this->_M_header._M_data && - !_M_key_compare(__x, _S_key(__p.second._M_node))) { - __p.first = __p.second++; - } - else { - __p.first = __p.second; - } - return __p; - } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range_unique(const _KT& __x) const { - pair<const_iterator, const_iterator> __p; - __p.second = lower_bound(__x); - if (__p.second._M_node != &this->_M_header._M_data && - !_M_key_compare(__x, _S_key(__p.second._M_node))) { - __p.first = __p.second++; - } - else { - __p.first = __p.second; - } - return __p; - } - -#if defined (_STLP_DEBUG) -public: - // Debugging. - bool __rb_verify() const; -#endif //_STLP_DEBUG -}; - -#if defined (_STLP_DEBUG) -# undef _Rb_tree -#endif - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_tree.c> -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_tree.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define _STLP_TEMPLATE_HEADER template <class _Key, class _Compare, class _Value, class _KeyOfValue, class _Traits, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER _STLP_PRIV _Rb_tree<_Key,_Compare,_Value,_KeyOfValue,_Traits,_Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Key, class _Compare, class _Value, class _KeyOfValue, class _Traits, class _Alloc> -struct __move_traits<_STLP_PRIV _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc> > - : _STLP_PRIV __move_traits_help2<_Compare, _Alloc> {}; -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_TREE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_typeinfo.h b/WebKit/android/stlport/stl/_typeinfo.h deleted file mode 100644 index 4e602fb..0000000 --- a/WebKit/android/stlport/stl/_typeinfo.h +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_INTERNAL_TYPEINFO -#define _STLP_INTERNAL_TYPEINFO - -#if !defined (_STLP_NO_TYPEINFO) - -# if defined (_STLP_NO_NEW_NEW_HEADER) -# include <typeinfo.h> -# else -# ifdef _STLP_BROKEN_BAD_CAST_CLASS -# define bad_cast _STLP_NULLIFIED_BROKEN_BAD_CAST_CLASS -# endif -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(typeinfo) -# ifdef _STLP_BROKEN_BAD_CAST_CLASS -# undef bad_cast -# undef _STLP_NULLIFIED_BROKEN_BAD_CAST_CLASS -# endif -# endif - -# if (defined(_STLP_MSVC) && (_STLP_MSVC >= 1300)) || (defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 800)) -// In .NET, <typeinfo> actually includes <typeinfo.h> -# undef _STLP_OLDSTD_typeinfo -# endif - -// if <typeinfo.h> already included, do not import anything -# if defined(_STLP_USE_NAMESPACES) && !defined(_STLP_OLDSTD_typeinfo) && \ - (defined(_STLP_VENDOR_GLOBAL_EXCEPT_STD) || \ - defined(_STLP_USE_OWN_NAMESPACE) || defined (_STLP_DEBUG)) -# if defined(_STLP_MSVC) && (_STLP_MSVC < 1300) && !defined(_STLP_WCE_NET) -class bad_cast : public exception {}; -# endif - -_STLP_BEGIN_NAMESPACE -// VC 6 and eVC 4 have type_info in the global namespace -# if (defined(_STLP_MSVC) && (_STLP_MSVC < 1300)) || defined(_STLP_WCE_NET) -using ::type_info; -# else -using _STLP_VENDOR_EXCEPT_STD::type_info; -# endif - -# if !(defined (__MRC__) || defined (__SC__) || defined (__DMC__)) -using _STLP_VENDOR_EXCEPT_STD::bad_typeid; -# endif - -//#if defined( __xlC__ ) && (__xlC__ < 0x500) -//# include <exception> -//struct bad_cast : exception {}; -//#endif -# if defined (_STLP_MSVC) && (_STLP_MSVC < 1300) && !defined (_STLP_WCE_NET) -using ::bad_cast; -# else -using _STLP_VENDOR_EXCEPT_STD::bad_cast; -# endif - -_STLP_END_NAMESPACE - -# endif - -#else - -# ifndef _STLP_INTERNAL_EXCEPTION -# include <stl/_exception.h> -# endif - -_STLP_BEGIN_NAMESPACE -# if !defined (__DMC__) -struct bad_cast : exception {}; -# endif -_STLP_END_NAMESPACE -#endif - -#endif diff --git a/WebKit/android/stlport/stl/_uninitialized.h b/WebKit/android/stlport/stl/_uninitialized.h deleted file mode 100644 index 5bf3578..0000000 --- a/WebKit/android/stlport/stl/_uninitialized.h +++ /dev/null @@ -1,437 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_UNINITIALIZED_H -#define _STLP_INTERNAL_UNINITIALIZED_H - -#ifndef _STLP_INTERNAL_CSTRING -# include <stl/_cstring.h> -#endif - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -// uninitialized_copy - -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __ucopy(_InputIter __first, _InputIter __last, - _OutputIter __result, _Distance*) { - _OutputIter __cur = __result; - _STLP_TRY { - for ( ; __first != __last; ++__first, ++__cur) - _Param_Construct(&*__cur, *__first); - return __cur; - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur)) - _STLP_RET_AFTER_THROW(__cur) -} - -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __ucopy(_InputIter __first, _InputIter __last, - _OutputIter __result, const input_iterator_tag &, _Distance* __d) -{ return __ucopy(__first, __last, __result, __d); } - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __ucopy(_InputIter __first, _InputIter __last, - _OutputIter __result, const forward_iterator_tag &, _Distance* __d) -{ return __ucopy(__first, __last, __result, __d); } - -template <class _InputIter, class _OutputIter, class _Distance> -inline _OutputIter __ucopy(_InputIter __first, _InputIter __last, - _OutputIter __result, const bidirectional_iterator_tag &, _Distance* __d) -{ return __ucopy(__first, __last, __result, __d); } -#endif - -template <class _RandomAccessIter, class _OutputIter, class _Distance> -inline _OutputIter __ucopy(_RandomAccessIter __first, _RandomAccessIter __last, - _OutputIter __result, const random_access_iterator_tag &, _Distance*) { - _OutputIter __cur = __result; - _STLP_TRY { - for (_Distance __n = __last - __first; __n > 0; --__n) { - _Param_Construct(&*__cur, *__first); - ++__first; - ++__cur; - } - return __cur; - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur)) - _STLP_RET_AFTER_THROW(__cur) -} - -//Used internaly -template <class _RandomAccessIter, class _OutputIter> -inline _OutputIter __ucopy(_RandomAccessIter __first, _RandomAccessIter __last, _OutputIter __result) -{ return __ucopy(__first, __last, __result, random_access_iterator_tag(), (ptrdiff_t*)0); } - -inline void* -__ucopy_trivial(const void* __first, const void* __last, void* __result) { - //dums: this version can use memcpy (__copy_trivial can't) - return (__last == __first) ? __result : - ((char*)memcpy(__result, __first, ((const char*)__last - (const char*)__first))) + - ((const char*)__last - (const char*)__first); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __ucopy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result, - const __false_type& /*TrivialUCopy*/) -{ return __ucopy(__first, __last, __result, random_access_iterator_tag(), (ptrdiff_t*)0); } - -template <class _InputIter, class _OutputIter> -inline _OutputIter __ucopy_ptrs(_InputIter __first, _InputIter __last, _OutputIter __result, - const __true_type& /*TrivialUCopy*/) { - // we know they all pointers, so this cast is OK - // return (_OutputIter)__copy_trivial(&(*__first), &(*__last), &(*__result)); - return (_OutputIter)__ucopy_trivial(__first, __last, __result); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __ucopy_aux(_InputIter __first, _InputIter __last, _OutputIter __result, - const __true_type& /*BothPtrType*/) { - return __ucopy_ptrs(__first, __last, __result, - _UseTrivialUCopy(_STLP_VALUE_TYPE(__first, _InputIter), - _STLP_VALUE_TYPE(__result, _OutputIter))._Answer()); -} - -template <class _InputIter, class _OutputIter> -inline _OutputIter __ucopy_aux(_InputIter __first, _InputIter __last, _OutputIter __result, - const __false_type& /*BothPtrType*/) { - return __ucopy(__first, __last, __result, - _STLP_ITERATOR_CATEGORY(__first, _InputIter), - _STLP_DISTANCE_TYPE(__first, _InputIter)); -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _ForwardIter> -inline _ForwardIter -uninitialized_copy(_InputIter __first, _InputIter __last, _ForwardIter __result) -{ return _STLP_PRIV __ucopy_aux(__first, __last, __result, _BothPtrType< _InputIter, _ForwardIter>::_Answer()); } - -inline char* -uninitialized_copy(const char* __first, const char* __last, char* __result) -{ return (char*)_STLP_PRIV __ucopy_trivial(__first, __last, __result); } - -# if defined (_STLP_HAS_WCHAR_T) // dwa 8/15/97 -inline wchar_t* -uninitialized_copy(const wchar_t* __first, const wchar_t* __last, wchar_t* __result) -{ return (wchar_t*)_STLP_PRIV __ucopy_trivial (__first, __last, __result); } -# endif - -// uninitialized_copy_n (not part of the C++ standard) -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter, class _Size, class _ForwardIter> -_STLP_INLINE_LOOP -pair<_InputIter, _ForwardIter> -__ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result, - const input_iterator_tag &) { - _ForwardIter __cur = __result; - _STLP_TRY { - for ( ; __count > 0 ; --__count, ++__first, ++__cur) - _Param_Construct(&*__cur, *__first); - return pair<_InputIter, _ForwardIter>(__first, __cur); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __cur)) - _STLP_RET_AFTER_THROW((pair<_InputIter, _ForwardIter>(__first, __cur))) -} - -# if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _InputIter, class _Size, class _ForwardIterator> -inline pair<_InputIter, _ForwardIterator> -__ucopy_n(_InputIter __first, _Size __count, - _ForwardIterator __result, - const forward_iterator_tag &) -{ return __ucopy_n(__first, __count, __result, input_iterator_tag()); } - -template <class _InputIter, class _Size, class _ForwardIterator> -inline pair<_InputIter, _ForwardIterator> -__ucopy_n(_InputIter __first, _Size __count, - _ForwardIterator __result, - const bidirectional_iterator_tag &) -{ return __ucopy_n(__first, __count, __result, input_iterator_tag()); } -# endif - -template <class _RandomAccessIter, class _Size, class _ForwardIter> -inline pair<_RandomAccessIter, _ForwardIter> -__ucopy_n(_RandomAccessIter __first, _Size __count, _ForwardIter __result, - const random_access_iterator_tag &) { - _RandomAccessIter __last = __first + __count; - return pair<_RandomAccessIter, _ForwardIter>(__last, uninitialized_copy(__first, __last, __result)); -} - -// This is used internally in <rope> , which is extension itself. -template <class _InputIter, class _Size, class _ForwardIter> -inline pair<_InputIter, _ForwardIter> -__ucopy_n(_InputIter __first, _Size __count, _ForwardIter __result) -{ return _STLP_PRIV __ucopy_n(__first, __count, __result, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); } - -#if !defined (_STLP_NO_EXTENSIONS) - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _InputIter, class _Size, class _ForwardIter> -inline pair<_InputIter, _ForwardIter> -uninitialized_copy_n(_InputIter __first, _Size __count, _ForwardIter __result) -{ return _STLP_PRIV __ucopy_n(__first, __count, __result); } - -_STLP_MOVE_TO_PRIV_NAMESPACE - -#endif - -template <class _ForwardIter, class _Tp, class _Distance> -inline void __ufill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x, _Distance*) { - _ForwardIter __cur = __first; - _STLP_TRY { - for ( ; __cur != __last; ++__cur) - _Param_Construct(&*__cur, __x); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first, __cur)) -} - -template <class _ForwardIter, class _Tp, class _Distance> -inline void __ufill(_ForwardIter __first, _ForwardIter __last, - const _Tp& __x, const input_iterator_tag &, _Distance* __d) -{ __ufill(__first, __last, __x, __d); } - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _ForwardIter, class _Tp, class _Distance> -inline void __ufill(_ForwardIter __first, _ForwardIter __last, - const _Tp& __x, const forward_iterator_tag &, _Distance* __d) -{ __ufill(__first, __last, __x, __d); } - -template <class _ForwardIter, class _Tp, class _Distance> -inline void __ufill(_ForwardIter __first, _ForwardIter __last, - const _Tp& __x, const bidirectional_iterator_tag &, _Distance* __d) -{ __ufill(__first, __last, __x, __d); } -#endif - -template <class _ForwardIter, class _Tp, class _Distance> -inline void __ufill(_ForwardIter __first, _ForwardIter __last, - const _Tp& __x, const random_access_iterator_tag &, _Distance*) { - _ForwardIter __cur = __first; - _STLP_TRY { - for (_Distance __n = __last - __first; __n > 0; --__n, ++__cur) - _Param_Construct(&*__cur, __x); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first, __cur)) -} - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter, class _Tp> -inline void uninitialized_fill(_ForwardIter __first, _ForwardIter __last, const _Tp& __x) { - _STLP_PRIV __ufill(__first, __last, __x, - _STLP_ITERATOR_CATEGORY(__first, _ForwardIter), - _STLP_DISTANCE_TYPE(__first, _ForwardIter)); -} - -// Specialization: for one-byte types we can use memset. -inline void uninitialized_fill(unsigned char* __first, unsigned char* __last, - const unsigned char& __val) { - unsigned char __tmp = __val; - memset(__first, __tmp, __last - __first); -} -#if !defined (_STLP_NO_SIGNED_BUILTINS) -inline void uninitialized_fill(signed char* __first, signed char* __last, - const signed char& __val) { - signed char __tmp = __val; - memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first); -} -#endif -inline void uninitialized_fill(char* __first, char* __last, const char& __val) { - char __tmp = __val; - memset(__first, __STATIC_CAST(unsigned char,__tmp), __last - __first); -} - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x) { - _ForwardIter __cur = __first; - _STLP_TRY { - for ( ; __n > 0; --__n, ++__cur) - _Param_Construct(&*__cur, __x); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first, __cur)) - return __cur; -} - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x, - const input_iterator_tag &) -{ return __ufill_n(__first, __n, __x); } - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x, - const forward_iterator_tag &) -{ return __ufill_n(__first, __n, __x); } - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x, - const bidirectional_iterator_tag &) -{ return __ufill_n(__first, __n, __x); } -#endif - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) { - _ForwardIter __last = __first + __n; - __ufill(__first, __last, __x, random_access_iterator_tag(), (ptrdiff_t*)0); - return __last; -} - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __ufill_n(_ForwardIter __first, _Size __n, const _Tp& __x, - const random_access_iterator_tag &) -{ return __uninitialized_fill_n(__first, __n, __x); } - -/* __uninitialized_init is an internal algo to init a range with a value - * built using default constructor. It is only called with pointer as - * iterator. - */ -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __uinit_aux_aux(_ForwardIter __first, _Size __n, const _Tp& __val, - const __false_type& /*_HasDefaultZero*/) -{ return __uninitialized_fill_n(__first, __n, __val); } - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __uinit_aux_aux(_ForwardIter __first, _Size __n, const _Tp& __val, - const __true_type& /*_HasDefaultZero*/) { - memset((unsigned char*)__first, 0, __n * sizeof(_Tp)); - return __first + __n; -} - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __uinit_aux(_ForwardIter __first, _Size __n, const _Tp&, - const __true_type& /*_TrivialInit*/) -{ return __first + __n; } - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __uinit_aux(_ForwardIter __first, _Size __n, const _Tp& __val, - const __false_type& /*_TrivialInit*/) -{ return __uinit_aux_aux(__first, __n, __val, _HasDefaultZeroValue(__first)._Answer()); } - -template <class _ForwardIter, class _Size, class _Tp> -inline _ForwardIter __uninitialized_init(_ForwardIter __first, _Size __n, const _Tp& __val) -{ return __uinit_aux(__first, __n, __val, _UseTrivialInit(__first)._Answer()); } - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _ForwardIter, class _Size, class _Tp> -inline void -uninitialized_fill_n(_ForwardIter __first, _Size __n, const _Tp& __x) -{ _STLP_PRIV __ufill_n(__first, __n, __x, _STLP_ITERATOR_CATEGORY(__first, _ForwardIter)); } - -// Extensions: __uninitialized_copy_copy, __uninitialized_copy_fill, -// __uninitialized_fill_copy. - -// __uninitialized_copy_copy -// Copies [first1, last1) into [result, result + (last1 - first1)), and -// copies [first2, last2) into -// [result + (last1 - first1), result + (last1 - first1) + (last2 - first2)). - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _InputIter1, class _InputIter2, class _ForwardIter> -inline _ForwardIter -__uninitialized_copy_copy(_InputIter1 __first1, _InputIter1 __last1, - _InputIter2 __first2, _InputIter2 __last2, - _ForwardIter __result) -{ return uninitialized_copy(__first2, __last2, uninitialized_copy(__first1, __last1, __result)); } - -// __uninitialized_fill_copy -// Fills [result, mid) with x, and copies [first, last) into -// [mid, mid + (last - first)). -template <class _ForwardIter, class _Tp, class _InputIter> -inline _ForwardIter -__uninitialized_fill_copy(_ForwardIter __result, _ForwardIter __mid, const _Tp& __x, - _InputIter __first, _InputIter __last) { - uninitialized_fill(__result, __mid, __x); - _STLP_TRY { - return uninitialized_copy(__first, __last, __mid); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__result, __mid)) - _STLP_RET_AFTER_THROW(__result) -} - -// __uninitialized_copy_fill -// Copies [first1, last1) into [first2, first2 + (last1 - first1)), and -// fills [first2 + (last1 - first1), last2) with x. -template <class _Iter, class _Tp> -inline void -__uninitialized_copy_fill(_Iter __first1, _Iter __last1, _Iter __first2, _Iter __last2, - const _Tp& __x) { - _Iter __mid2 = uninitialized_copy(__first1, __last1, __first2); - _STLP_TRY { - uninitialized_fill(__mid2, __last2, __x); - } - _STLP_UNWIND(_STLP_STD::_Destroy_Range(__first2, __mid2)) -} - -/* __uninitialized_move: - * This function is used internaly and only with pointers as iterators. - */ -template <class _InputIter, class _ForwardIter, class _TrivialUCpy> -inline _ForwardIter -__uninitialized_move(_InputIter __first, _InputIter __last, _ForwardIter __result, - _TrivialUCpy __trivial_ucpy, const __false_type& /*_Movable*/) -{ return __ucopy_ptrs(__first, __last, __result, __trivial_ucpy); } - -template <class _InputIter, class _ForwardIter, class _TrivialUCpy> -_STLP_INLINE_LOOP -_ForwardIter -__uninitialized_move(_InputIter __first, _InputIter __last, _ForwardIter __result, - _TrivialUCpy , const __true_type& /*_Movable*/) { - //Move constructor should not throw so we do not need to take care of exceptions here. - for (ptrdiff_t __n = __last - __first ; __n > 0; --__n) { - _Move_Construct(&*__result, *__first); - ++__first; ++__result; - } - return __result; -} - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_UNINITIALIZED_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_unordered_map.h b/WebKit/android/stlport/stl/_unordered_map.h deleted file mode 100644 index 3ad328d..0000000 --- a/WebKit/android/stlport/stl/_unordered_map.h +++ /dev/null @@ -1,427 +0,0 @@ -/* - * Copyright (c) 2004 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_UNORDERED_MAP_H -#define _STLP_INTERNAL_UNORDERED_MAP_H - -#ifndef _STLP_INTERNAL_HASHTABLE_H -# include <stl/_hashtable.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(UnorderedMapTraitsT, traits) - -template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>), - _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > -class unordered_map -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<unordered_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> > -#endif -{ -private: - typedef unordered_map<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self; -public: - typedef _Key key_type; - typedef _Tp data_type; - typedef _Tp mapped_type; -#if !defined (__DMC__) - typedef pair<const key_type, data_type> value_type; -#else - typedef pair<key_type, data_type> value_type; -#endif -private: - //Specific iterator traits creation - typedef _STLP_PRIV _UnorderedMapTraitsT<value_type> _UnorderedMapTraits; - -public: - typedef hashtable<value_type, key_type, _HashFcn, _UnorderedMapTraits, - _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht; - - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - typedef typename _Ht::local_iterator local_iterator; - typedef typename _Ht::const_local_iterator const_local_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_function() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - explicit unordered_map(size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} - - unordered_map(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - unordered_map(_InputIterator __f, _InputIterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -#else - unordered_map(const value_type* __f, const value_type* __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } - - unordered_map(const_iterator __f, const_iterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - - _Self& operator = (const _Self& __other) - { _M_ht = __other._M_ht; return *this; } - - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - - pair<iterator,bool> insert(const value_type& __obj) - { return _M_ht.insert_unique(__obj); } - iterator insert(const_iterator /*__hint*/, const value_type& __obj) - { return _M_ht.insert_unique(__obj); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) -#else - void insert(const value_type* __f, const value_type* __l) - { _M_ht.insert_unique(__f,__l); } - void insert(const_iterator __f, const_iterator __l) -#endif /*_STLP_MEMBER_TEMPLATES */ - { _M_ht.insert_unique(__f, __l); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - _Tp& operator[](const _KT& __key) { - iterator __it = _M_ht.find(__key); - return (__it == _M_ht.end() ? - _M_ht._M_insert(value_type(__key, _STLP_DEFAULT_CONSTRUCTED(_Tp))).second : - (*__it).second ); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - size_type erase(const key_type& __key) {return _M_ht.erase(__key); } - void erase(const_iterator __it) { _M_ht.erase(__it); } - void erase(const_iterator __f, const_iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type bucket_size(size_type __n) const { return _M_ht.elems_in_bucket(__n); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type bucket(const _KT& __k) const { return _M_ht.bucket(__k); } - local_iterator begin(size_type __n) { return _M_ht.begin(__n); } - local_iterator end(size_type __n) { return _M_ht.end(__n); } - const_local_iterator begin(size_type __n) const { return _M_ht.begin(__n); } - const_local_iterator end(size_type __n) const { return _M_ht.end(__n); } - - float load_factor() const { return _M_ht.load_factor(); } - float max_load_factor() const { return _M_ht.max_load_factor(); } - void max_load_factor(float __val) { _M_ht.max_load_factor(__val); } - void rehash(size_type __hint) { _M_ht.rehash(__hint); } -}; - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(UnorderedMultimapTraitsT, traits) - -template <class _Key, class _Tp, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Key>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Key>), - _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(const _Key, _Tp) > -class unordered_multimap -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<unordered_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> > -#endif -{ -private: - typedef unordered_multimap<_Key, _Tp, _HashFcn, _EqualKey, _Alloc> _Self; -public: - typedef _Key key_type; - typedef _Tp data_type; - typedef _Tp mapped_type; -#if !defined (__DMC__) - typedef pair<const key_type, data_type> value_type; -#else - typedef pair<key_type, data_type> value_type; -#endif -private: - //Specific iterator traits creation - typedef _STLP_PRIV _UnorderedMultimapTraitsT<value_type> _UnorderedMultimapTraits; - -public: - typedef hashtable<value_type, key_type, _HashFcn, _UnorderedMultimapTraits, - _STLP_SELECT1ST(value_type, _Key), _EqualKey, _Alloc > _Ht; - - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - typedef typename _Ht::local_iterator local_iterator; - typedef typename _Ht::const_local_iterator const_local_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_function() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - explicit unordered_multimap(size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} - - unordered_multimap(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - unordered_multimap(_InputIterator __f, _InputIterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -#else - unordered_multimap(const value_type* __f, const value_type* __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } - - unordered_multimap(const_iterator __f, const_iterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - - _Self& operator = (const _Self& __other) - { _M_ht = __other._M_ht; return *this; } - - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - - iterator insert(const value_type& __obj) - { return _M_ht.insert_equal(__obj); } - iterator insert(const_iterator /*__hint*/, const value_type& __obj) - { return _M_ht.insert_equal(__obj); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) -#else - void insert(const value_type* __f, const value_type* __l) - { _M_ht.insert_equal(__f,__l); } - void insert(const_iterator __f, const_iterator __l) -#endif /*_STLP_MEMBER_TEMPLATES */ - { _M_ht.insert_equal(__f, __l); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - size_type erase(const key_type& __key) {return _M_ht.erase(__key); } - void erase(const_iterator __it) { _M_ht.erase(__it); } - void erase(const_iterator __f, const_iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type bucket_size(size_type __n) const { return _M_ht.elems_in_bucket(__n); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type bucket(const _KT& __k) const { return _M_ht.bucket(__k); } - local_iterator begin(size_type __n) { return _M_ht.begin(__n); } - local_iterator end(size_type __n) { return _M_ht.end(__n); } - const_local_iterator begin(size_type __n) const { return _M_ht.begin(__n); } - const_local_iterator end(size_type __n) const { return _M_ht.end(__n); } - - float load_factor() const { return _M_ht.load_factor(); } - float max_load_factor() const { return _M_ht.max_load_factor(); } - void max_load_factor(float __val) { _M_ht.max_load_factor(__val); } - void rehash(size_type __hint) { _M_ht.rehash(__hint); } -}; - -#define _STLP_TEMPLATE_HEADER template <class _Key, class _Tp, class _HashFcn, class _EqlKey, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER unordered_map<_Key,_Tp,_HashFcn,_EqlKey,_Alloc> - -#include <stl/_relops_hash_cont.h> - -#undef _STLP_TEMPLATE_CONTAINER -#define _STLP_TEMPLATE_CONTAINER unordered_multimap<_Key,_Tp,_HashFcn,_EqlKey,_Alloc> - -#include <stl/_relops_hash_cont.h> - -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -// Specialization of insert_iterator so that it will work for unordered_map -// and unordered_multimap. - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -struct __move_traits<unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > : - _STLP_PRIV __move_traits_help<typename unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht> -{}; - -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -struct __move_traits<unordered_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > : - _STLP_PRIV __move_traits_help<typename unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc>::_Ht> -{}; - -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -class insert_iterator<unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> > { -protected: - typedef unordered_map<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container; - _Container* container; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; - -template <class _Key, class _Tp, class _HashFn, class _EqKey, class _Alloc> -class insert_iterator<unordered_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> > { -protected: - typedef unordered_multimap<_Key, _Tp, _HashFn, _EqKey, _Alloc> _Container; - _Container* container; - typename _Container::iterator iter; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; - -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_UNORDERED_MAP_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_unordered_set.h b/WebKit/android/stlport/stl/_unordered_set.h deleted file mode 100644 index bcd662d..0000000 --- a/WebKit/android/stlport/stl/_unordered_set.h +++ /dev/null @@ -1,398 +0,0 @@ -/* - * Copyright (c) 2004 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_UNORDERED_SET_H -#define _STLP_INTERNAL_UNORDERED_SET_H - -#ifndef _STLP_INTERNAL_HASHTABLE_H -# include <stl/_hashtable.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(UnorderedSetTraitsT, Const_traits) - -template <class _Value, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Value>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Value>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Value) > -class unordered_set -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<unordered_set<_Value, _HashFcn, _EqualKey, _Alloc> > -#endif -{ - typedef unordered_set<_Value, _HashFcn, _EqualKey, _Alloc> _Self; - //Specific iterator traits creation - typedef _STLP_PRIV _UnorderedSetTraitsT<_Value> _UnorderedSetTraits; -public: - typedef hashtable<_Value, _Value, _HashFcn, - _UnorderedSetTraits, _STLP_PRIV _Identity<_Value>, _EqualKey, _Alloc> _Ht; -public: - typedef typename _Ht::key_type key_type; - typedef typename _Ht::value_type value_type; - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - typedef typename _Ht::local_iterator local_iterator; - typedef typename _Ht::const_local_iterator const_local_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_function() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - explicit unordered_set(size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} - - unordered_set(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - unordered_set(_InputIterator __f, _InputIterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -#else - unordered_set(const value_type* __f, const value_type* __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } - - unordered_set(const_iterator __f, const_iterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_unique(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - - _Self& operator = (const _Self& __other) - { _M_ht = __other._M_ht; return *this; } - - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& __hs) { _M_ht.swap(__hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - - pair<iterator, bool> insert(const value_type& __obj) - { return _M_ht.insert_unique(__obj); } - iterator insert(const_iterator /*__hint*/, const value_type& __obj) - { return _M_ht.insert_unique(__obj); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) -#else - void insert(const_iterator __f, const_iterator __l) - {_M_ht.insert_unique(__f, __l); } - void insert(const value_type* __f, const value_type* __l) -#endif - { _M_ht.insert_unique(__f,__l); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - size_type erase(const key_type& __key) {return _M_ht.erase(__key); } - void erase(const_iterator __it) { _M_ht.erase(__it); } - void erase(const_iterator __f, const_iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type bucket_size(size_type __n) const { return _M_ht.elems_in_bucket(__n); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type bucket(const _KT& __k) const { return _M_ht.bucket(__k); } - local_iterator begin(size_type __n) { return _M_ht.begin(__n); } - local_iterator end(size_type __n) { return _M_ht.end(__n); } - const_local_iterator begin(size_type __n) const { return _M_ht.begin(__n); } - const_local_iterator end(size_type __n) const { return _M_ht.end(__n); } - - float load_factor() const { return _M_ht.load_factor(); } - float max_load_factor() const { return _M_ht.max_load_factor(); } - void max_load_factor(float __val) { _M_ht.max_load_factor(__val); } - void rehash(size_type __hint) { _M_ht.rehash(__hint); } -}; - -//Specific iterator traits creation -_STLP_CREATE_HASH_ITERATOR_TRAITS(UnorderedMultisetTraitsT, Const_traits) - -template <class _Value, _STLP_DFL_TMPL_PARAM(_HashFcn,hash<_Value>), - _STLP_DFL_TMPL_PARAM(_EqualKey,equal_to<_Value>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Value) > -class unordered_multiset -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<unordered_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > -#endif -{ - typedef unordered_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Self; - //Specific iterator traits creation - typedef _STLP_PRIV _UnorderedMultisetTraitsT<_Value> _UnorderedMultisetTraits; -public: - typedef hashtable<_Value, _Value, _HashFcn, - _UnorderedMultisetTraits, _STLP_PRIV _Identity<_Value>, _EqualKey, _Alloc> _Ht; - - typedef typename _Ht::key_type key_type; - typedef typename _Ht::value_type value_type; - typedef typename _Ht::hasher hasher; - typedef typename _Ht::key_equal key_equal; - - typedef typename _Ht::size_type size_type; - typedef typename _Ht::difference_type difference_type; - typedef typename _Ht::pointer pointer; - typedef typename _Ht::const_pointer const_pointer; - typedef typename _Ht::reference reference; - typedef typename _Ht::const_reference const_reference; - - typedef typename _Ht::iterator iterator; - typedef typename _Ht::const_iterator const_iterator; - typedef typename _Ht::local_iterator local_iterator; - typedef typename _Ht::const_local_iterator const_local_iterator; - - typedef typename _Ht::allocator_type allocator_type; - - hasher hash_function() const { return _M_ht.hash_funct(); } - key_equal key_eq() const { return _M_ht.key_eq(); } - allocator_type get_allocator() const { return _M_ht.get_allocator(); } - -private: - _Ht _M_ht; - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - explicit unordered_multiset(size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) {} - - unordered_multiset(__move_source<_Self> src) - : _M_ht(__move_source<_Ht>(src.get()._M_ht)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - unordered_multiset(_InputIterator __f, _InputIterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -#else - unordered_multiset(const value_type* __f, const value_type* __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } - - unordered_multiset(const_iterator __f, const_iterator __l, - size_type __n = 100, const hasher& __hf = hasher(), - const key_equal& __eql = key_equal(), - const allocator_type& __a = allocator_type()) - : _M_ht(__n, __hf, __eql, __a) - { _M_ht.insert_equal(__f, __l); } -#endif /*_STLP_MEMBER_TEMPLATES */ - - _Self& operator = (const _Self& __other) - { _M_ht = __other._M_ht; return *this; } - - size_type size() const { return _M_ht.size(); } - size_type max_size() const { return _M_ht.max_size(); } - bool empty() const { return _M_ht.empty(); } - void swap(_Self& hs) { _M_ht.swap(hs._M_ht); } - - iterator begin() { return _M_ht.begin(); } - iterator end() { return _M_ht.end(); } - const_iterator begin() const { return _M_ht.begin(); } - const_iterator end() const { return _M_ht.end(); } - - iterator insert(const value_type& __obj) - { return _M_ht.insert_equal(__obj); } - iterator insert(const_iterator /*__hint*/, const value_type& __obj) - { return _M_ht.insert_equal(__obj); } -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __f, _InputIterator __l) -#else - void insert(const value_type* __f, const value_type* __l) - { _M_ht.insert_equal(__f,__l); } - void insert(const_iterator __f, const_iterator __l) -#endif /*_STLP_MEMBER_TEMPLATES */ - { _M_ht.insert_equal(__f, __l); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) { return _M_ht.find(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const { return _M_ht.find(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_ht.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) - { return _M_ht.equal_range(__key); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const - { return _M_ht.equal_range(__key); } - - size_type erase(const key_type& __key) {return _M_ht.erase(__key); } - void erase(const_iterator __it) { _M_ht.erase(__it); } - void erase(const_iterator __f, const_iterator __l) { _M_ht.erase(__f, __l); } - void clear() { _M_ht.clear(); } - - size_type bucket_count() const { return _M_ht.bucket_count(); } - size_type max_bucket_count() const { return _M_ht.max_bucket_count(); } - size_type bucket_size(size_type __n) const { return _M_ht.elems_in_bucket(__n); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type bucket(const _KT& __k) const { return _M_ht.bucket(__k); } - local_iterator begin(size_type __n) { return _M_ht.begin(__n); } - local_iterator end(size_type __n) { return _M_ht.end(__n); } - const_local_iterator begin(size_type __n) const { return _M_ht.begin(__n); } - const_local_iterator end(size_type __n) const { return _M_ht.end(__n); } - - float load_factor() const { return _M_ht.load_factor(); } - float max_load_factor() const { return _M_ht.max_load_factor(); } - void max_load_factor(float __val) { _M_ht.max_load_factor(__val); } - void rehash(size_type __hint) { _M_ht.rehash(__hint); } -}; - -#define _STLP_TEMPLATE_HEADER template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER unordered_set<_Value,_HashFcn,_EqualKey,_Alloc> - -#include <stl/_relops_hash_cont.h> - -#undef _STLP_TEMPLATE_CONTAINER -#define _STLP_TEMPLATE_CONTAINER unordered_multiset<_Value,_HashFcn,_EqualKey,_Alloc> -#include <stl/_relops_hash_cont.h> - -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -// Specialization of insert_iterator so that it will work for unordered_set -// and unordered_multiset. - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -struct __move_traits<unordered_set<_Value, _HashFcn, _EqualKey, _Alloc> > : - _STLP_PRIV __move_traits_aux<typename unordered_set<_Value, _HashFcn, _EqualKey, _Alloc>::_Ht> -{}; - -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -struct __move_traits<unordered_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > : - _STLP_PRIV __move_traits_aux<typename unordered_multiset<_Value, _HashFcn, _EqualKey, _Alloc>::_Ht> -{}; - -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -class insert_iterator<unordered_set<_Value, _HashFcn, _EqualKey, _Alloc> > { -protected: - typedef unordered_set<_Value, _HashFcn, _EqualKey, _Alloc> _Container; - _Container* container; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; - -template <class _Value, class _HashFcn, class _EqualKey, class _Alloc> -class insert_iterator<unordered_multiset<_Value, _HashFcn, _EqualKey, _Alloc> > { -protected: - typedef unordered_multiset<_Value, _HashFcn, _EqualKey, _Alloc> _Container; - _Container* container; - typename _Container::iterator iter; -public: - typedef _Container container_type; - typedef output_iterator_tag iterator_category; - typedef void value_type; - typedef void difference_type; - typedef void pointer; - typedef void reference; - - insert_iterator(_Container& __x) : container(&__x) {} - insert_iterator(_Container& __x, typename _Container::iterator) - : container(&__x) {} - insert_iterator<_Container>& - operator=(const typename _Container::value_type& __val) { - container->insert(__val); - return *this; - } - insert_iterator<_Container>& operator*() { return *this; } - insert_iterator<_Container>& operator++() { return *this; } - insert_iterator<_Container>& operator++(int) { return *this; } -}; -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_UNORDERED_SET_H */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/stl/_valarray.c b/WebKit/android/stlport/stl/_valarray.c deleted file mode 100644 index c841a43..0000000 --- a/WebKit/android/stlport/stl/_valarray.c +++ /dev/null @@ -1,196 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_VALARRAY_C -#define _STLP_VALARRAY_C - -#ifndef _STLP_VALARRAY_H -# include <stl/_valarray.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp> -_Valarray_bool valarray<_Tp>:: operator!() const { - _Valarray_bool __tmp(this->size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < this->size(); ++__i) - __tmp[__i] = !(*this)[__i]; - return __tmp; -} - -// Behavior is undefined if __x and *this have different sizes -template <class _Tp> -valarray<_Tp>& valarray<_Tp>::operator=(const slice_array<_Tp>& __x) -{ - size_t __index = __x._M_slice.start(); - for (size_t __i = 0; - __i < __x._M_slice.size(); - ++__i, __index += __x._M_slice.stride()) - (*this)[__i] = __x._M_array[__index]; - return *this; -} - -template <class _Tp> -valarray<_Tp> valarray<_Tp>::operator[](slice __slice) const { - valarray<_Tp> __tmp(__slice.size(), _NoInit()); - size_t __index = __slice.start(); - for (size_t __i = 0; - __i < __slice.size(); - ++__i, __index += __slice.stride()) - __tmp[__i] = (*this)[__index]; - return __tmp; -} - -template <class _Size> -bool _Gslice_Iter_tmpl<_Size>::_M_incr() { - size_t __dim = _M_indices.size() - 1; - ++_M_step; - for (;;) { - _M_1d_idx += _M_gslice._M_strides[__dim]; - if (++_M_indices[__dim] != _M_gslice._M_lengths[__dim]) - return true; - else if (__dim != 0) { - _M_1d_idx -= _M_gslice._M_strides[__dim] * _M_gslice._M_lengths[__dim]; - _M_indices[__dim] = 0; - --__dim; - } - else - return false; - } -} - -// Behavior is undefined if __x and *this have different sizes, or if -// __x was constructed from a degenerate gslice. -template <class _Tp> -valarray<_Tp>& valarray<_Tp>::operator=(const gslice_array<_Tp>& __x) -{ - if (this->size() != 0) { - _Gslice_Iter __i(__x._M_gslice); - do - (*this)[__i._M_step] = __x._M_array[__i._M_1d_idx]; - while(__i._M_incr()); - } - return *this; -} - -template <class _Tp> -valarray<_Tp> valarray<_Tp>::operator[](const gslice& __slice) const -{ - valarray<_Tp> __tmp(__slice._M_size(), _NoInit()); - if (__tmp.size() != 0) { - _Gslice_Iter __i(__slice); - do __tmp[__i._M_step] = (*this)[__i._M_1d_idx]; while(__i._M_incr()); - } - return __tmp; -} - -template <class _Tp> -valarray<_Tp> valarray<_Tp>::operator[](const _Valarray_bool& __mask) const -{ - size_t _p_size = 0; - { - for (size_t __i = 0; __i < __mask.size(); ++__i) - if (__mask[__i]) ++_p_size; - } - - valarray<_Tp> __tmp(_p_size, _NoInit()); - size_t __idx = 0; - { - for (size_t __i = 0; __i < __mask.size(); ++__i) - if (__mask[__i]) __tmp[__idx++] = (*this)[__i]; - } - - return __tmp; -} - -template <class _Tp> -valarray<_Tp>& valarray<_Tp>::operator=(const indirect_array<_Tp>& __x) { - for (size_t __i = 0; __i < __x._M_addr.size(); ++__i) - (*this)[__i] = __x._M_array[__x._M_addr[__i]]; - return *this; -} - -template <class _Tp> -valarray<_Tp> -valarray<_Tp>::operator[](const _Valarray_size_t& __addr) const -{ - valarray<_Tp> __tmp(__addr.size(), _NoInit()); - for (size_t __i = 0; __i < __addr.size(); ++__i) - __tmp[__i] = (*this)[__addr[__i]]; - return __tmp; -} - -//---------------------------------------------------------------------- -// Other valarray noninline member functions - -// Shift and cshift - -template <class _Tp> -valarray<_Tp> valarray<_Tp>::shift(int __n) const -{ - valarray<_Tp> __tmp(this->size()); - - if (__n >= 0) { - if (__n < this->size()) - copy(this->_M_first + __n, this->_M_first + this->size(), - __tmp._M_first); - } - else { - if (-__n < this->size()) - copy(this->_M_first, this->_M_first + this->size() + __n, - __tmp._M_first - __n); - } - return __tmp; -} - -template <class _Tp> -valarray<_Tp> valarray<_Tp>::cshift(int __m) const -{ - valarray<_Tp> __tmp(this->size()); - - // Reduce __m to an equivalent number in the range [0, size()). We - // have to be careful with negative numbers, since the sign of a % b - // is unspecified when a < 0. - long __n = __m; - if (this->size() < (numeric_limits<long>::max)()) - __n %= long(this->size()); - if (__n < 0) - __n += this->size(); - - copy(this->_M_first, this->_M_first + __n, - __tmp._M_first + (this->size() - __n)); - copy(this->_M_first + __n, this->_M_first + this->size(), - __tmp._M_first); - - return __tmp; -} - -_STLP_END_NAMESPACE - -#endif /* _STLP_VALARRAY_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_valarray.h b/WebKit/android/stlport/stl/_valarray.h deleted file mode 100644 index 037c5b9..0000000 --- a/WebKit/android/stlport/stl/_valarray.h +++ /dev/null @@ -1,1665 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_VALARRAY_H -#define _STLP_VALARRAY_H - -#ifndef _STLP_INTERNAL_CMATH -# include <stl/_cmath.h> -#endif - -#ifndef _STLP_INTERNAL_NEW -# include <stl/_new.h> -#endif - -#ifndef _STLP_INTERNAL_ALGO_H -# include <stl/_algo.h> -#endif - -#ifndef _STLP_INTERNAL_NUMERIC_H -# include <stl/_numeric.h> -#endif - -#ifndef _STLP_INTERNAL_LIMITS -# include <stl/_limits.h> -#endif - -/* As we only need the _STLP_ASSERT macro from _debug.h we test it to include _debug.h */ -#ifndef _STLP_ASSERT -# include <stl/debug/_debug.h> -#endif - -_STLP_BEGIN_NAMESPACE - -class slice; -class gslice; - -template <class _Tp> class valarray; -typedef valarray<bool> _Valarray_bool; -typedef valarray<size_t> _Valarray_size_t; - -template <class _Tp> class slice_array; -template <class _Tp> class gslice_array; -template <class _Tp> class mask_array; -template <class _Tp> class indirect_array; - -//---------------------------------------------------------------------- -// class valarray - -// Base class to handle memory allocation and deallocation. We can't just -// use vector<>, because vector<bool> would be unsuitable as an internal -// representation for valarray<bool>. - -template <class _Tp> -struct _Valarray_base -{ - _Tp* _M_first; - size_t _M_size; - - _Valarray_base() : _M_first(0), _M_size(0) {} - _Valarray_base(size_t __n) : _M_first(0), _M_size(0) { _M_allocate(__n); } - ~_Valarray_base() { _M_deallocate(); } - - void _M_allocate(size_t __n) { - if (__n != 0) { - _M_first = __STATIC_CAST(_Tp*, (malloc(__n * sizeof(_Tp)))); - _M_size = __n; -#if !defined(_STLP_NO_BAD_ALLOC) && defined(_STLP_USE_EXCEPTIONS) - if (_M_first == 0) { - _M_size = 0; - throw _STLP_STD::bad_alloc(); - } -#endif - } - else { - _M_first = 0; - _M_size = 0; - } - } - - void _M_deallocate() { - free(_M_first); - _M_first = 0; - _M_size = 0; - } -}; - -template <class _Tp> -class valarray : private _Valarray_base<_Tp> -{ - friend class gslice; - -public: - typedef _Tp value_type; - - // Basic constructors - valarray() : _Valarray_base<_Tp>() {} - explicit valarray(size_t __n) : _Valarray_base<_Tp>(__n) - { uninitialized_fill_n(this->_M_first, this->_M_size, _STLP_DEFAULT_CONSTRUCTED(value_type)); } - valarray(const value_type& __x, size_t __n) : _Valarray_base<_Tp>(__n) - { uninitialized_fill_n(this->_M_first, this->_M_size, __x); } - valarray(const value_type* __p, size_t __n) : _Valarray_base<_Tp>(__n) - { uninitialized_copy(__p, __p + __n, this->_M_first); } - valarray(const valarray<_Tp>& __x) : _Valarray_base<_Tp>(__x._M_size) { - uninitialized_copy(__x._M_first, __x._M_first + __x._M_size, - this->_M_first); - } - - // Constructors from auxiliary array types - valarray(const slice_array<_Tp>&); - valarray(const gslice_array<_Tp>&); - valarray(const mask_array<_Tp>&); - valarray(const indirect_array<_Tp>&); - - // Destructor - ~valarray() { _STLP_STD::_Destroy_Range(this->_M_first, this->_M_first + this->_M_size); } - - // Extension: constructor that doesn't initialize valarray elements to a - // specific value. This is faster for types such as int and double. -private: - void _M_initialize(const __true_type&) {} - void _M_initialize(const __false_type&) - { uninitialized_fill_n(this->_M_first, this->_M_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } - -public: - struct _NoInit {}; - valarray(size_t __n, _NoInit) : _Valarray_base<_Tp>(__n) { - typedef typename __type_traits<_Tp>::has_trivial_default_constructor _Is_Trivial; - _M_initialize(_Is_Trivial()); - } - -public: // Assignment - // Basic assignment. Note that 'x = y' is undefined if x.size() != y.size() - valarray<_Tp>& operator=(const valarray<_Tp>& __x) { - _STLP_ASSERT(__x.size() == this->size()) - if (this != &__x) - copy(__x._M_first, __x._M_first + __x._M_size, this->_M_first); - return *this; - } - - // Scalar assignment - valarray<_Tp>& operator=(const value_type& __x) { - fill_n(this->_M_first, this->_M_size, __x); - return *this; - } - - // Assignment of auxiliary array types - valarray<_Tp>& operator=(const slice_array<_Tp>&); - valarray<_Tp>& operator=(const gslice_array<_Tp>&); - valarray<_Tp>& operator=(const mask_array<_Tp>&); - valarray<_Tp>& operator=(const indirect_array<_Tp>&); - -public: // Element access - value_type operator[](size_t __n) const { return this->_M_first[__n]; } - value_type& operator[](size_t __n) { return this->_M_first[__n]; } - size_t size() const { return this->_M_size; } - -public: // Subsetting operations with auxiliary type - valarray<_Tp> operator[](slice) const; - slice_array<_Tp> operator[](slice); - valarray<_Tp> operator[](const gslice&) const; - gslice_array<_Tp> operator[](const gslice&); - valarray<_Tp> operator[](const _Valarray_bool&) const; - mask_array<_Tp> operator[](const _Valarray_bool&); - valarray<_Tp> operator[](const _Valarray_size_t&) const; - indirect_array<_Tp> operator[](const _Valarray_size_t&); - -public: // Unary operators. - valarray<_Tp> operator+() const { return *this; } - - valarray<_Tp> operator-() const { - valarray<_Tp> __tmp(this->size(), _NoInit()); - for (size_t __i = 0; __i < this->size(); ++__i) - __tmp[__i] = -(*this)[__i]; - return __tmp; - } - - valarray<_Tp> operator~() const { - valarray<_Tp> __tmp(this->size(), _NoInit()); - for (size_t __i = 0; __i < this->size(); ++__i) - __tmp[__i] = ~(*this)[__i]; - return __tmp; - } - - _Valarray_bool operator!() const; - -public: // Scalar computed assignment. - valarray<_Tp>& operator*= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] *= __x; - return *this; - } - - valarray<_Tp>& operator/= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] /= __x; - return *this; - } - - valarray<_Tp>& operator%= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] %= __x; - return *this; - } - - valarray<_Tp>& operator+= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] += __x; - return *this; - } - - valarray<_Tp>& operator-= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] -= __x; - return *this; - } - - valarray<_Tp>& operator^= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] ^= __x; - return *this; - } - - valarray<_Tp>& operator&= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] &= __x; - return *this; - } - - valarray<_Tp>& operator|= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] |= __x; - return *this; - } - - valarray<_Tp>& operator<<= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] <<= __x; - return *this; - } - - valarray<_Tp>& operator>>= (const value_type& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] >>= __x; - return *this; - } - -public: // Array computed assignment. - valarray<_Tp>& operator*= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] *= __x[__i]; - return *this; - } - - valarray<_Tp>& operator/= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] /= __x[__i]; - return *this; - } - - valarray<_Tp>& operator%= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] %= __x[__i]; - return *this; - } - - valarray<_Tp>& operator+= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] += __x[__i]; - return *this; - } - - valarray<_Tp>& operator-= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] -= __x[__i]; - return *this; - } - - valarray<_Tp>& operator^= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] ^= __x[__i]; - return *this; - } - - valarray<_Tp>& operator&= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] &= __x[__i]; - return *this; - } - - valarray<_Tp>& operator|= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] |= __x[__i]; - return *this; - } - - valarray<_Tp>& operator<<= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] <<= __x[__i]; - return *this; - } - - valarray<_Tp>& operator>>= (const valarray<_Tp>& __x) { - for (size_t __i = 0; __i < this->size(); ++__i) - (*this)[__i] >>= __x[__i]; - return *this; - } - -public: // Other member functions. - - // The result is undefined for zero-length arrays - value_type sum() const { - return accumulate(this->_M_first + 1, this->_M_first + this->_M_size, - (*this)[0]); - } - - // The result is undefined for zero-length arrays - value_type (min) () const { - return *min_element(this->_M_first + 0, this->_M_first + this->_M_size); - } - - value_type (max) () const { - return *max_element(this->_M_first + 0, this->_M_first + this->_M_size); - } - - valarray<_Tp> shift(int __n) const; - valarray<_Tp> cshift(int __n) const; - - valarray<_Tp> apply(value_type __f(value_type)) const { - valarray<_Tp> __tmp(this->size()); - transform(this->_M_first + 0, this->_M_first + this->_M_size, __tmp._M_first, - __f); - return __tmp; - } - valarray<_Tp> apply(value_type __f(const value_type&)) const { - valarray<_Tp> __tmp(this->size()); - transform(this->_M_first + 0, this->_M_first + this->_M_size, __tmp._M_first, - __f); - return __tmp; - } - - void resize(size_t __n, value_type __x = value_type()) { - _STLP_STD::_Destroy_Range(this->_M_first, this->_M_first + this->_M_size); - _Valarray_base<_Tp>::_M_deallocate(); - _Valarray_base<_Tp>::_M_allocate(__n); - uninitialized_fill_n(this->_M_first, this->_M_size, __x); - } -}; - -//---------------------------------------------------------------------- -// valarray non-member functions. - -// Binary arithmetic operations between two arrays. Behavior is -// undefined if the two arrays do not have the same length. - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator*(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] * __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator/(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] / __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator%(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] % __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator+(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] + __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator-(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] - __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator^(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] ^ __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator&(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] & __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator|(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] | __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator<<(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] << __y[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator>>(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] >> __y[__i]; - return __tmp; -} - -// Binary arithmetic operations between an array and a scalar. - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator*(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] * __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator*(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c * __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator/(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] / __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator/(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c / __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator%(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] % __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator%(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c % __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator+(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] + __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator+(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c + __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator-(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] - __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator-(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c - __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator^(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] ^ __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator^(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c ^ __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator&(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] & __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator&(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c & __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator|(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] | __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator|(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c | __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator<<(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] << __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator<<(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c << __x[__i]; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator>>(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] >> __c; - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> _STLP_CALL operator>>(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c >> __x[__i]; - return __tmp; -} - -// Binary logical operations between two arrays. Behavior is undefined -// if the two arrays have different lengths. Note that operator== does -// not do what you might at first expect. - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator==(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] == __y[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator<(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] < __y[__i]; - return __tmp; -} - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator!=(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] != __y[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator>(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] > __y[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator<=(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] <= __y[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator>=(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] >= __y[__i]; - return __tmp; -} - -#endif /* _STLP_USE_SEPARATE_RELOPS_NAMESPACE */ -// fbp : swap ? - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator&&(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] && __y[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator||(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] || __y[__i]; - return __tmp; -} - -// Logical operations between an array and a scalar. - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator==(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] == __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator==(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c == __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator!=(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] != __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator!=(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c != __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator<(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] < __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator<(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c < __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator>(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] > __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator>(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c > __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator<=(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] <= __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator<=(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c <= __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator>=(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] >= __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator>=(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c >= __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator&&(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] && __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator&&(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c && __x[__i]; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator||(const valarray<_Tp>& __x, const _Tp& __c) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __x[__i] || __c; - return __tmp; -} - -template <class _Tp> -inline _Valarray_bool _STLP_CALL operator||(const _Tp& __c, const valarray<_Tp>& __x) -{ - _Valarray_bool __tmp(__x.size(), _Valarray_bool::_NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = __c || __x[__i]; - return __tmp; -} - -// valarray "transcendentals" (the list includes abs and sqrt, which, -// of course, are not transcendental). - -template <class _Tp> -inline valarray<_Tp> abs(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::abs(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> acos(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::acos(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> asin(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::asin(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> atan(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::atan(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> atan2(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::atan2(__x[__i], __y[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> atan2(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::atan2(__x[__i], __c); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> atan2(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::atan2(__c, __x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> cos(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::cos(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> cosh(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::cosh(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> exp(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::exp(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> log(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::log(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> log10(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::log10(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> pow(const valarray<_Tp>& __x, - const valarray<_Tp>& __y) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::pow(__x[__i], __y[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> pow(const valarray<_Tp>& __x, const _Tp& __c) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::pow(__x[__i], __c); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> pow(const _Tp& __c, const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::pow(__c, __x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> sin(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::sin(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> sinh(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::sinh(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> sqrt(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::sqrt(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> tan(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::tan(__x[__i]); - return __tmp; -} - -template <class _Tp> -inline valarray<_Tp> tanh(const valarray<_Tp>& __x) { - typedef typename valarray<_Tp>::_NoInit _NoInit; - valarray<_Tp> __tmp(__x.size(), _NoInit()); - for (size_t __i = 0; __i < __x.size(); ++__i) - __tmp[__i] = ::tanh(__x[__i]); - return __tmp; -} - -//---------------------------------------------------------------------- -// slice and slice_array - -class slice { -public: - slice() : _M_start(0), _M_length(0), _M_stride(0) {} - slice(size_t __start, size_t __length, size_t __stride) - : _M_start(__start), _M_length(__length), _M_stride(__stride) - {} - __TRIVIAL_DESTRUCTOR(slice) - - size_t start() const { return _M_start; } - size_t size() const { return _M_length; } - size_t stride() const { return _M_stride; } - -private: - size_t _M_start; - size_t _M_length; - size_t _M_stride; -}; - -template <class _Tp> -class slice_array { - friend class valarray<_Tp>; -public: - typedef _Tp value_type; - - void operator=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] = __x[__i]; - } - - void operator*=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] *= __x[__i]; - } - - void operator/=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] /= __x[__i]; - } - - void operator%=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] %= __x[__i]; - } - - void operator+=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] += __x[__i]; - } - - void operator-=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] -= __x[__i]; - } - - void operator^=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] ^= __x[__i]; - } - - void operator&=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] &= __x[__i]; - } - - void operator|=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] |= __x[__i]; - } - - void operator<<=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] <<= __x[__i]; - } - - void operator>>=(const valarray<value_type>& __x) const { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] >>= __x[__i]; - } - - void operator=(const value_type& __c) /*const could be const but standard says NO (26.3.5.4-1)*/ { - size_t __index = _M_slice.start(); - for (size_t __i = 0; - __i < _M_slice.size(); - ++__i, __index += _M_slice.stride()) - _M_array[__index] = __c; - } - - ~slice_array() {} - -private: - slice_array(const slice& __slice, valarray<_Tp>& __array) - : _M_slice(__slice), _M_array(__array) - {} - - slice _M_slice; - valarray<_Tp>& _M_array; - -private: // Disable assignment and default constructor - slice_array(); - slice_array(const slice_array&); - slice_array& operator=(const slice_array&); -}; - -// valarray member functions dealing with slice and slice_array - -template <class _Tp> -inline valarray<_Tp>::valarray(const slice_array<_Tp>& __x) - : _Valarray_base<_Tp>(__x._M_slice.size()) { - typedef typename __type_traits<_Tp>::has_trivial_default_constructor - _Is_Trivial; - _M_initialize(_Is_Trivial()); - *this = __x; -} - - -template <class _Tp> -inline slice_array<_Tp> valarray<_Tp>::operator[](slice __slice) { - return slice_array<_Tp>(__slice, *this); -} - -//---------------------------------------------------------------------- -// gslice and gslice_array - -template <class _Size> -struct _Gslice_Iter_tmpl; - -class gslice { - friend struct _Gslice_Iter_tmpl<size_t>; -public: - gslice() : _M_start(0), _M_lengths(0), _M_strides(0) {} - gslice(size_t __start, - const _Valarray_size_t& __lengths, const _Valarray_size_t& __strides) - : _M_start(__start), _M_lengths(__lengths), _M_strides(__strides) - {} - __TRIVIAL_DESTRUCTOR(gslice) - - size_t start() const { return _M_start; } - _Valarray_size_t size() const { return _M_lengths; } - _Valarray_size_t stride() const { return _M_strides; } - - // Extension: check for an empty gslice. - bool _M_empty() const { return _M_lengths.size() == 0; } - - // Extension: number of indices this gslice represents. (For a degenerate - // gslice, they're not necessarily all distinct.) - size_t _M_size() const { - return !this->_M_empty() - ? accumulate(_M_lengths._M_first + 1, - _M_lengths._M_first + _M_lengths._M_size, - _M_lengths[0], - multiplies<size_t>()) - : 0; - } - -# ifndef __HP_aCC -private: -# endif - - size_t _M_start; - _Valarray_size_t _M_lengths; - _Valarray_size_t _M_strides; -}; - -// This is not an STL iterator. It is constructed from a gslice, and it -// steps through the gslice indices in sequence. See 23.3.6 of the C++ -// standard, paragraphs 2-3, for an explanation of the sequence. At -// each step we get two things: the ordinal (i.e. number of steps taken), -// and the one-dimensional index. - -template <class _Size> -struct _Gslice_Iter_tmpl { - _Gslice_Iter_tmpl(const gslice& __gslice) - : _M_step(0), _M_1d_idx(__gslice.start()), - _M_indices(size_t(0), __gslice._M_lengths.size()), - _M_gslice(__gslice) - {} - - bool _M_done() const { return _M_indices[0] == _M_gslice._M_lengths[0]; } - - bool _M_incr(); - - _Size _M_step; - _Size _M_1d_idx; - - valarray<_Size> _M_indices; - const gslice& _M_gslice; -}; - -typedef _Gslice_Iter_tmpl<size_t> _Gslice_Iter; - -template <class _Tp> -class gslice_array { - friend class valarray<_Tp>; -public: - typedef _Tp value_type; - - void operator= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] = __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator*= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] *= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator/= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] /= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator%= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] %= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator+= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] += __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator-= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] -= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator^= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] ^= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator&= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] &= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator|= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] |= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator<<= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] <<= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator>>= (const valarray<value_type>& __x) const { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] >>= __x[__i._M_step]; while(__i._M_incr()); - } - } - - void operator= (const value_type& __c) /*const could be const but standard says NO (26.3.7.4-1)*/ { - if (!_M_gslice._M_empty()) { - _Gslice_Iter __i(_M_gslice); - do _M_array[__i._M_1d_idx] = __c; while(__i._M_incr()); - } - } - - ~gslice_array() {} - -private: - gslice_array(const gslice& __gslice, valarray<_Tp>& __array) - : _M_gslice(__gslice), _M_array(__array) - {} - - gslice _M_gslice; - valarray<value_type>& _M_array; - -private: // Disable assignment - void operator=(const gslice_array<_Tp>&); -}; - -// valarray member functions dealing with gslice and gslice_array. Note -// that it is illegal (behavior is undefined) to construct a gslice_array -// from a degenerate gslice. - -template <class _Tp> -inline valarray<_Tp>::valarray(const gslice_array<_Tp>& __x) - : _Valarray_base<_Tp>(__x._M_gslice._M_size()) { - typedef typename __type_traits<_Tp>::has_trivial_default_constructor - _Is_Trivial; - _M_initialize(_Is_Trivial()); - *this = __x; -} - -template <class _Tp> -inline gslice_array<_Tp> valarray<_Tp>::operator[](const gslice& __slice) { - return gslice_array<_Tp>(__slice, *this); -} - - -//---------------------------------------------------------------------- -// mask_array - -template <class _Tp> -class mask_array { - friend class valarray<_Tp>; -public: - typedef _Tp value_type; - - void operator=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] = __x[__idx++]; - } - - void operator*=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] *= __x[__idx++]; - } - - void operator/=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] /= __x[__idx++]; - } - - void operator%=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] %= __x[__idx++]; - } - - void operator+=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] += __x[__idx++]; - } - - void operator-=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] -= __x[__idx++]; - } - - void operator^=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] ^= __x[__idx++]; - } - - void operator&=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] &= __x[__idx++]; - } - - void operator|=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] |= __x[__idx++]; - } - - void operator<<=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] <<= __x[__idx++]; - } - - void operator>>=(const valarray<value_type>& __x) const { - size_t __idx = 0; - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] >>= __x[__idx++]; - } - - void operator=(const value_type& __c) const { - for (size_t __i = 0; __i < _M_array.size(); ++__i) - if (_M_mask[__i]) _M_array[__i] = __c; - } - - ~mask_array() {} - - // Extension: number of true values in the mask - size_t _M_num_true() const { - size_t __result = 0; - for (size_t __i = 0; __i < _M_mask.size(); ++__i) - if (_M_mask[__i]) ++__result; - return __result; - } - -private: - mask_array(const _Valarray_bool& __mask, valarray<_Tp>& __array) - : _M_mask(__mask), _M_array(__array) - {} - - _Valarray_bool _M_mask; - valarray<_Tp>& _M_array; - -private: // Disable assignment - void operator=(const mask_array<_Tp>&); -}; - -// valarray member functions dealing with mask_array - -template <class _Tp> -inline valarray<_Tp>::valarray(const mask_array<_Tp>& __x) - : _Valarray_base<_Tp>(__x._M_num_true()) -{ - typedef typename __type_traits<_Tp>::has_trivial_default_constructor - _Is_Trivial; - _M_initialize(_Is_Trivial()); - *this = __x; -} - -// Behavior is undefined if __x._M_num_true() != this->size() -template <class _Tp> -inline valarray<_Tp>& valarray<_Tp>::operator=(const mask_array<_Tp>& __x) { - size_t __idx = 0; - for (size_t __i = 0; __i < __x._M_array.size(); ++__i) - if (__x._M_mask[__i]) (*this)[__idx++] = __x._M_array[__i]; - return *this; -} - -template <class _Tp> -inline mask_array<_Tp> valarray<_Tp>::operator[](const _Valarray_bool& __mask) -{ - return mask_array<_Tp>(__mask, *this); -} - - -//---------------------------------------------------------------------- -// indirect_array - -template <class _Tp> -class indirect_array { - friend class valarray<_Tp>; -public: - typedef _Tp value_type; - - void operator=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] = __x[__i]; - } - - void operator*=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] *= __x[__i]; - } - - void operator/=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] /= __x[__i]; - } - - void operator%=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] %= __x[__i]; - } - - void operator+=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] += __x[__i]; - } - - void operator-=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] -= __x[__i]; - } - - void operator^=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] ^= __x[__i]; - } - - void operator&=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] &= __x[__i]; - } - - void operator|=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] |= __x[__i]; - } - - void operator<<=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] <<= __x[__i]; - } - - void operator>>=(const valarray<value_type>& __x) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] >>= __x[__i]; - } - - void operator=(const value_type& __c) const { - for (size_t __i = 0; __i < _M_addr.size(); ++__i) - _M_array[_M_addr[__i]] = __c; - } - - ~indirect_array() {} - -private: - indirect_array(const _Valarray_size_t& __addr, valarray<_Tp>& __array) - : _M_addr(__addr), _M_array(__array) - {} - - _Valarray_size_t _M_addr; - valarray<_Tp>& _M_array; - -private: // Disable assignment - void operator=(const indirect_array<_Tp>&); -}; - -// valarray member functions dealing with indirect_array - -template <class _Tp> -inline valarray<_Tp>::valarray(const indirect_array<_Tp>& __x) - : _Valarray_base<_Tp>(__x._M_addr.size()) -{ - typedef typename __type_traits<_Tp>::has_trivial_default_constructor - _Is_Trivial; - _M_initialize(_Is_Trivial()); - *this = __x; -} - - -template <class _Tp> -inline indirect_array<_Tp> -valarray<_Tp>::operator[](const _Valarray_size_t& __addr) -{ - return indirect_array<_Tp>(__addr, *this); -} - -_STLP_END_NAMESPACE - -# if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_valarray.c> -# endif - -#endif /* _STLP_VALARRAY */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_vector.c b/WebKit/android/stlport/stl/_vector.c deleted file mode 100644 index c46a23e..0000000 --- a/WebKit/android/stlport/stl/_vector.c +++ /dev/null @@ -1,235 +0,0 @@ -/* - * - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_VECTOR_C -#define _STLP_VECTOR_C - -#if !defined (_STLP_INTERNAL_VECTOR_H) -# include <stl/_vector.h> -#endif - -#include <stl/_range_errors.h> - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, class _Alloc> -void _Vector_base<_Tp,_Alloc>::_M_throw_length_error() const { - __stl_throw_length_error("vector"); -} - -template <class _Tp, class _Alloc> -void _Vector_base<_Tp, _Alloc>::_M_throw_out_of_range() const { - __stl_throw_out_of_range("vector"); -} - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define vector _STLP_PTR_IMPL_NAME(vector) -#elif defined (_STLP_DEBUG) -# define vector _STLP_NON_DBG_NAME(vector) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -# define __iterator__ _Tp* -#else -# define __iterator__ _STLP_TYPENAME_ON_RETURN_TYPE vector<_Tp, _Alloc>::iterator -#endif - -template <class _Tp, class _Alloc> -void vector<_Tp, _Alloc>::reserve(size_type __n) { - if (capacity() < __n) { - if (max_size() < __n) { - this->_M_throw_length_error(); - } - - const size_type __old_size = size(); - pointer __tmp; - if (this->_M_start) { - __tmp = _M_allocate_and_copy(__n, this->_M_start, this->_M_finish); - _M_clear(); - } else { - __tmp = this->_M_end_of_storage.allocate(__n, __n); - } - _M_set(__tmp, __tmp + __old_size, __tmp + __n); - } -} - -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); - - pointer __new_start = this->_M_end_of_storage.allocate(__len, __len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = _STLP_PRIV __uninitialized_move(this->_M_start, __pos, __new_start, _TrivialUCopy(), _Movable()); - // handle insertion - if (__fill_len == 1) { - _Copy_Construct(__new_finish, __x); - ++__new_finish; - } else - __new_finish = _STLP_PRIV __uninitialized_fill_n(__new_finish, __fill_len, __x); - if (!__atend) - __new_finish = _STLP_PRIV __uninitialized_move(__pos, this->_M_finish, __new_finish, _TrivialUCopy(), _Movable()); // copy remainder - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - _M_clear_after_move(); - _M_set(__new_start, __new_finish, __new_start + __len); -} - -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); - - 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)); - // handle insertion - __new_finish = _STLP_PRIV __fill_n(__new_finish, __fill_len, __x); - if (!__atend) - __new_finish = __STATIC_CAST(pointer, _STLP_PRIV __copy_trivial(__pos, this->_M_finish, __new_finish)); // copy remainder - _M_clear(); - _M_set(__new_start, __new_finish, __new_start + __len); -} - -template <class _Tp, class _Alloc> -void vector<_Tp, _Alloc>::_M_fill_insert_aux(iterator __pos, size_type __n, - const _Tp& __x, const __true_type& /*_Movable*/) { - if (_M_is_inside(__x)) { - _Tp __x_copy = __x; - _M_fill_insert_aux(__pos, __n, __x_copy, __true_type()); - return; - } - iterator __src = this->_M_finish - 1; - iterator __dst = __src + __n; - for (; __src >= __pos; --__dst, --__src) { - _STLP_STD::_Move_Construct(__dst, *__src); - _STLP_STD::_Destroy_Moved(__src); - } - _STLP_PRIV __uninitialized_fill_n(__pos, __n, __x); - this->_M_finish += __n; -} - -template <class _Tp, class _Alloc> -void vector<_Tp, _Alloc>::_M_fill_insert_aux (iterator __pos, size_type __n, - const _Tp& __x, const __false_type& /*_Movable*/) { - //Here self referencing needs to be checked even for non movable types. - if (_M_is_inside(__x)) { - _Tp __x_copy = __x; - _M_fill_insert_aux(__pos, __n, __x_copy, __false_type()); - return; - } - const size_type __elems_after = this->_M_finish - __pos; - pointer __old_finish = this->_M_finish; - if (__elems_after > __n) { - _STLP_PRIV __ucopy_ptrs(this->_M_finish - __n, this->_M_finish, this->_M_finish, _TrivialUCopy()); - this->_M_finish += __n; - _STLP_PRIV __copy_backward_ptrs(__pos, __old_finish - __n, __old_finish, _TrivialCopy()); - _STLP_STD::fill(__pos, __pos + __n, __x); - } else { - this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_finish, __n - __elems_after, __x); - _STLP_PRIV __ucopy_ptrs(__pos, __old_finish, this->_M_finish, _TrivialUCopy()); - this->_M_finish += __elems_after; - _STLP_STD::fill(__pos, __old_finish, __x); - } -} - -template <class _Tp, class _Alloc> -void vector<_Tp, _Alloc>::_M_fill_insert(iterator __pos, - size_type __n, const _Tp& __x) { - if (__n != 0) { - if (size_type(this->_M_end_of_storage._M_data - this->_M_finish) >= __n) { - _M_fill_insert_aux(__pos, __n, __x, _Movable()); - } else - _M_insert_overflow(__pos, __x, _TrivialCopy(), __n); - } -} - -template <class _Tp, class _Alloc> -vector<_Tp, _Alloc>& vector<_Tp, _Alloc>::operator = (const vector<_Tp, _Alloc>& __x) { - if (&__x != this) { - const size_type __xlen = __x.size(); - if (__xlen > capacity()) { - size_type __len = __xlen; - pointer __tmp = _M_allocate_and_copy(__len, __CONST_CAST(const_pointer, __x._M_start) + 0, - __CONST_CAST(const_pointer, __x._M_finish) + 0); - _M_clear(); - this->_M_start = __tmp; - this->_M_end_of_storage._M_data = this->_M_start + __len; - } else if (size() >= __xlen) { - pointer __i = _STLP_PRIV __copy_ptrs(__CONST_CAST(const_pointer, __x._M_start) + 0, - __CONST_CAST(const_pointer, __x._M_finish) + 0, this->_M_start, _TrivialCopy()); - _STLP_STD::_Destroy_Range(__i, this->_M_finish); - } else { - _STLP_PRIV __copy_ptrs(__CONST_CAST(const_pointer, __x._M_start), - __CONST_CAST(const_pointer, __x._M_start) + size(), this->_M_start, _TrivialCopy()); - _STLP_PRIV __ucopy_ptrs(__CONST_CAST(const_pointer, __x._M_start) + size(), - __CONST_CAST(const_pointer, __x._M_finish) + 0, this->_M_finish, _TrivialUCopy()); - } - this->_M_finish = this->_M_start + __xlen; - } - return *this; -} - -template <class _Tp, class _Alloc> -void vector<_Tp, _Alloc>::_M_fill_assign(size_t __n, const _Tp& __val) { - if (__n > capacity()) { - vector<_Tp, _Alloc> __tmp(__n, __val, get_allocator()); - __tmp.swap(*this); - } else if (__n > size()) { - fill(begin(), end(), __val); - this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_finish, __n - size(), __val); - } else - erase(_STLP_PRIV __fill_n(begin(), __n, __val), end()); -} - -template <class _Tp, class _Alloc> -__iterator__ -vector<_Tp, _Alloc>::insert(iterator __pos, const _Tp& __x) { - size_type __n = __pos - begin(); - _M_fill_insert(__pos, 1, __x); - return begin() + __n; -} - -#undef __iterator__ - -#if defined (vector) -# undef vector -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_VECTOR_C */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/_vector.h b/WebKit/android/stlport/stl/_vector.h deleted file mode 100644 index a24e347..0000000 --- a/WebKit/android/stlport/stl/_vector.h +++ /dev/null @@ -1,735 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_VECTOR_H -#define _STLP_INTERNAL_VECTOR_H - -#ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#ifndef _STLP_INTERNAL_ITERATOR_H -# include <stl/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_UNINITIALIZED_H -# include <stl/_uninitialized.h> -#endif - -_STLP_BEGIN_NAMESPACE - -// The vector base class serves one purpose, its constructor and -// destructor allocate (but don't initialize) storage. This makes -// exception safety easier. - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, class _Alloc> -class _Vector_base { -public: - typedef _Vector_base<_Tp, _Alloc> _Self; - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Alloc_traits<_Tp, _Alloc>::allocator_type allocator_type; - typedef _Tp* pointer; - typedef _STLP_alloc_proxy<pointer, _Tp, allocator_type> _AllocProxy; - - _Vector_base(const _Alloc& __a) - : _M_start(0), _M_finish(0), _M_end_of_storage(__a, 0) {} - - _Vector_base(size_t __n, const _Alloc& __a) - : _M_start(0), _M_finish(0), _M_end_of_storage(__a, 0) { - _M_start = _M_end_of_storage.allocate(__n, __n); - _M_finish = _M_start; - _M_end_of_storage._M_data = _M_start + __n; - _STLP_MPWFIX_TRY _STLP_MPWFIX_CATCH - } - - _Vector_base(__move_source<_Self> src) - : _M_start(src.get()._M_start), _M_finish(src.get()._M_finish), - _M_end_of_storage(__move_source<_AllocProxy>(src.get()._M_end_of_storage)) { - //Set the source as empty: - src.get()._M_finish = src.get()._M_end_of_storage._M_data = src.get()._M_start = 0; - } - - ~_Vector_base() { - if (_M_start != _STLP_DEFAULT_CONSTRUCTED(pointer)) - _M_end_of_storage.deallocate(_M_start, _M_end_of_storage._M_data - _M_start); - } - -protected: - void _STLP_FUNCTION_THROWS _M_throw_length_error() const; - void _STLP_FUNCTION_THROWS _M_throw_out_of_range() const; - - pointer _M_start; - pointer _M_finish; - _AllocProxy _M_end_of_storage; -}; - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define vector _STLP_PTR_IMPL_NAME(vector) -#elif defined (_STLP_DEBUG) -# define vector _STLP_NON_DBG_NAME(vector) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class vector : protected _STLP_PRIV _Vector_base<_Tp, _Alloc> -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (vector) - , public __stlport_class<vector<_Tp, _Alloc> > -#endif -{ -private: - typedef _STLP_PRIV _Vector_base<_Tp, _Alloc> _Base; - typedef vector<_Tp, _Alloc> _Self; -public: - _STLP_FORCE_ALLOCATORS(_Tp, _Alloc) - typedef typename _Base::allocator_type allocator_type; - - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type* iterator; - typedef const value_type* const_iterator; - - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag _Iterator_category; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR((const allocator_type&)this->_M_end_of_storage, _Tp); } - -private: - typedef typename __type_traits<_Tp>::has_trivial_assignment_operator _TrivialCopy; - typedef typename __type_traits<_Tp>::has_trivial_copy_constructor _TrivialUCopy; -#if !defined (_STLP_NO_MOVE_SEMANTIC) - typedef typename __move_traits<_Tp>::implemented _Movable; -#else - typedef __false_type _Movable; -#endif - - // handles insertions on overflow - void _M_insert_overflow_aux(pointer __pos, const _Tp& __x, const __false_type& /*_Movable*/, - size_type __fill_len, bool __atend); - void _M_insert_overflow_aux(pointer __pos, const _Tp& __x, const __true_type& /*_Movable*/, - size_type __fill_len, bool __atend) { - //We need to take care of self referencing here: - if (_M_is_inside(__x)) { - value_type __x_copy = __x; - _M_insert_overflow_aux(__pos, __x_copy, __false_type(), __fill_len, __atend); - return; - } - _M_insert_overflow_aux(__pos, __x, __false_type(), __fill_len, __atend); - } - - void _M_insert_overflow(pointer __pos, const _Tp& __x, const __false_type& /*_TrivialCopy*/, - size_type __fill_len, bool __atend = false) - { _M_insert_overflow_aux(__pos, __x, _Movable(), __fill_len, __atend); } - void _M_insert_overflow(pointer __pos, const _Tp& __x, const __true_type& /*_TrivialCopy*/, - size_type __fill_len, bool __atend = false); - void _M_range_check(size_type __n) const { - if (__n >= size_type(this->_M_finish - this->_M_start)) - this->_M_throw_out_of_range(); - } - -public: - iterator begin() { return this->_M_start; } - const_iterator begin() const { return this->_M_start; } - iterator end() { return this->_M_finish; } - const_iterator end() const { return this->_M_finish; } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - size_type size() const { return size_type(this->_M_finish - this->_M_start); } - size_type max_size() const { - size_type __vector_max_size = size_type(-1) / sizeof(_Tp); - typename allocator_type::size_type __alloc_max_size = this->_M_end_of_storage.max_size(); - return (__alloc_max_size < __vector_max_size)?__alloc_max_size:__vector_max_size; - } - - size_type capacity() const { return size_type(this->_M_end_of_storage._M_data - this->_M_start); } - bool empty() const { return this->_M_start == this->_M_finish; } - - reference operator[](size_type __n) { return *(begin() + __n); } - const_reference operator[](size_type __n) const { return *(begin() + __n); } - - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(end() - 1); } - const_reference back() const { return *(end() - 1); } - - reference at(size_type __n) { _M_range_check(__n); return (*this)[__n]; } - const_reference at(size_type __n) const { _M_range_check(__n); return (*this)[__n]; } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit vector(const allocator_type& __a = allocator_type()) -#else - vector() - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(allocator_type()) {} - vector(const allocator_type& __a) -#endif - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__a) {} - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) -private: - //We always call _M_initialize with only 1 parameter. Default parameter - //is used to allow explicit instanciation of vector with types with no - //default constructor. - void _M_initialize(size_type __n, const _Tp& __val = _STLP_DEFAULT_CONSTRUCTED(_Tp)) - { this->_M_finish = _STLP_PRIV __uninitialized_init(this->_M_start, __n, __val); } -public: - explicit vector(size_type __n) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, allocator_type()) - { _M_initialize(__n); } - vector(size_type __n, const _Tp& __val, const allocator_type& __a = allocator_type()) -#else - explicit vector(size_type __n) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, allocator_type()) - { this->_M_finish = _STLP_PRIV __uninitialized_init(this->_M_start, __n, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } - vector(size_type __n, const _Tp& __val) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, allocator_type()) - { this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_start, __n, __val); } - vector(size_type __n, const _Tp& __val, const allocator_type& __a) -#endif - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__n, __a) - { this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_start, __n, __val); } - - vector(const _Self& __x) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__x.size(), __x.get_allocator()) - { this->_M_finish = _STLP_PRIV __ucopy_ptrs(__x.begin(), __x.end(), this->_M_start, _TrivialUCopy()); } - - vector(__move_source<_Self> src) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__move_source<_Base>(src.get())) - {} - -#if defined (_STLP_MEMBER_TEMPLATES) -private: - template <class _Integer> - void _M_initialize_aux(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) { - size_type __real_n; - this->_M_start = this->_M_end_of_storage.allocate(__n, __real_n); - this->_M_end_of_storage._M_data = this->_M_start + __real_n; - this->_M_finish = _STLP_PRIV __uninitialized_fill_n(this->_M_start, __n, __val); - } - - template <class _InputIterator> - void _M_initialize_aux(_InputIterator __first, _InputIterator __last, - const __false_type& /*_IsIntegral*/) - { _M_range_initialize(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); } - -public: - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - vector(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL ) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__a) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_aux(__first, __last, _Integral()); - } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - vector(_InputIterator __first, _InputIterator __last) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(allocator_type()) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_initialize_aux(__first, __last, _Integral()); - } -# endif /* _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS */ - -#else /* _STLP_MEMBER_TEMPLATES */ - vector(const _Tp* __first, const _Tp* __last, - const allocator_type& __a = allocator_type()) - : _STLP_PRIV _Vector_base<_Tp, _Alloc>(__last - __first, __a) - { this->_M_finish = _STLP_PRIV __ucopy_ptrs(__first, __last, this->_M_start, _TrivialUCopy()); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - //As the vector container is a back insert oriented container it - //seems rather logical to destroy elements in reverse order. - ~vector() { _STLP_STD::_Destroy_Range(rbegin(), rend()); } - - _Self& operator=(const _Self& __x); - - void reserve(size_type __n); - - // assign(), a generalized assignment member function. Two - // versions: one that takes a count, and one that takes a range. - // The range version is a member template, so we dispatch on whether - // or not the type is an integer. - - void assign(size_type __n, const _Tp& __val) { _M_fill_assign(__n, __val); } - void _M_fill_assign(size_type __n, const _Tp& __val); - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _ForwardIter> - void _M_assign_aux(_ForwardIter __first, _ForwardIter __last, const forward_iterator_tag &) { -#else - void assign(const_iterator __first, const_iterator __last) { - typedef const_iterator _ForwardIter; -#endif - const size_type __len = distance(__first, __last); - if (__len > capacity()) { - size_type __n = __len; - iterator __tmp = _M_allocate_and_copy(__n, __first, __last); - _M_clear(); - _M_set(__tmp, __tmp + __len, __tmp + __n); - } - else if (size() >= __len) { - iterator __new_finish = copy(__first, __last, this->_M_start); - _STLP_STD::_Destroy_Range(__new_finish, this->_M_finish); - this->_M_finish = __new_finish; - } - else { - _ForwardIter __mid = __first; - advance(__mid, size()); - copy(__first, __mid, this->_M_start); - this->_M_finish = uninitialized_copy(__mid, __last, this->_M_finish); - } - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIter> - void _M_assign_aux(_InputIter __first, _InputIter __last, - const input_iterator_tag &) { - iterator __cur = begin(); - for ( ; __first != __last && __cur != end(); ++__cur, ++__first) - *__cur = *__first; - if (__first == __last) - erase(__cur, end()); - else - insert(end(), __first, __last); - } - - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) - { _M_fill_assign(__n, __val); } - - template <class _InputIter> - void _M_assign_dispatch(_InputIter __first, _InputIter __last, - const __false_type& /*_IsIntegral*/) - { _M_assign_aux(__first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIter)); } - - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back(const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - void push_back(const _Tp& __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - if (this->_M_finish != this->_M_end_of_storage._M_data) { - _Copy_Construct(this->_M_finish, __x); - ++this->_M_finish; - } - else - _M_insert_overflow(this->_M_finish, __x, _TrivialCopy(), 1UL, true); - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)); -#else - iterator insert(iterator __pos, const _Tp& __x); -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - void push_back() { push_back(_STLP_DEFAULT_CONSTRUCTED(_Tp)); } - iterator insert(iterator __pos) { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void swap(_Self& __x) { - _STLP_STD::swap(this->_M_start, __x._M_start); - _STLP_STD::swap(this->_M_finish, __x._M_finish); - this->_M_end_of_storage.swap(__x._M_end_of_storage); - } - -private: - void _M_fill_insert_aux (iterator __pos, size_type __n, const _Tp& __x, const __true_type& /*_Movable*/); - void _M_fill_insert_aux (iterator __pos, size_type __n, const _Tp& __x, const __false_type& /*_Movable*/); - void _M_fill_insert (iterator __pos, size_type __n, const _Tp& __x); - - bool _M_is_inside(const value_type& __x) const { - return (&__x >= this->_M_start && &__x < this->_M_finish); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _ForwardIterator> - void _M_range_insert_realloc(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, -#else - void _M_range_insert_realloc(iterator __pos, - const_iterator __first, const_iterator __last, -#endif /* _STLP_MEMBER_TEMPLATES */ - size_type __n) { - const size_type __old_size = size(); - size_type __len = __old_size + (max)(__old_size, __n); - pointer __new_start = this->_M_end_of_storage.allocate(__len, __len); - pointer __new_finish = __new_start; - _STLP_TRY { - __new_finish = _STLP_PRIV __uninitialized_move(this->_M_start, __pos, __new_start, _TrivialUCopy(), _Movable()); - __new_finish = uninitialized_copy(__first, __last, __new_finish); - __new_finish = _STLP_PRIV __uninitialized_move(__pos, this->_M_finish, __new_finish, _TrivialUCopy(), _Movable()); - } - _STLP_UNWIND((_STLP_STD::_Destroy_Range(__new_start,__new_finish), - this->_M_end_of_storage.deallocate(__new_start,__len))) - _M_clear_after_move(); - _M_set(__new_start, __new_finish, __new_start + __len); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _ForwardIterator> - void _M_range_insert_aux(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, -#else - void _M_range_insert_aux(iterator __pos, - const_iterator __first, const_iterator __last, -#endif /* _STLP_MEMBER_TEMPLATES */ - size_type __n, const __true_type& /*_Movable*/) { - iterator __src = this->_M_finish - 1; - iterator __dst = __src + __n; - for (; __src >= __pos; --__dst, --__src) { - _STLP_STD::_Move_Construct(__dst, *__src); - _STLP_STD::_Destroy_Moved(__src); - } - uninitialized_copy(__first, __last, __pos); - this->_M_finish += __n; - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _ForwardIterator> - void _M_range_insert_aux(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, -#else - void _M_range_insert_aux(iterator __pos, - const_iterator __first, const_iterator __last, -#endif /* _STLP_MEMBER_TEMPLATES */ - size_type __n, const __false_type& /*_Movable*/) { - const size_type __elems_after = this->_M_finish - __pos; - pointer __old_finish = this->_M_finish; - if (__elems_after > __n) { - _STLP_PRIV __ucopy_ptrs(this->_M_finish - __n, this->_M_finish, this->_M_finish, _TrivialUCopy()); - this->_M_finish += __n; - _STLP_PRIV __copy_backward_ptrs(__pos, __old_finish - __n, __old_finish, _TrivialCopy()); - copy(__first, __last, __pos); - } - else { -#if defined ( _STLP_MEMBER_TEMPLATES ) - _ForwardIterator __mid = __first; - advance(__mid, __elems_after); -#else - const_pointer __mid = __first + __elems_after; -#endif - uninitialized_copy(__mid, __last, this->_M_finish); - this->_M_finish += __n - __elems_after; - _STLP_PRIV __ucopy_ptrs(__pos, __old_finish, this->_M_finish, _TrivialUCopy()); - this->_M_finish += __elems_after; - copy(__first, __mid, __pos); - } /* elems_after */ - } - - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, - const __true_type&) - { _M_fill_insert(__pos, (size_type) __n, (_Tp) __val); } - - template <class _InputIterator> - void _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type&) - { _M_range_insert(__pos, __first, __last, _STLP_ITERATOR_CATEGORY(__first, _InputIterator)); } - -public: - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__pos, __first, __last, _Integral()); - } - -private: - template <class _InputIterator> - void _M_range_insert(iterator __pos, - _InputIterator __first, _InputIterator __last, - const input_iterator_tag &) { - for ( ; __first != __last; ++__first) { - __pos = insert(__pos, *__first); - ++__pos; - } - } - - template <class _ForwardIterator> - void _M_range_insert(iterator __pos, - _ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { -#else /* _STLP_MEMBER_TEMPLATES */ -public: - void insert(iterator __pos, - const_iterator __first, const_iterator __last) { -#endif /* _STLP_MEMBER_TEMPLATES */ - /* This method do not check self referencing. - * Standard forbids it, checked by the debug mode. - */ - if (__first != __last) { - size_type __n = distance(__first, __last); - - if (size_type(this->_M_end_of_storage._M_data - this->_M_finish) >= __n) { - _M_range_insert_aux(__pos, __first, __last, __n, _Movable()); - } - else { - _M_range_insert_realloc(__pos, __first, __last, __n); - } - } - } - -public: - void insert (iterator __pos, size_type __n, const _Tp& __x) - { _M_fill_insert(__pos, __n, __x); } - - void pop_back() { - --this->_M_finish; - _STLP_STD::_Destroy(this->_M_finish); - } - -private: - iterator _M_erase(iterator __pos, const __true_type& /*_Movable*/) { - _STLP_STD::_Destroy(__pos); - iterator __dst = __pos, __src = __dst + 1; - iterator __end = end(); - for (; __src != __end; ++__dst, ++__src) { - _STLP_STD::_Move_Construct(__dst, *__src); - _STLP_STD::_Destroy_Moved(__src); - } - this->_M_finish = __dst; - return __pos; - } - iterator _M_erase(iterator __pos, const __false_type& /*_Movable*/) { - if (__pos + 1 != end()) - _STLP_PRIV __copy_ptrs(__pos + 1, this->_M_finish, __pos, _TrivialCopy()); - --this->_M_finish; - _STLP_STD::_Destroy(this->_M_finish); - return __pos; - } - iterator _M_erase(iterator __first, iterator __last, const __true_type& /*_Movable*/) { - iterator __dst = __first, __src = __last; - iterator __end = end(); - for (; __dst != __last && __src != __end; ++__dst, ++__src) { - _STLP_STD::_Destroy(__dst); - _STLP_STD::_Move_Construct(__dst, *__src); - } - if (__dst != __last) { - //There is more elements to erase than element to move: - _STLP_STD::_Destroy_Range(__dst, __last); - _STLP_STD::_Destroy_Moved_Range(__last, __end); - } - else { - //There is more element to move than element to erase: - for (; __src != __end; ++__dst, ++__src) { - _STLP_STD::_Destroy_Moved(__dst); - _STLP_STD::_Move_Construct(__dst, *__src); - } - _STLP_STD::_Destroy_Moved_Range(__dst, __end); - } - this->_M_finish = __dst; - return __first; - } - iterator _M_erase(iterator __first, iterator __last, const __false_type& /*_Movable*/) { - pointer __i = _STLP_PRIV __copy_ptrs(__last, this->_M_finish, __first, _TrivialCopy()); - _STLP_STD::_Destroy_Range(__i, this->_M_finish); - this->_M_finish = __i; - return __first; - } - -public: - iterator erase(iterator __pos) { - return _M_erase(__pos, _Movable()); - } - iterator erase(iterator __first, iterator __last) { - if (__first == __last) - return __first; - return _M_erase(__first, __last, _Movable()); - } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - void resize(size_type __new_size, const _Tp& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - if (__new_size < size()) - erase(begin() + __new_size, end()); - else - insert(end(), __new_size - size(), __x); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void clear() { - erase(begin(), end()); - } - -private: - void _M_clear() { - _STLP_STD::_Destroy_Range(rbegin(), rend()); - this->_M_end_of_storage.deallocate(this->_M_start, this->_M_end_of_storage._M_data - this->_M_start); - } - - void _M_clear_after_move() { - _STLP_STD::_Destroy_Moved_Range(rbegin(), rend()); - this->_M_end_of_storage.deallocate(this->_M_start, this->_M_end_of_storage._M_data - this->_M_start); - } - - void _M_set(pointer __s, pointer __f, pointer __e) { - this->_M_start = __s; - this->_M_finish = __f; - this->_M_end_of_storage._M_data = __e; - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _ForwardIterator> - pointer _M_allocate_and_copy(size_type& __n, - _ForwardIterator __first, _ForwardIterator __last) -#else /* _STLP_MEMBER_TEMPLATES */ - pointer _M_allocate_and_copy(size_type& __n, - const_pointer __first, const_pointer __last) -#endif /* _STLP_MEMBER_TEMPLATES */ - { - pointer __result = this->_M_end_of_storage.allocate(__n, __n); - _STLP_TRY { - uninitialized_copy(__first, __last, __result); - return __result; - } - _STLP_UNWIND(this->_M_end_of_storage.deallocate(__result, __n)) - _STLP_RET_AFTER_THROW(__result) - } - - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void _M_range_initialize(_InputIterator __first, _InputIterator __last, - const input_iterator_tag &) { - for ( ; __first != __last; ++__first) - push_back(*__first); - } - // This function is only called by the constructor. - template <class _ForwardIterator> - void _M_range_initialize(_ForwardIterator __first, _ForwardIterator __last, - const forward_iterator_tag &) { - size_type __n = distance(__first, __last); - this->_M_start = this->_M_end_of_storage.allocate(__n, __n); - this->_M_end_of_storage._M_data = this->_M_start + __n; - this->_M_finish = uninitialized_copy(__first, __last, this->_M_start); - } -#endif /* _STLP_MEMBER_TEMPLATES */ -}; - -#if defined (vector) -# undef vector -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -_STLP_END_NAMESPACE - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/_vector.c> -#endif - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# include <stl/pointers/_vector.h> -#endif - -//We define the bool specialization before the debug interfave -//to benefit of the debug version of vector even for the bool -//specialization. -#if !defined (_STLP_NO_BOOL) || !defined (_STLP_NO_EXTENSIONS) -# if !defined (_STLP_INTERNAL_BVECTOR_H) -# include <stl/_bvector.h> -# endif -#endif - -#if defined (_STLP_DEBUG) -# include <stl/debug/_vector.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#if !defined (_STLP_NO_BOOL) && !defined (_STLP_NO_EXTENSIONS) -// This typedef is non-standard. It is provided for backward compatibility. -typedef vector<bool, allocator<bool> > bit_vector; -#endif - -#define _STLP_TEMPLATE_HEADER template <class _Tp, class _Alloc> -#define _STLP_TEMPLATE_CONTAINER vector<_Tp, _Alloc> -#include <stl/_relops_cont.h> -#undef _STLP_TEMPLATE_CONTAINER -#undef _STLP_TEMPLATE_HEADER - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp, class _Alloc> -struct __move_traits<vector<_Tp, _Alloc> > { - typedef __stlp_movable implemented; - typedef typename __move_traits<_Alloc>::complete complete; -#if defined (__BORLANDC__) && (__BORLANDC__ < 0x560) - // disable incorrect "dependent type qualifier" error - typedef __false_type _Ret; -#endif -}; - -# if !defined (_STLP_DEBUG) -template <class _Tp, class _Alloc> -struct _DefaultZeroValue<vector<_Tp, _Alloc> > -{ typedef typename __type_traits<_Alloc>::has_trivial_default_constructor _Ret; }; -# endif - -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -_STLP_END_NAMESPACE - -#endif /* _STLP_VECTOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/boost_type_traits.h b/WebKit/android/stlport/stl/boost_type_traits.h deleted file mode 100644 index e41cc41..0000000 --- a/WebKit/android/stlport/stl/boost_type_traits.h +++ /dev/null @@ -1,143 +0,0 @@ -/* - * - * Copyright (c) 2004 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_BOOST_TYPE_TRAITS_H -#define _STLP_BOOST_TYPE_TRAITS_H - -#include <boost/type_traits/is_integral.hpp> -#include <boost/type_traits/is_float.hpp> -#include <boost/type_traits/has_trivial_constructor.hpp> -#include <boost/type_traits/has_trivial_copy.hpp> -#include <boost/type_traits/has_trivial_assign.hpp> -#include <boost/type_traits/has_trivial_destructor.hpp> -#include <boost/type_traits/is_pod.hpp> -#include <boost/type_traits/is_pointer.hpp> -#include <boost/type_traits/is_reference.hpp> -#include <boost/type_traits/remove_cv.hpp> -#include <boost/type_traits/is_same.hpp> - -/* - * This file mostly wraps boost type_traits in the STLport type_traits. - * When checking a type traits like trivial assign operator for instance - * both the boost value and STLport values has to be taken into account - * as we don't know what the user might have prefer, specializing the boost - * type traits or the STLport one. - */ -_STLP_BEGIN_NAMESPACE - -template <class _Tp> struct _IsRef { - enum { _Is = ::boost::is_reference<_Tp>::value }; - typedef typename __bool2type<_Is>::_Ret _Ret; -}; - -template <class _Tp> struct _IsPtr { - enum { is_pointer = ::boost::is_pointer<_Tp>::value }; - typedef typename __bool2type<is_pointer>::_Ret _Ret; -}; - -template <class _Tp> struct _IsIntegral { - enum { is_integral = ::boost::is_integral<_Tp>::value }; - typedef typename __bool2type<is_integral>::_Ret _Ret; -}; - -template <class _Tp> struct _IsRational { - enum { is_float = ::boost::is_float<_Tp>::value }; - typedef typename __bool2type<is_float>::_Ret _Ret; -}; - -template <class _Tp> -struct __type_traits { - enum { trivial_constructor = ::boost::has_trivial_constructor<_Tp>::value }; - typedef typename __bool2type<trivial_constructor>::_Ret has_trivial_default_constructor; - - enum { trivial_copy = ::boost::has_trivial_copy<_Tp>::value }; - typedef typename __bool2type<trivial_copy>::_Ret has_trivial_copy_constructor; - - enum { trivial_assign = ::boost::has_trivial_assign<_Tp>::value }; - typedef typename __bool2type<trivial_assign>::_Ret has_trivial_assignment_operator; - - enum { trivial_destructor = ::boost::has_trivial_destructor<_Tp>::value }; - typedef typename __bool2type<trivial_destructor>::_Ret has_trivial_destructor; - - enum { pod = ::boost::is_pod<_Tp>::value }; - typedef typename __bool2type<pod>::_Ret is_POD_type; -}; - -template <class _Tp1, class _Tp2> -struct _TrivialCopy { - typedef typename ::boost::remove_cv<_Tp1>::type uncv1; - typedef typename ::boost::remove_cv<_Tp2>::type uncv2; - - enum { same = ::boost::is_same<uncv1, uncv2>::value }; - typedef typename __bool2type<same>::_Ret _Same; - - enum { boost_trivial_assign = ::boost::has_trivial_assign<uncv1>::value }; - typedef typename __bool2type<boost_trivial_assign>::_Ret _BoostTrivialAssign; - typedef typename __type_traits<uncv1>::has_trivial_assignment_operator _STLPTrivialAssign; - typedef typename _Lor2<_BoostTrivialAssign, _STLPTrivialAssign>::_Ret _TrivialAssign; - - typedef typename _Land2<_Same, _TrivialAssign>::_Ret _Type; - static _Type _Answer() { return _Type(); } -}; - -template <class _Tp1, class _Tp2> -struct _TrivialUCopy { - typedef typename ::boost::remove_cv<_Tp1>::type uncv1; - typedef typename ::boost::remove_cv<_Tp2>::type uncv2; - - enum { same = ::boost::is_same<uncv1, uncv2>::value }; - typedef typename __bool2type<same>::_Ret _Same; - - enum { boost_trivial_copy = ::boost::has_trivial_copy<uncv1>::value }; - typedef typename __bool2type<boost_trivial_copy>::_Ret _BoostTrivialCopy; - typedef typename __type_traits<uncv1>::has_trivial_copy_constructor _STLPTrivialCopy; - typedef typename _Lor2<_BoostTrivialCopy, _STLPTrivialCopy>::_Ret _TrivialCopy; - - typedef typename _Land2<_Same, _TrivialCopy>::_Ret _Type; - static _Type _Answer() { return _Type(); } -}; - -template <class _Tp> -struct _DefaultZeroValue { - enum { is_integral = ::boost::is_integral<_Tp>::value }; - typedef typename __bool2type<is_integral>::_Ret _IsIntegral; - enum { is_float = ::boost::is_float<_Tp>::value }; - typedef typename __bool2type<is_float>::_Ret _IsFloat; - enum { is_pointer = ::boost::is_pointer<_Tp>::value }; - typedef typename __bool2type<is_pointer>::_Ret _IsPointer; - - typedef typename _Lor3<_IsIntegral, _IsFloat, _IsPointer>::_Ret _Ret; -}; - -template <class _Tp> -struct _TrivialInit { - typedef typename ::boost::remove_cv<_Tp>::type uncv; - - enum { boost_trivial_constructor = ::boost::has_trivial_constructor<uncv>::value }; - typedef typename __bool2type<boost_trivial_constructor>::_Ret _BoostTrivialInit; - typedef typename __type_traits<uncv>::has_trivial_default_constructor _STLPTrivialInit; - typedef typename _Lor2<_BoostTrivialInit, _STLPTrivialInit>::_Ret _Tr1; - - typedef typename _DefaultZeroValue<_Tp>::_Ret _Tr2; - typedef typename _Not<_Tr2>::_Ret _Tr3; - - typedef typename _Land2<_Tr1, _Tr3>::_Ret _Ret; - static _Ret _Answer() { return _Ret(); } -}; - -_STLP_END_NAMESPACE - -#endif /* _STLP_BOOST_TYPE_TRAITS_H */ diff --git a/WebKit/android/stlport/stl/c_locale.h b/WebKit/android/stlport/stl/c_locale.h deleted file mode 100644 index 8d50bb6..0000000 --- a/WebKit/android/stlport/stl/c_locale.h +++ /dev/null @@ -1,436 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - -#ifndef _STLP_C_LOCALE_H -#define _STLP_C_LOCALE_H - -/* - * Implementation dependent definitions. - * Beware: This header is not a purely internal header, it is also included - * from the outside world when building the STLport library. So this header - * should not reference internal headers (stlport/stl/_*.h) directly. - */ -#if defined (__sgi) -# if defined (ROOT_65) /* IRIX 6.5.x */ -# include <sgidefs.h> -# include <standards.h> -# include <wchar.h> -# include <ctype.h> -# else /* IRIX pre-6.5 */ -# include <sgidefs.h> -# include <standards.h> -# if !defined(_SIZE_T) && !defined(_SIZE_T_) -# define _SIZE_T -# if (_MIPS_SZLONG == 32) -typedef unsigned int size_t; -# endif -# if (_MIPS_SZLONG == 64) -typedef unsigned long size_t; -# endif -# endif -# if !defined (_WCHAR_T) -# define _WCHAR_T -# if (_MIPS_SZLONG == 32) -typedef long wchar_t; -# endif -# if (_MIPS_SZLONG == 64) -typedef __int32_t wchar_t; -# endif -# endif /* _WCHAR_T */ -# if !defined (_WINT_T) -# define _WINT_T -# if (_MIPS_SZLONG == 32) -typedef long wint_t; -# endif -# if (_MIPS_SZLONG == 64) -typedef __int32_t wint_t; -# endif -# endif /* _WINT_T */ -# if !defined (_MBSTATE_T) -# define _MBSTATE_T -/* _MSC_VER check is here for historical reason and seems wrong as it is the macro defined - * by Microsoft compilers to give their version and we are currently in a SGI platform scope. - * However _MSC_VER might also be a SGI compiler macro so we keep it this way.*/ -# if defined (_MSC_VER) -typedef int mbstate_t; -# else -typedef char mbstate_t; -# endif -# endif /* _MBSTATE_T */ -# endif /* ROOT65 */ -#else /* __sgi */ -# include <stddef.h> -# if !defined (ANDROID) -/* The Android wchar.h header is broken, and tries to redefine wchar_t. */ -# include <wchar.h> -# endif -# include <ctype.h> -#endif /* __sgi */ - -/* - * GENERAL FRAMEWORK - */ - -/* - * Opaque types, implementation (if there is one) depends - * on platform locale API. - */ -struct _Locale_ctype; -struct _Locale_numeric; -struct _Locale_time; -struct _Locale_collate; -struct _Locale_monetary; -struct _Locale_messages; -struct _Locale_name_hint; - -/* - Bitmask macros. -*/ - -/* - * For narrow characters, we expose the lookup table interface. - */ - -/* Internal bitmask macros, os-specific. */ - -#if defined (__sgi) /* IRIX */ - -# define _Locale_S 0x00000008 /* Spacing character */ -# define _Locale_A 0x00004000 /* Alphabetical characters only */ -# define _Locale_B 0x00000040 /* Obsolete: was space char only */ -# define _Locale_PR 0x00008000 /* Printable characters only */ -# define _Locale_G 0x40000000 /* Graphic characters only */ -# define _Locale_BL 0x80000000 /* The blank character class */ - -/* Public bitmask macros, must be defined for every OS. These values, of - * course, are specific to IRIX. */ - -# define _Locale_CNTRL 0x00000020 /* Control character */ -# define _Locale_UPPER 0x00000001 /* Upper case */ -# define _Locale_LOWER 0x00000002 /* Lower case */ -# define _Locale_DIGIT 0x00000004 /* Numeral (digit) */ -# define _Locale_XDIGIT 0x00000080 /* heXadecimal digit */ -# define _Locale_PUNCT 0x00000010 /* Punctuation */ -# define _Locale_SPACE (_Locale_S | _Locale_BL) -# define _Locale_PRINT (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \ - _Locale_DIGIT | _Locale_A | _Locale_XDIGIT | \ - _Locale_PR) -# define _Locale_ALPHA _Locale_A - -/* -* All of these except for graph and blank are from the C standard; -* graph and blank are XPG4. (graph in XPG4 doesn't mean quite the -* same thing as graph in the C++ library) -*/ - -#endif /* IRIX */ - - -#if defined (__Lynx__) - /* azov: On Lynx isalpha defined as (_U | _L), which gives us a mask - * unusable in ctype_table. So we have to redefine it and use hard-coded - * numbers (to avoid potential clashes if system headers change). - * - * P.S. Actually, I see no reason in using platform-specific masks - - * having just one set of masks for all platforms should work just as - * well - we only use them internally and they don't have to be equal - * to whatever defined in local ctype.h - * - */ -# define _Locale_CNTRL 040 /* _C, Control character */ -# define _Locale_UPPER 01 /* _U, Upper case */ -# define _Locale_LOWER 02 /* _L, Lower case */ -# define _Locale_DIGIT 04 /* _N, Numeral (digit) */ -# define _Locale_XDIGIT 0200 /* _X, heXadecimal digit */ -# define _Locale_PUNCT 020 /* _P, Punctuation */ -# define _Locale_SPACE 010 /* _S, Spacing */ -# define _Locale_ALPHA 040000 /* none, Alphanumerical */ -# define _Locale_PRINT (_Locale_PUNCT | _Locale_UPPER | _Locale_LOWER | \ - _Locale_DIGIT | _Locale_ALPHA | _Locale_XDIGIT |\ - _Locale_SPACE ) /* Printable */ -#endif /* __Lynx__ */ - -#if defined (__GNUC__) || defined (__BORLANDC__) || defined (__COMO__) - -# if defined (__CYGWIN__) - -# define _Locale_CNTRL 040 -# define _Locale_UPPER 02 -# define _Locale_LOWER 01 -# define _Locale_DIGIT 04 -# define _Locale_XDIGIT ( 0100 | _Locale_DIGIT ) -# define _Locale_PUNCT 020 -# define _Locale_SPACE 010 -# define _Locale_ALPHA 0200 -# define _Locale_PRINT (_Locale_ALPHA | _Locale_DIGIT | _Locale_PUNCT | 0400 ) - -# elif defined (__FreeBSD__) || ( defined (__APPLE__) && defined (__GNUC__) && (__GNUC__ > 3) ) - -# define _Locale_CNTRL _CTYPE_C -# define _Locale_UPPER _CTYPE_U -# define _Locale_LOWER _CTYPE_L -# define _Locale_DIGIT _CTYPE_D -# define _Locale_XDIGIT _CTYPE_X -# define _Locale_PUNCT _CTYPE_P -# define _Locale_SPACE _CTYPE_S -# define _Locale_PRINT _CTYPE_R -# define _Locale_ALPHA _CTYPE_A - -# elif defined (__NetBSD__) || defined (__OpenBSD__) || defined (__amigaos__) || defined(ANDROID) - -# define _Locale_CNTRL _C -# define _Locale_UPPER _U -# define _Locale_LOWER _L -# define _Locale_DIGIT _N -# define _Locale_XDIGIT (_N|_X) -# define _Locale_PUNCT _P -# define _Locale_SPACE _S -# define _Locale_PRINT (_P|_U|_L|_N|_B) -# define _Locale_ALPHA (_U|_L) -# elif defined (__EMX__) /* OS/2 with emx runtime */ -# define _Locale_CNTRL _CNTRL -# define _Locale_UPPER _UPPER -# define _Locale_LOWER _LOWER -# define _Locale_DIGIT _DIGIT -# define _Locale_XDIGIT _XDIGIT -# define _Locale_PUNCT _PUNCT -# define _Locale_SPACE _SPACE -# define _Locale_PRINT _PRINT -# define _Locale_ALPHA (_UPPER|_LOWER) - -# elif defined (_STLP_USE_GLIBC) /* linux, using the gnu compiler */ - -/* This section uses macros defined in the gnu libc ctype.h header */ - -# define _Locale_CNTRL _IScntrl -# define _Locale_UPPER _ISupper -# define _Locale_LOWER _ISlower -# define _Locale_DIGIT _ISdigit -# define _Locale_XDIGIT _ISxdigit -# define _Locale_PUNCT _ISpunct -# define _Locale_SPACE _ISspace -# define _Locale_PRINT _ISprint -# define _Locale_ALPHA _ISalpha - -# endif /* GLIBC */ - -#endif /* gnu */ - -#if (defined (__sun) && defined (__SVR4)) || \ - (defined (__digital__) && defined (__unix__)) || \ - defined (_AIX) -/* fbp : condition from AT&T code*/ -# if !(defined (__XPG4_CHAR_CLASS__) || defined (_XPG4_2) || \ - (defined (_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4))) && ! defined (_ISCNTRL) - /* fbp : on 2.5.1, the defines are different ;( */ - /* # if ( defined (__sun) && defined (__SVR4) && ! defined (_ISCNTRL) ) */ -# define _ISCNTRL _C -# define _ISUPPER _U -# define _ISLOWER _L -# define _ISDIGIT _N -# define _ISXDIGIT _X -# define _ISPUNCT _P -# define _ISSPACE _S -# define _ISPRINT (_P | _U | _L | _N | _B) -# define _ISALPHA (_U | _L) -# endif - -# define _Locale_CNTRL _ISCNTRL -# define _Locale_UPPER _ISUPPER -# define _Locale_LOWER _ISLOWER -# define _Locale_DIGIT _ISDIGIT -# define _Locale_XDIGIT _ISXDIGIT -# define _Locale_PUNCT _ISPUNCT -# define _Locale_SPACE _ISSPACE -# define _Locale_PRINT _ISPRINT -# define _Locale_ALPHA _ISALPHA -#elif defined (__MWERKS__) && defined (N_PLAT_NLM) -# define _Locale_CNTRL _CNTRL_ -# define _Locale_UPPER _UPPER_ -# define _Locale_LOWER _LOWER_ -# define _Locale_DIGIT _DIGIT_ -# define _Locale_XDIGIT _XDIGIT_ -# define _Locale_PUNCT _PUNCT_ -# define _Locale_SPACE _SPACE_ -# define _Locale_PRINT (_PUNCT_|_UPPER_|_LOWER_|_DIGIT_|_BLANK_) -# define _Locale_ALPHA (_UPPER_|_LOWER_) -#elif defined (__MWERKS__) -# define _Locale_CNTRL __control_char -# define _Locale_UPPER __upper_case -# define _Locale_LOWER __lower_case -# define _Locale_DIGIT __digit -# define _Locale_XDIGIT __hex_digit -# define _Locale_PUNCT __punctuation -# define _Locale_SPACE __space_char -# define _Locale_PRINT __printable -# define _Locale_ALPHA __alphanumeric -#elif defined (__BORLANDC__) -# define _Locale_CNTRL _IS_CTL -# define _Locale_UPPER _IS_UPP -# define _Locale_LOWER _IS_LOW -# define _Locale_DIGIT _IS_DIG -# define _Locale_XDIGIT _IS_HEX -# define _Locale_PUNCT _IS_PUN -# define _Locale_SPACE _IS_SP -# define _Locale_PRINT (_IS_SP|_IS_PUN|_IS_UPP|_IS_LOW|_IS_DIG) -# define _Locale_ALPHA _IS_ALPHA -#elif defined (_STLP_MSVC_LIB) || defined (__MINGW32__) -# define _Locale_CNTRL _CONTROL -# define _Locale_UPPER _UPPER -# define _Locale_LOWER _LOWER -# define _Locale_DIGIT _DIGIT -# define _Locale_XDIGIT _HEX -# define _Locale_PUNCT _PUNCT -# define _Locale_SPACE _SPACE -# define _Locale_PRINT (_ALPHA | _DIGIT | _BLANK | _PUNCT) -# define _Locale_ALPHA ( _ALPHA & ~ (_UPPER | _LOWER )) -#elif defined (__DMC__) -# define _Locale_CNTRL _CONTROL -# define _Locale_UPPER _UPPER -# define _Locale_LOWER _LOWER -# define _Locale_DIGIT _DIGIT -# define _Locale_XDIGIT _HEX -# define _Locale_PUNCT _PUNCT -# define _Locale_SPACE _SPACE -# define _Locale_PRINT (_UPPER | _LOWER | _DIGIT | _PUNCT | _SPACE) -# define _Locale_ALPHA _ALPHA & ~(_UPPER | _LOWER) -#elif defined (__MRC__) || defined (__SC__) /* *TY 02/24/2000 - added support for MPW */ -# define _Locale_CNTRL _CTL -# define _Locale_UPPER _UPP -# define _Locale_LOWER _LOW -# define _Locale_DIGIT _DIG -# define _Locale_XDIGIT _HEX -# define _Locale_PUNCT _PUN -# define _Locale_SPACE _BLA -# define _Locale_PRINT (_UPP | _LOW | _DIG | _PUN | _BLA) -# define _Locale_ALPHA (_UPP | _LOW) -#elif defined (__MLCCPP__) -# define _Locale_CNTRL 1 -# define _Locale_UPPER 2 -# define _Locale_LOWER 4 -# define _Locale_DIGIT 8 -# define _Locale_XDIGIT 16 -# define _Locale_PUNCT 32 -# define _Locale_SPACE 64 -# define _Locale_PRINT 128 -# define _Locale_ALPHA 256 -#elif defined (__GNUC__) && (__GNUC__ == 3) && defined (__APPLE__) -# define _Locale_CNTRL _C -# define _Locale_UPPER _U -# define _Locale_LOWER _L -# define _Locale_DIGIT _D -# define _Locale_XDIGIT _X -# define _Locale_PUNCT _P -# define _Locale_SPACE _S -# define _Locale_PRINT _R -# define _Locale_ALPHA _A -#elif defined (__hpux) || defined (__osf__) -# if defined (__HP_aCC) && !defined (_INCLUDE_HPUX_SOURCE) -# define _ISALPHA 0x001 -# define _ISALNUM 0x002 -# define _ISBLANK 0x004 -# define _ISCNTRL 0x008 -# define _ISDIGIT 0x010 -# define _ISGRAPH 0x020 -# define _ISLOWER 0x040 -# define _ISPRINT 0x080 -# define _ISPUNCT 0x100 -# define _ISSPACE 0x200 -# define _ISUPPER 0x400 -# define _ISXDIGIT 0x800 -# endif -# define _Locale_CNTRL _ISCNTRL -# define _Locale_UPPER _ISUPPER -# define _Locale_LOWER _ISLOWER -# define _Locale_DIGIT _ISDIGIT -# define _Locale_XDIGIT _ISXDIGIT -# define _Locale_PUNCT _ISPUNCT -# define _Locale_SPACE _ISSPACE -# define _Locale_PRINT _ISPRINT -# define _Locale_ALPHA _ISALPHA -#elif defined (__MVS__) || defined (__OS400__) -# define _Locale_CNTRL __ISCNTRL -# define _Locale_UPPER __ISUPPER -# define _Locale_LOWER __ISLOWER -# define _Locale_DIGIT __ISDIGIT -# define _Locale_XDIGIT __ISXDIGIT -# define _Locale_PUNCT __ISPUNCT -# define _Locale_SPACE __ISSPACE -# define _Locale_PRINT __ISPRINT -# define _Locale_ALPHA __ISALPHA -#elif defined (__QNXNTO__) || defined (__WATCOMC__) -# define _Locale_CNTRL _CNTRL -# define _Locale_UPPER _UPPER -# define _Locale_LOWER _LOWER -# define _Locale_DIGIT _DIGIT -# define _Locale_XDIGIT _XDIGT -# define _Locale_PUNCT _PUNCT -# define _Locale_SPACE _SPACE -# define _Locale_PRINT _PRINT -# define _Locale_ALPHA (_UPPER | _LOWER) -#elif defined (__DJGPP) -# define _Locale_CNTRL __dj_ISCNTRL -# define _Locale_UPPER __dj_ISUPPER -# define _Locale_LOWER __dj_ISLOWER -# define _Locale_DIGIT __dj_ISDIGIT -# define _Locale_XDIGIT __dj_ISXDIGIT -# define _Locale_PUNCT __dj_ISPUNCT -# define _Locale_SPACE __dj_ISSPACE -# define _Locale_PRINT __dj_ISPRINT -# define _Locale_ALPHA __dj_ISALPHA -#elif defined (_STLP_SCO_OPENSERVER) -# define _Locale_CNTRL _C -# define _Locale_UPPER _U -# define _Locale_LOWER _L -# define _Locale_DIGIT _N -# define _Locale_XDIGIT _X -# define _Locale_PUNCT _P -# define _Locale_SPACE _S -# define _Locale_PRINT _R -# define _Locale_ALPHA _A -#elif defined (__NCR_SVR) -# define _Locale_CNTRL _C -# define _Locale_UPPER _U -# define _Locale_LOWER _L -# define _Locale_DIGIT _N -# define _Locale_XDIGIT _X -# define _Locale_PUNCT _P -# define _Locale_SPACE _S -# define _Locale_PRINT (_P | _U | _L | _N | _B) -# define _Locale_ALPHA (_U | _L) -#elif defined (_CRAY) -# define _Locale_CNTRL _CNTRL -# define _Locale_UPPER _UPPER -# define _Locale_LOWER _LOWER -# define _Locale_DIGIT _DIGIT -# define _Locale_XDIGIT _XDIGIT -# define _Locale_PUNCT _PUNCT -# define _Locale_SPACE _SPACE -# define _Locale_PRINT _PRINT -# define _Locale_ALPHA _ALPHA -#endif - -/* We arbitrarily consider _Locale_CNTRL macro to check locale facet numeric - * identifier has been defined for the platform/compiler: - */ -#if !defined (_Locale_CNTRL) -# error Unable to find your platform locale facets definitions, please grant them. -#endif - -#endif /* _STLP_C_LOCALE_H */ diff --git a/WebKit/android/stlport/stl/char_traits.h b/WebKit/android/stlport/stl/char_traits.h deleted file mode 100644 index 12e8d08..0000000 --- a/WebKit/android/stlport/stl/char_traits.h +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_CHAR_TRAITS_H -#define _STLP_CHAR_TRAITS_H - -// Define char_traits - -#ifndef _STLP_INTERNAL_CSTDDEF -# include <stl/_cstddef.h> -#endif - -#ifndef _STLP_INTERNAL_CSTRING -# include <stl/_cstring.h> -#endif - -#if defined (__unix) || defined (N_PLAT_NLM) -# include <sys/types.h> // For off_t -#endif /* __unix */ - -#ifdef __BORLANDC__ -# include _STLP_NATIVE_C_HEADER(mem.h) -# include _STLP_NATIVE_C_HEADER(string.h) -# include _STLP_NATIVE_C_HEADER(_stddef.h) -#endif - -#ifndef _STLP_INTERNAL_CONSTRUCT_H -# include <stl/_construct.h> -#endif - -#ifndef _STLP_INTERNAL_CWCHAR -# include <stl/_cwchar.h> -#endif - -_STLP_BEGIN_NAMESPACE - -template <class _Tp> class allocator; - -#define _STLP_NULL_CHAR_INIT(_ChT) _STLP_DEFAULT_CONSTRUCTED(_ChT) - -#if defined (__sgi) && defined (_STLP_HAS_NO_NEW_C_HEADERS) /* IRIX */ -typedef off64_t streamoff; -#elif defined(_STLP_WCE) -typedef long streamoff; -#elif defined (_STLP_WIN32) -# if defined (_STLP_LONG_LONG) && !defined (__CYGWIN__) -//The Win32 file io API support 64 bits access so streamoff and streamsize -//has to reflect that. Do not change the stringbuf behavior. -typedef _STLP_LONG_LONG streamoff; -# else -typedef ptrdiff_t streamoff; -# endif -#else // __unix -# ifdef _STLP_USE_DEFAULT_FILE_OFFSET -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 -#endif /* ___unix */ - -#if defined (_STLP_WIN32) -typedef streamoff streamsize; -#else -typedef ptrdiff_t streamsize; -#endif - -// Class fpos, which represents a position within a file. (The C++ -// standard calls for it to be defined in <ios>. This implementation -// moves it to <iosfwd>, which is included by <ios>.) -template <class _StateT> class fpos { -public: // From table 88 of the C++ standard. - fpos(streamoff __pos) : _M_pos(__pos), _M_st(_STLP_NULL_CHAR_INIT(_StateT)) {} - fpos() : _M_pos(0), _M_st(_STLP_NULL_CHAR_INIT(_StateT)) {} - - operator streamoff() const { return _M_pos; } - - bool operator==(const fpos& __y) const - { return _M_pos == __y._M_pos; } - bool operator!=(const fpos& __y) const - { return _M_pos != __y._M_pos; } - - fpos& operator+=(streamoff __off) { - _M_pos += __off; - return *this; - } - fpos& operator-=(streamoff __off) { - _M_pos -= __off; - return *this; - } - - fpos operator+(streamoff __off) { - fpos __tmp(*this); - __tmp += __off; - return __tmp; - } - fpos operator-(streamoff __off) { - fpos __tmp(*this); - __tmp -= __off; - return __tmp; - } - -public: // Manipulation of the state member. - _StateT state() const { return _M_st; } - void state(_StateT __st) { _M_st = __st; } -private: - streamoff _M_pos; - _StateT _M_st; -}; - -#if !defined (_STLP_NO_MBSTATE_T) -typedef fpos<mbstate_t> streampos; -typedef fpos<mbstate_t> wstreampos; -#endif - -// Class __char_traits_base. -template <class _CharT, class _IntT> -class __char_traits_base { -public: - typedef _CharT char_type; - typedef _IntT int_type; - typedef streamoff off_type; - typedef streampos pos_type; -#if defined (_STLP_NO_MBSTATE_T) - typedef char state_type; -#else - typedef mbstate_t state_type; -#endif - - static void _STLP_CALL assign(char_type& __c1, const char_type& __c2) { __c1 = __c2; } - static bool _STLP_CALL eq(const char_type& __c1, const char_type& __c2) - { return __c1 == __c2; } - static bool _STLP_CALL lt(const char_type& __c1, const char_type& __c2) - { return __c1 < __c2; } - - static int _STLP_CALL compare(const char_type* __s1, const char_type* __s2, size_t __n) { - for (size_t __i = 0; __i < __n; ++__i) - if (!eq(__s1[__i], __s2[__i])) - return __s1[__i] < __s2[__i] ? -1 : 1; - return 0; - } - - static size_t _STLP_CALL length(const char_type* __s) { - const char_type _NullChar = _STLP_DEFAULT_CONSTRUCTED(char_type); - size_t __i(0); - for (; !eq(__s[__i], _NullChar); ++__i) {} - return __i; - } - - static const char_type* _STLP_CALL find(const char_type* __s, size_t __n, const char_type& __c) { - for ( ; __n > 0 ; ++__s, --__n) - if (eq(*__s, __c)) - return __s; - return 0; - } - - static char_type* _STLP_CALL move(char_type* __s1, const char_type* __s2, size_t _Sz) - { return (_Sz == 0 ? __s1 : (char_type*)memmove(__s1, __s2, _Sz * sizeof(char_type))); } - - static char_type* _STLP_CALL copy(char_type* __s1, const char_type* __s2, size_t __n) { - return (__n == 0 ? __s1 : - (char_type*)memcpy(__s1, __s2, __n * sizeof(char_type))); - } - - static char_type* _STLP_CALL assign(char_type* __s, size_t __n, char_type __c) { - for (size_t __i = 0; __i < __n; ++__i) - __s[__i] = __c; - return __s; - } - - static int_type _STLP_CALL not_eof(const int_type& __c) - { return !eq_int_type(__c, eof()) ? __c : __STATIC_CAST(int_type, 0); } - - static char_type _STLP_CALL to_char_type(const int_type& __c) - { return (char_type)__c; } - - static int_type _STLP_CALL to_int_type(const char_type& __c) - { return (int_type)__c; } - - static bool _STLP_CALL eq_int_type(const int_type& __c1, const int_type& __c2) - { return __c1 == __c2; } - - static int_type _STLP_CALL eof() - { return (int_type)-1; } -}; - -// Generic char_traits class. Note that this class is provided only -// as a base for explicit specialization; it is unlikely to be useful -// as is for any particular user-defined type. In particular, it -// *will not work* for a non-POD type. - -template <class _CharT> -class char_traits - : public __char_traits_base<_CharT, _CharT> {}; - -// Specialization for char. - -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC char_traits<char> - : public __char_traits_base<char, int> { -public: - typedef char char_type; - typedef int int_type; - typedef streamoff off_type; -#if !defined (_STLP_NO_MBSTATE_T) - typedef streampos pos_type; - typedef mbstate_t state_type; -#endif - - static char _STLP_CALL to_char_type(const int& __c) - { return (char)(unsigned char)__c; } - - static int _STLP_CALL to_int_type(const char& __c) - { return (unsigned char)__c; } - - static int _STLP_CALL compare(const char* __s1, const char* __s2, size_t __n) - { return memcmp(__s1, __s2, __n); } - - static size_t _STLP_CALL length(const char* __s) - { return strlen(__s); } - - static void _STLP_CALL assign(char& __c1, const char& __c2) - { __c1 = __c2; } - - static char* _STLP_CALL assign(char* __s, size_t __n, char __c) { - memset(__s, __c, __n); - return __s; - } -}; - -#if defined (_STLP_HAS_WCHAR_T) -// Specialization for wchar_t. -_STLP_TEMPLATE_NULL -class _STLP_CLASS_DECLSPEC char_traits<wchar_t> - : public __char_traits_base<wchar_t, wint_t> { -# if !defined (_STLP_NO_NATIVE_WIDE_FUNCTIONS) && !defined (_STLP_WCHAR_HPACC_EXCLUDE) -public: -# if !defined (N_PLAT_NLM) -# if !defined (__BORLANDC__) - static wchar_t* _STLP_CALL move(wchar_t* __dest, const wchar_t* __src, size_t __n) - { return wmemmove(__dest, __src, __n); } -# endif - - static wchar_t* _STLP_CALL copy(wchar_t* __dest, const wchar_t* __src, size_t __n) - { return wmemcpy(__dest, __src, __n); } - -# if !defined (__DMC__) && !defined (__BORLANDC__) - static int _STLP_CALL compare(const wchar_t* __s1, const wchar_t* __s2, size_t __n) - { return wmemcmp(__s1, __s2, __n); } -# endif - - static wchar_t* _STLP_CALL assign(wchar_t* __s, size_t __n, wchar_t __c) - { return wmemset(__s, __c, __n); } -# endif - - static size_t _STLP_CALL length(const wchar_t* __s) - { return wcslen(__s); } - - static void _STLP_CALL assign(wchar_t& __c1, const wchar_t& __c2) - { __c1 = __c2; } -# endif -}; -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_CHAR_TRAITS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/concept_checks.h b/WebKit/android/stlport/stl/concept_checks.h deleted file mode 100644 index 5fe02c2..0000000 --- a/WebKit/android/stlport/stl/concept_checks.h +++ /dev/null @@ -1,810 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Silicon Graphics makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - */ - -#ifndef __CONCEPT_CHECKS_H -#define __CONCEPT_CHECKS_H - -/* - Use these macro like assertions, but they assert properties - on types (usually template arguments). In technical terms they - verify whether a type "models" a "concept". - - This set of requirements and the terminology used here is derived - from the book "Generic Programming and the STL" by Matt Austern - (Addison Wesley). For further information please consult that - book. The requirements also are intended to match the ANSI/ISO C++ - standard. - - This file covers the basic concepts and the iterator concepts. - There are several other files that provide the requirements - for the STL containers: - container_concepts.h - sequence_concepts.h - assoc_container_concepts.h - - Jeremy Siek, 1999 - - TO DO: - - some issues with regards to concept classification and mutability - including AssociativeContianer -> ForwardContainer - and SortedAssociativeContainer -> ReversibleContainer - - HashedAssociativeContainer - - Allocator - - Function Object Concepts - - */ - -#ifndef _STLP_USE_CONCEPT_CHECKS - -// Some compilers lack the features that are necessary for concept checks. -// On those compilers we define the concept check macros to do nothing. -#define _STLP_REQUIRES(__type_var, __concept) do {} while(0) -#define _STLP_CLASS_REQUIRES(__type_var, __concept) \ - static int __##__type_var##_##__concept -#define _STLP_CONVERTIBLE(__type_x, __type_y) do {} while(0) -#define _STLP_REQUIRES_SAME_TYPE(__type_x, __type_y) do {} while(0) -#define _STLP_CLASS_REQUIRES_SAME_TYPE(__type_x, __type_y) \ - static int __##__type_x##__type_y##_require_same_type -#define _STLP_GENERATOR_CHECK(__func, __ret) do {} while(0) -#define _STLP_CLASS_GENERATOR_CHECK(__func, __ret) \ - static int __##__func##__ret##_generator_check -#define _STLP_UNARY_FUNCTION_CHECK(__func, __ret, __arg) do {} while(0) -#define _STLP_CLASS_UNARY_FUNCTION_CHECK(__func, __ret, __arg) \ - static int __##__func##__ret##__arg##_unary_function_check -#define _STLP_BINARY_FUNCTION_CHECK(__func, __ret, __first, __second) \ - do {} while(0) -#define _STLP_CLASS_BINARY_FUNCTION_CHECK(__func, __ret, __first, __second) \ - static int __##__func##__ret##__first##__second##_binary_function_check -#define _STLP_REQUIRES_BINARY_OP(__opname, __ret, __first, __second) \ - do {} while(0) -#define _STLP_CLASS_REQUIRES_BINARY_OP(__opname, __ret, __first, __second) \ - static int __##__opname##__ret##__first##__second##_require_binary_op - -#else /* _STLP_USE_CONCEPT_CHECKS */ - -// This macro tests whether the template argument "__type_var" -// satisfies the requirements of "__concept". Here is a list of concepts -// that we know how to check: -// _Allocator -// _Assignable -// _DefaultConstructible -// _EqualityComparable -// _LessThanComparable -// _TrivialIterator -// _InputIterator -// _OutputIterator -// _ForwardIterator -// _BidirectionalIterator -// _RandomAccessIterator -// _Mutable_TrivialIterator -// _Mutable_ForwardIterator -// _Mutable_BidirectionalIterator -// _Mutable_RandomAccessIterator - -#define _STLP_REQUIRES(__type_var, __concept) \ -do { \ - void (*__x)( __type_var ) = __concept##_concept_specification< __type_var >\ - ::##__concept##_requirement_violation; __x = __x; } while (0) - -// Use this to check whether type X is convertible to type Y -#define _STLP_CONVERTIBLE(__type_x, __type_y) \ -do { \ - void (*__x)( __type_x , __type_y ) = _STL_CONVERT_ERROR< __type_x , \ - __type_y >::__type_X_is_not_convertible_to_type_Y; \ - __x = __x; } while (0) - -// Use this to test whether two template arguments are the same type -#define _STLP_REQUIRES_SAME_TYPE(__type_x, __type_y) \ -do { \ - void (*__x)( __type_x , __type_y ) = _STL_SAME_TYPE_ERROR< __type_x, \ - __type_y >::__type_X_not_same_as_type_Y; \ - __x = __x; } while (0) - - -// function object checks -#define _STLP_GENERATOR_CHECK(__func, __ret) \ -do { \ - __ret (*__x)( __func&) = \ - _STL_GENERATOR_ERROR< \ - __func, __ret>::__generator_requirement_violation; \ - __x = __x; } while (0) - - -#define _STLP_UNARY_FUNCTION_CHECK(__func, __ret, __arg) \ -do { \ - __ret (*__x)( __func&, const __arg& ) = \ - _STL_UNARY_FUNCTION_ERROR< \ - __func, __ret, __arg>::__unary_function_requirement_violation; \ - __x = __x; } while (0) - - -#define _STLP_BINARY_FUNCTION_CHECK(__func, __ret, __first, __second) \ -do { \ - __ret (*__x)( __func&, const __first&, const __second& ) = \ - _STL_BINARY_FUNCTION_ERROR< \ - __func, __ret, __first, __second>::__binary_function_requirement_violation; \ - __x = __x; } while (0) - - -#define _STLP_REQUIRES_BINARY_OP(__opname, __ret, __first, __second) \ - do { \ - __ret (*__x)( __first&, __second& ) = _STL_BINARY##__opname##_ERROR< \ - __ret, __first, __second>::__binary_operator_requirement_violation; \ - __ret (*__y)( const __first&, const __second& ) = \ - _STL_BINARY##__opname##_ERROR< __ret, __first, __second>:: \ - __const_binary_operator_requirement_violation; \ - __y = __y; __x = __x; } while (0) - - -#ifdef _STLP_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE - -#define _STLP_CLASS_REQUIRES(__type_var, __concept) -#define _STLP_CLASS_REQUIRES_SAME_TYPE(__type_x, __type_y) -#define _STLP_CLASS_GENERATOR_CHECK(__func, __ret) -#define _STLP_CLASS_UNARY_FUNCTION_CHECK(__func, __ret, __arg) -#define _STLP_CLASS_BINARY_FUNCTION_CHECK(__func, __ret, __first, __second) -#define _STLP_CLASS_REQUIRES_BINARY_OP(__opname, __ret, __first, __second) - -#else - -// Use this macro inside of template classes, where you would -// like to place requirements on the template arguments to the class -// Warning: do not pass pointers and such (e.g. T*) in as the __type_var, -// since the type_var is used to construct identifiers. Instead typedef -// the pointer type, then use the typedef name for the __type_var. -#define _STLP_CLASS_REQUIRES(__type_var, __concept) \ - typedef void (* __func##__type_var##__concept)( __type_var ); \ - template <__func##__type_var##__concept _Tp1> \ - struct __dummy_struct_##__type_var##__concept { }; \ - static __dummy_struct_##__type_var##__concept< \ - __concept##_concept_specification< \ - __type_var>::__concept##_requirement_violation> \ - __dummy_ptr_##__type_var##__concept - - -#define _STLP_CLASS_REQUIRES_SAME_TYPE(__type_x, __type_y) \ - typedef void (* __func_##__type_x##__type_y##same_type)( __type_x, \ - __type_y ); \ - template < __func_##__type_x##__type_y##same_type _Tp1> \ - struct __dummy_struct_##__type_x##__type_y##_same_type { }; \ - static __dummy_struct_##__type_x##__type_y##_same_type< \ - _STL_SAME_TYPE_ERROR<__type_x, __type_y>::__type_X_not_same_as_type_Y> \ - __dummy_ptr_##__type_x##__type_y##_same_type - - -#define _STLP_CLASS_GENERATOR_CHECK(__func, __ret) \ - typedef __ret (* __f_##__func##__ret##_generator)( __func& ); \ - template <__f_##__func##__ret##_generator _Tp1> \ - struct __dummy_struct_##__func##__ret##_generator { }; \ - static __dummy_struct_##__func##__ret##_generator< \ - _STL_GENERATOR_ERROR< \ - __func, __ret>::__generator_requirement_violation> \ - __dummy_ptr_##__func##__ret##_generator - - -#define _STLP_CLASS_UNARY_FUNCTION_CHECK(__func, __ret, __arg) \ - typedef __ret (* __f_##__func##__ret##__arg##_unary_check)( __func&, \ - const __arg& ); \ - template <__f_##__func##__ret##__arg##_unary_check _Tp1> \ - struct __dummy_struct_##__func##__ret##__arg##_unary_check { }; \ - static __dummy_struct_##__func##__ret##__arg##_unary_check< \ - _STL_UNARY_FUNCTION_ERROR< \ - __func, __ret, __arg>::__unary_function_requirement_violation> \ - __dummy_ptr_##__func##__ret##__arg##_unary_check - - -#define _STLP_CLASS_BINARY_FUNCTION_CHECK(__func, __ret, __first, __second) \ - typedef __ret (* __f_##__func##__ret##__first##__second##_binary_check)( __func&, const __first&,\ - const __second& ); \ - template <__f_##__func##__ret##__first##__second##_binary_check _Tp1> \ - struct __dummy_struct_##__func##__ret##__first##__second##_binary_check { }; \ - static __dummy_struct_##__func##__ret##__first##__second##_binary_check< \ - _STL_BINARY_FUNCTION_ERROR<__func, __ret, __first, __second>:: \ - __binary_function_requirement_violation> \ - __dummy_ptr_##__func##__ret##__first##__second##_binary_check - - -#define _STLP_CLASS_REQUIRES_BINARY_OP(__opname, __ret, __first, __second) \ - typedef __ret (* __f_##__func##__ret##__first##__second##_binary_op)(const __first&, \ - const __second& ); \ - template <__f_##__func##__ret##__first##__second##_binary_op _Tp1> \ - struct __dummy_struct_##__func##__ret##__first##__second##_binary_op { }; \ - static __dummy_struct_##__func##__ret##__first##__second##_binary_op< \ - _STL_BINARY##__opname##_ERROR<__ret, __first, __second>:: \ - __binary_operator_requirement_violation> \ - __dummy_ptr_##__func##__ret##__first##__second##_binary_op - -#endif - -/* helper class for finding non-const version of a type. Need to have - something to assign to etc. when testing constant iterators. */ - -template <class _Tp> -struct _Mutable_trait { - typedef _Tp _Type; -}; -template <class _Tp> -struct _Mutable_trait<const _Tp> { - typedef _Tp _Type; -}; - - -/* helper function for avoiding compiler warnings about unused variables */ -template <class _Type> -void __sink_unused_warning(_Type) { } - -template <class _TypeX, class _TypeY> -struct _STL_CONVERT_ERROR { - static void - __type_X_is_not_convertible_to_type_Y(_TypeX __x, _TypeY) { - _TypeY __y = __x; - __sink_unused_warning(__y); - } -}; - - -template <class _Type> struct __check_equal { }; - -template <class _TypeX, class _TypeY> -struct _STL_SAME_TYPE_ERROR { - static void - __type_X_not_same_as_type_Y(_TypeX , _TypeY ) { - __check_equal<_TypeX> t1 = __check_equal<_TypeY>(); - } -}; - - -// Some Functon Object Checks - -template <class _Func, class _Ret> -struct _STL_GENERATOR_ERROR { - static _Ret __generator_requirement_violation(_Func& __f) { - return __f(); - } -}; - -template <class _Func> -struct _STL_GENERATOR_ERROR<_Func, void> { - static void __generator_requirement_violation(_Func& __f) { - __f(); - } -}; - - -template <class _Func, class _Ret, class _Arg> -struct _STL_UNARY_FUNCTION_ERROR { - static _Ret - __unary_function_requirement_violation(_Func& __f, - const _Arg& __arg) { - return __f(__arg); - } -}; - -template <class _Func, class _Arg> -struct _STL_UNARY_FUNCTION_ERROR<_Func, void, _Arg> { - static void - __unary_function_requirement_violation(_Func& __f, - const _Arg& __arg) { - __f(__arg); - } -}; - -template <class _Func, class _Ret, class _First, class _Second> -struct _STL_BINARY_FUNCTION_ERROR { - static _Ret - __binary_function_requirement_violation(_Func& __f, - const _First& __first, - const _Second& __second) { - return __f(__first, __second); - } -}; - -template <class _Func, class _First, class _Second> -struct _STL_BINARY_FUNCTION_ERROR<_Func, void, _First, _Second> { - static void - __binary_function_requirement_violation(_Func& __f, - const _First& __first, - const _Second& __second) { - __f(__first, __second); - } -}; - - -#define _STLP_DEFINE_BINARY_OP_CHECK(_OP, _NAME) \ -template <class _Ret, class _First, class _Second> \ -struct _STL_BINARY##_NAME##_ERROR { \ - static _Ret \ - __const_binary_operator_requirement_violation(const _First& __first, \ - const _Second& __second) { \ - return __first _OP __second; \ - } \ - static _Ret \ - __binary_operator_requirement_violation(_First& __first, \ - _Second& __second) { \ - return __first _OP __second; \ - } \ -} - -_STLP_DEFINE_BINARY_OP_CHECK(==, _OP_EQUAL); -_STLP_DEFINE_BINARY_OP_CHECK(!=, _OP_NOT_EQUAL); -_STLP_DEFINE_BINARY_OP_CHECK(<, _OP_LESS_THAN); -_STLP_DEFINE_BINARY_OP_CHECK(<=, _OP_LESS_EQUAL); -_STLP_DEFINE_BINARY_OP_CHECK(>, _OP_GREATER_THAN); -_STLP_DEFINE_BINARY_OP_CHECK(>=, _OP_GREATER_EQUAL); -_STLP_DEFINE_BINARY_OP_CHECK(+, _OP_PLUS); -_STLP_DEFINE_BINARY_OP_CHECK(*, _OP_TIMES); -_STLP_DEFINE_BINARY_OP_CHECK(/, _OP_DIVIDE); -_STLP_DEFINE_BINARY_OP_CHECK(-, _OP_SUBTRACT); -_STLP_DEFINE_BINARY_OP_CHECK(%, _OP_MOD); -// ... - -// TODO, add unary operators (prefix and postfix) - -/* - The presence of this class is just to trick EDG into displaying - these error messages before any other errors. Without the - classes, the errors in the functions get reported after - other class errors deep inside the library. The name - choice just makes for an eye catching error message :) - */ -struct _STL_ERROR { - - template <class _Type> - static _Type - __default_constructor_requirement_violation(_Type) { - return _Type(); - } - template <class _Type> - static _Type - __assignment_operator_requirement_violation(_Type __a) { - __a = __a; - return __a; - } - template <class _Type> - static _Type - __copy_constructor_requirement_violation(_Type __a) { - _Type __c(__a); - return __c; - } - template <class _Type> - static _Type - __const_parameter_required_for_copy_constructor(_Type /* __a */, - const _Type& __b) { - _Type __c(__b); - return __c; - } - template <class _Type> - static _Type - __const_parameter_required_for_assignment_operator(_Type __a, - const _Type& __b) { - __a = __b; - return __a; - } - template <class _Type> - static _Type - __less_than_comparable_requirement_violation(_Type __a, _Type __b) { - if (__a < __b || __a > __b || __a <= __b || __a >= __b) return __a; - return __b; - } - template <class _Type> - static _Type - __equality_comparable_requirement_violation(_Type __a, _Type __b) { - if (__a == __b || __a != __b) return __a; - return __b; - } - template <class _Iterator> - static void - __dereference_operator_requirement_violation(_Iterator __i) { - __sink_unused_warning(*__i); - } - template <class _Iterator> - static void - __dereference_operator_and_assignment_requirement_violation(_Iterator __i) { - *__i = *__i; - } - template <class _Iterator> - static void - __preincrement_operator_requirement_violation(_Iterator __i) { - ++__i; - } - template <class _Iterator> - static void - __postincrement_operator_requirement_violation(_Iterator __i) { - __i++; - } - template <class _Iterator> - static void - __predecrement_operator_requirement_violation(_Iterator __i) { - --__i; - } - template <class _Iterator> - static void - __postdecrement_operator_requirement_violation(_Iterator __i) { - __i--; - } - template <class _Iterator, class _Type> - static void - __postincrement_operator_and_assignment_requirement_violation(_Iterator __i, - _Type __t) { - *__i++ = __t; - } - template <class _Iterator, class _Distance> - static _Iterator - __iterator_addition_assignment_requirement_violation(_Iterator __i, - _Distance __n) { - __i += __n; - return __i; - } - template <class _Iterator, class _Distance> - static _Iterator - __iterator_addition_requirement_violation(_Iterator __i, _Distance __n) { - __i = __i + __n; - __i = __n + __i; - return __i; - } - template <class _Iterator, class _Distance> - static _Iterator - __iterator_subtraction_assignment_requirement_violation(_Iterator __i, - _Distance __n) { - __i -= __n; - return __i; - } - template <class _Iterator, class _Distance> - static _Iterator - __iterator_subtraction_requirement_violation(_Iterator __i, _Distance __n) { - __i = __i - __n; - return __i; - } - template <class _Iterator, class _Distance> - static _Distance - __difference_operator_requirement_violation(_Iterator __i, _Iterator __j, - _Distance __n) { - __n = __i - __j; - return __n; - } - template <class _Exp, class _Type, class _Distance> - static _Type - __element_access_operator_requirement_violation(_Exp __x, _Type*, - _Distance __n) { - return __x[__n]; - } - template <class _Exp, class _Type, class _Distance> - static void - __element_assignment_operator_requirement_violation(_Exp __x, - _Type* __t, - _Distance __n) { - __x[__n] = *__t; - } - -}; /* _STL_ERROR */ - -/* Associated Type Requirements */ - -_STLP_BEGIN_NAMESPACE -template <class _Iterator> struct iterator_traits; -_STLP_END_NAMESPACE - -template <class _Iter> -struct __value_type_type_definition_requirement_violation { - typedef typename __STD::iterator_traits<_Iter>::value_type value_type; -}; - -template <class _Iter> -struct __difference_type_type_definition_requirement_violation { - typedef typename __STD::iterator_traits<_Iter>::difference_type - difference_type; -}; - -template <class _Iter> -struct __reference_type_definition_requirement_violation { - typedef typename __STD::iterator_traits<_Iter>::reference reference; -}; - -template <class _Iter> -struct __pointer_type_definition_requirement_violation { - typedef typename __STD::iterator_traits<_Iter>::pointer pointer; -}; - -template <class _Iter> -struct __iterator_category_type_definition_requirement_violation { - typedef typename __STD::iterator_traits<_Iter>::iterator_category - iterator_category; -}; - -/* Assignable Requirements */ - - -template <class _Type> -struct _Assignable_concept_specification { - static void _Assignable_requirement_violation(_Type __a) { - _STL_ERROR::__assignment_operator_requirement_violation(__a); - _STL_ERROR::__copy_constructor_requirement_violation(__a); - _STL_ERROR::__const_parameter_required_for_copy_constructor(__a,__a); - _STL_ERROR::__const_parameter_required_for_assignment_operator(__a,__a); - } -}; - -/* DefaultConstructible Requirements */ - - -template <class _Type> -struct _DefaultConstructible_concept_specification { - static void _DefaultConstructible_requirement_violation(_Type __a) { - _STL_ERROR::__default_constructor_requirement_violation(__a); - } -}; - -/* EqualityComparable Requirements */ - -template <class _Type> -struct _EqualityComparable_concept_specification { - static void _EqualityComparable_requirement_violation(_Type __a) { - _STL_ERROR::__equality_comparable_requirement_violation(__a, __a); - } -}; - -/* LessThanComparable Requirements */ -template <class _Type> -struct _LessThanComparable_concept_specification { - static void _LessThanComparable_requirement_violation(_Type __a) { - _STL_ERROR::__less_than_comparable_requirement_violation(__a, __a); - } -}; - -/* TrivialIterator Requirements */ - -template <class _TrivialIterator> -struct _TrivialIterator_concept_specification { -static void -_TrivialIterator_requirement_violation(_TrivialIterator __i) { - typedef typename - __value_type_type_definition_requirement_violation<_TrivialIterator>:: - value_type __T; - // Refinement of Assignable - _Assignable_concept_specification<_TrivialIterator>:: - _Assignable_requirement_violation(__i); - // Refinement of DefaultConstructible - _DefaultConstructible_concept_specification<_TrivialIterator>:: - _DefaultConstructible_requirement_violation(__i); - // Refinement of EqualityComparable - _EqualityComparable_concept_specification<_TrivialIterator>:: - _EqualityComparable_requirement_violation(__i); - // Valid Expressions - _STL_ERROR::__dereference_operator_requirement_violation(__i); -} -}; - -template <class _TrivialIterator> -struct _Mutable_TrivialIterator_concept_specification { -static void -_Mutable_TrivialIterator_requirement_violation(_TrivialIterator __i) { - _TrivialIterator_concept_specification<_TrivialIterator>:: - _TrivialIterator_requirement_violation(__i); - // Valid Expressions - _STL_ERROR::__dereference_operator_and_assignment_requirement_violation(__i); -} -}; - -/* InputIterator Requirements */ - -template <class _InputIterator> -struct _InputIterator_concept_specification { -static void -_InputIterator_requirement_violation(_InputIterator __i) { - // Refinement of TrivialIterator - _TrivialIterator_concept_specification<_InputIterator>:: - _TrivialIterator_requirement_violation(__i); - // Associated Types - __difference_type_type_definition_requirement_violation<_InputIterator>(); - __reference_type_definition_requirement_violation<_InputIterator>(); - __pointer_type_definition_requirement_violation<_InputIterator>(); - __iterator_category_type_definition_requirement_violation<_InputIterator>(); - // Valid Expressions - _STL_ERROR::__preincrement_operator_requirement_violation(__i); - _STL_ERROR::__postincrement_operator_requirement_violation(__i); -} -}; - -/* OutputIterator Requirements */ - -template <class _OutputIterator> -struct _OutputIterator_concept_specification { -static void -_OutputIterator_requirement_violation(_OutputIterator __i) { - // Refinement of Assignable - _Assignable_concept_specification<_OutputIterator>:: - _Assignable_requirement_violation(__i); - // Associated Types - __iterator_category_type_definition_requirement_violation<_OutputIterator>(); - // Valid Expressions - _STL_ERROR::__dereference_operator_requirement_violation(__i); - _STL_ERROR::__preincrement_operator_requirement_violation(__i); - _STL_ERROR::__postincrement_operator_requirement_violation(__i); - _STL_ERROR:: - __postincrement_operator_and_assignment_requirement_violation(__i, *__i); -} -}; - -/* ForwardIterator Requirements */ - -template <class _ForwardIterator> -struct _ForwardIterator_concept_specification { -static void -_ForwardIterator_requirement_violation(_ForwardIterator __i) { - // Refinement of InputIterator - _InputIterator_concept_specification<_ForwardIterator>:: - _InputIterator_requirement_violation(__i); -} -}; - -template <class _ForwardIterator> -struct _Mutable_ForwardIterator_concept_specification { -static void -_Mutable_ForwardIterator_requirement_violation(_ForwardIterator __i) { - _ForwardIterator_concept_specification<_ForwardIterator>:: - _ForwardIterator_requirement_violation(__i); - // Refinement of OutputIterator - _OutputIterator_concept_specification<_ForwardIterator>:: - _OutputIterator_requirement_violation(__i); -} -}; - -/* BidirectionalIterator Requirements */ - -template <class _BidirectionalIterator> -struct _BidirectionalIterator_concept_specification { -static void -_BidirectionalIterator_requirement_violation(_BidirectionalIterator __i) { - // Refinement of ForwardIterator - _ForwardIterator_concept_specification<_BidirectionalIterator>:: - _ForwardIterator_requirement_violation(__i); - // Valid Expressions - _STL_ERROR::__predecrement_operator_requirement_violation(__i); - _STL_ERROR::__postdecrement_operator_requirement_violation(__i); -} -}; - -template <class _BidirectionalIterator> -struct _Mutable_BidirectionalIterator_concept_specification { -static void -_Mutable_BidirectionalIterator_requirement_violation( - _BidirectionalIterator __i) -{ - _BidirectionalIterator_concept_specification<_BidirectionalIterator>:: - _BidirectionalIterator_requirement_violation(__i); - // Refinement of mutable_ForwardIterator - _Mutable_ForwardIterator_concept_specification<_BidirectionalIterator>:: - _Mutable_ForwardIterator_requirement_violation(__i); - typedef typename - __value_type_type_definition_requirement_violation< - _BidirectionalIterator>::value_type __T; - typename _Mutable_trait<__T>::_Type* __tmp_ptr = 0; - // Valid Expressions - _STL_ERROR:: - __postincrement_operator_and_assignment_requirement_violation(__i, - *__tmp_ptr); -} -}; - -/* RandomAccessIterator Requirements */ - -template <class _RandAccIter> -struct _RandomAccessIterator_concept_specification { -static void -_RandomAccessIterator_requirement_violation(_RandAccIter __i) { - // Refinement of BidirectionalIterator - _BidirectionalIterator_concept_specification<_RandAccIter>:: - _BidirectionalIterator_requirement_violation(__i); - // Refinement of LessThanComparable - _LessThanComparable_concept_specification<_RandAccIter>:: - _LessThanComparable_requirement_violation(__i); - typedef typename - __value_type_type_definition_requirement_violation<_RandAccIter> - ::value_type - value_type; - typedef typename - __difference_type_type_definition_requirement_violation<_RandAccIter> - ::difference_type - _Dist; - typedef typename _Mutable_trait<_Dist>::_Type _MutDist; - - // Valid Expressions - _STL_ERROR::__iterator_addition_assignment_requirement_violation(__i, - _MutDist()); - _STL_ERROR::__iterator_addition_requirement_violation(__i, - _MutDist()); - _STL_ERROR:: - __iterator_subtraction_assignment_requirement_violation(__i, - _MutDist()); - _STL_ERROR::__iterator_subtraction_requirement_violation(__i, - _MutDist()); - _STL_ERROR::__difference_operator_requirement_violation(__i, __i, - _MutDist()); - typename _Mutable_trait<value_type>::_Type* __dummy_ptr = 0; - _STL_ERROR::__element_access_operator_requirement_violation(__i, - __dummy_ptr, - _MutDist()); -} -}; - -template <class _RandAccIter> -struct _Mutable_RandomAccessIterator_concept_specification { -static void -_Mutable_RandomAccessIterator_requirement_violation(_RandAccIter __i) -{ - _RandomAccessIterator_concept_specification<_RandAccIter>:: - _RandomAccessIterator_requirement_violation(__i); - // Refinement of mutable_BidirectionalIterator - _Mutable_BidirectionalIterator_concept_specification<_RandAccIter>:: - _Mutable_BidirectionalIterator_requirement_violation(__i); - typedef typename - __value_type_type_definition_requirement_violation<_RandAccIter> - ::value_type - value_type; - typedef typename - __difference_type_type_definition_requirement_violation<_RandAccIter> - ::difference_type - _Dist; - - typename _Mutable_trait<value_type>::_Type* __tmp_ptr = 0; - // Valid Expressions - _STL_ERROR::__element_assignment_operator_requirement_violation(__i, - __tmp_ptr, _Dist()); -} -}; - -#define _STLP_TYPEDEF_REQUIREMENT(__REQUIREMENT) \ -template <class Type> \ -struct __##__REQUIREMENT##__typedef_requirement_violation { \ - typedef typename Type::__REQUIREMENT __REQUIREMENT; \ -}; - -_STLP_TYPEDEF_REQUIREMENT(value_type); -_STLP_TYPEDEF_REQUIREMENT(difference_type); -_STLP_TYPEDEF_REQUIREMENT(size_type); -_STLP_TYPEDEF_REQUIREMENT(reference); -_STLP_TYPEDEF_REQUIREMENT(const_reference); -_STLP_TYPEDEF_REQUIREMENT(pointer); -_STLP_TYPEDEF_REQUIREMENT(const_pointer); - - -template <class _Alloc> -struct _Allocator_concept_specification { -static void -_Allocator_requirement_violation(_Alloc __a) { - // Refinement of DefaultConstructible - _DefaultConstructible_concept_specification<_Alloc>:: - _DefaultConstructible_requirement_violation(__a); - // Refinement of EqualityComparable - _EqualityComparable_concept_specification<_Alloc>:: - _EqualityComparable_requirement_violation(__a); - // Associated Types - __value_type__typedef_requirement_violation<_Alloc>(); - __difference_type__typedef_requirement_violation<_Alloc>(); - __size_type__typedef_requirement_violation<_Alloc>(); - __reference__typedef_requirement_violation<_Alloc>(); - __const_reference__typedef_requirement_violation<_Alloc>(); - __pointer__typedef_requirement_violation<_Alloc>(); - __const_pointer__typedef_requirement_violation<_Alloc>(); - typedef typename _Alloc::value_type _Type; - _STLP_REQUIRES_SAME_TYPE(typename _Alloc::rebind<_Type>::other, _Alloc); -} -}; - -#endif /* _STLP_USE_CONCEPT_CHECKS */ - -#endif /* __CONCEPT_CHECKS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/config/_aix.h b/WebKit/android/stlport/stl/config/_aix.h deleted file mode 100644 index bcbcb32..0000000 --- a/WebKit/android/stlport/stl/config/_aix.h +++ /dev/null @@ -1 +0,0 @@ -#define _STLP_PLATFORM "AIX" diff --git a/WebKit/android/stlport/stl/config/_android.h b/WebKit/android/stlport/stl/config/_android.h deleted file mode 100644 index 1a954bf..0000000 --- a/WebKit/android/stlport/stl/config/_android.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef __stl_config__android_h -#define __stl_config__android_h - -#define _STLP_PLATFORM "Android" - -// The Android C library is mostly glibc-like -#define _STLP_USE_GLIBC 1 - -// ...and Unix-like. -#define _STLP_UNIX 1 - -// Have pthreads support. -#define _PTHREADS - -// Don't have native <cplusplus> headers -#define _STLP_HAS_NO_NEW_C_HEADERS 1 - -// Don't use wchar.h etc -#define _STLP_NO_WCHAR_T 1 - -// Don't have (working) native wide character support. -#define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 - -// Don't use mbstate_t, define our own. -#define _STLP_NO_NATIVE_MBSTATE_T 1 - -// No (proper) wide stream support in Android -#define _STLP_NO_NATIVE_WIDE_STREAMS 1 - -// C library is in the global namespace. -#define _STLP_VENDOR_GLOBAL_CSTD 1 - -// Don't have underlying local support. -#undef _STLP_REAL_LOCALE_IMPLEMENTED - -// No pthread_spinlock_t in Android -#define _STLP_DONT_USE_PTHREAD_SPINLOCK 1 - -// Do not enable thread support -#define _NOTHREADS 1 - -// Little endian platform. -#define _STLP_LITTLE_ENDIAN 1 - -// No <exception> headers -#define _STLP_NO_EXCEPTION_HEADER 1 - -// No throwing exceptions -#define _STLP_NO_EXCEPTIONS 1 - -// Disable all iostreams -#define _STLP_NO_IOSTREAMS 1 - -// No need to define our own namespace -#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 - -// Use __new_alloc instead of __node_alloc, so we don't need static functions. -#define _STLP_USE_SIMPLE_NODE_ALLOC 1 - -// Don't use extern versions of range errors, so we don't need to -// compile as a library. -#define _STLP_USE_NO_EXTERN_RANGE_ERRORS 1 - -// The system math library doesn't have long double variants, e.g -// sinl, cosl, etc -#define _STLP_NO_VENDOR_MATH_L 1 - -// Define how to include our native headers. -#define _STLP_NATIVE_HEADER(header) <libstdc++/include/header> -#define _STLP_NATIVE_C_HEADER(header) <../include/header> -#define _STLP_NATIVE_CPP_C_HEADER(header) <libstdc++/include/header> -#define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <libstdc++/include/header> -#define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <libstdc++/include/header> - -#endif /* __stl_config__android_h */ diff --git a/WebKit/android/stlport/stl/config/_apcc.h b/WebKit/android/stlport/stl/config/_apcc.h deleted file mode 100644 index 5e8b115..0000000 --- a/WebKit/android/stlport/stl/config/_apcc.h +++ /dev/null @@ -1,31 +0,0 @@ -// STLport config file for Apogee 4.x - -#define _STLP_COMPILER "Apogee" - -#define _STLP_NO_NEW_NEW_HEADER 1 -#define _STLP_HAS_NO_NEW_IOSTREAMS 1 -#define _STLP_HAS_NO_NEW_C_HEADERS 1 - -#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -#endif -// # define _STLP_RAND48 1 -#define _STLP_LONG_LONG long long -#define _STLP_NO_BAD_ALLOC 1 -#define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -#define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -// # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 -#define _STLP_NO_EXCEPTION_HEADER 1 - -#undef _STLP_LINK_TIME_INSTANTIATION -#define _STLP_LINK_TIME_INSTANTIATION 1 - -#ifdef __STDLIB -# undef _STLP_NO_NEW_C_HEADERS -# undef _STLP_NO_NEW_NEW_HEADER -# undef _STLP_NO_BAD_ALLOC -# undef _STLP_LONG_LONG -#else -# undef _STLP_NO_EXCEPTION_SPEC -# define _STLP_NO_EXCEPTION_SPEC 1 -#endif diff --git a/WebKit/android/stlport/stl/config/_apple.h b/WebKit/android/stlport/stl/config/_apple.h deleted file mode 100644 index 4c030db..0000000 --- a/WebKit/android/stlport/stl/config/_apple.h +++ /dev/null @@ -1,122 +0,0 @@ -/* STLport configuration file - * It is internal STLport header - DO NOT include it directly - */ - -/* common configuration settings for Apple MPW MrCpp / SCpp */ - -#if defined (__MRC__) -# define _STLP_COMPILER "MPW MrCpp" -#else -# define _STLP_COMPILER "MPW SCpp" -#endif - -#if defined(__MRC__) && __MRC__ < 0x500 -# error Apple's MPW MrCpp v.5.0.0 or better compiler required -#endif -#if defined(__SC__) && __SC__ < 0x890 -# error Apple's MPW SCpp v.8.9.0 or better compiler required -#endif - -/* TODO: Check that this config is necessary for all compiler versions. - * It is here for historical reasons for the moment. - */ -#define _STLP_NO_CONTAINERS_EXTENSION - -#ifdef qMacApp -# ifndef __CONDITIONALMACROS__ /* skip including ConditionalMacros_AC.h if ConditionalMacros.h is already included */ -# include <CoreSwitches_AC.h> -# include <ConditionalMacros_AC.h> -# include <Types_AC.h> -# define _STLP_FILE__ _FILE_AC -# define _STLP_DEBUG_MESSAGE -# define __stl_debug_message ProgramBreak_AC -# include <ConditionalMacros.h> -# endif -# include <Types.h> -#else -# include <ConditionalMacros.h> -# include <Types.h> -#endif - -#define _STLP_UINT32_T UInt32 -typedef int wint_t; - -#ifndef TYPE_BOOL -# error <ConditionalMacros.h> must be included. (TYPE_BOOL) -#endif -#if !TYPE_BOOL -# define _STLP_NO_BOOL -# define _STLP_DONT_USE_BOOL_TYPEDEF -#endif - -#ifndef TYPE_LONGLONG -# error <ConditionalMacros.h> must be included. (TYPE_LONGLONG) -#endif -#if TYPE_LONGLONG -# define _STLP_LONG_LONG long long -#endif - -#if !__option(exceptions) -# define _STLP_HAS_NO_EXCEPTIONS -#endif - -#define _STLP_DEBUG_MESSAGE_POST DebugStr("\pSTL diagnosis issued. See 'stderr' for detail."); -#define _STLP_ASSERT_MSG_TRAILER " " - -#ifdef _STLP_DEBUG -# define _STLP_THROW(x) (DebugStr("\pSTL is about to throw exception: "#x),throw x) -#endif - -#if defined(__MRC__) -# ifndef __spillargs -# define __spillargs 1 // MrCpp requires this symbol to be defined as 1 to properly handle va_start; ref.[ file stdarg.h; line 26 ] -# endif -#endif - -#if defined(__SC__) -#define _STLP_VENDOR_LONG_DOUBLE_MATH //*TY 12/03/2000 - SCpp's native math type is long double -#endif - -#ifndef _STLP_NATIVE_INCLUDE_PATH -# if __option(unix_includes) -# define _STLP_NATIVE_INCLUDE_PATH ../CIncludes // expects the alias to {CIncludes} under the same folder as {STL} -# else -# define _STLP_NATIVE_INCLUDE_PATH ::CIncludes // expects the alias to {CIncludes} under the same folder as {STL} -# endif -#endif -#if !defined(_STLP_MAKE_HEADER) -# if !__option(unix_includes) -# define _STLP_MAKE_HEADER(path, header) <path:header> // Mac uses ":" for directory delimiter -# endif -#endif - -# define _STLD _DBG // to keep the length of generated symbols within the compiler limitation - -#define _STLP_USE_STDIO_IO 1 //*TY 02/24/2000 - see also ; ref.[ file _fstream.h; line 36 ] -#define _STLP_NO_THREADS //*TY 12/17/2000 - multi-thread capability not explored, yet. -#undef _REENTRANT //*ty 11/24/2001 - to make sure no thread facility is activated -#define _NOTHREADS //*ty 12/07/2001 - - -// native library limitations -#define _STLP_VENDOR_GLOBAL_STD // mpw's c++ libs do not utilize namespace std yet -#define _STLP_NO_BAD_ALLOC // known limitation -#define _STLP_HAS_NO_NEW_C_HEADERS // known limitation -#define _STLP_NO_NEW_NEW_HEADER // known limitation -#define _STLP_NO_NATIVE_MBSTATE_T // known limitation -#define _STLP_NO_NATIVE_WIDE_FUNCTIONS // known limitation -#define _STLP_NO_NATIVE_WIDE_STREAMS // known limitation -#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT // known limitation -#define _STLP_BROKEN_EXCEPTION_CLASS // known limitation - -// compiler limitations -# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS - -# define _STLP_MPWFIX_TRY try{ //*TY 06/01/2000 - exception handling bug workaround -# define _STLP_MPWFIX_CATCH }catch(...){throw;} //*TY 06/01/2000 - exception handling bug workaround -# define _STLP_MPWFIX_CATCH_ACTION(action) }catch(...){action;throw;} //*TY 06/01/2000 - exception handling bug workaround -# define _STLP_THROW_RETURN_BUG // known limitation -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION // known limitation -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX // known limitation -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER // known limitation -# define _STLP_NO_RELOPS_NAMESPACE // known limitation -// end of stl_apple.h diff --git a/WebKit/android/stlport/stl/config/_as400.h b/WebKit/android/stlport/stl/config/_as400.h deleted file mode 100644 index a0261a4..0000000 --- a/WebKit/android/stlport/stl/config/_as400.h +++ /dev/null @@ -1,56 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -// AS/400 C++ config - -# ifdef _REENTRANT -# define _PTHREADS -# endif - -# define _STLP_NO_NEW_NEW_HEADER 1 - -# define _STLP_NO_BOOL -# define _STLP_LIMITED_DEFAULT_TEMPLATES - -# define _STLP_HAS_NO_NAMESPACES -# define _STLP_NEED_TYPENAME -# define _STLP_NEED_EXPLICIT -# define _STLP_HAS_NO_EXCEPTIONS -# define _STLP_NO_EXCEPTION_SPEC -# define _STLP_NO_ARROW_OPERATOR -# define _STLP_NO_NEW_STYLE_CASTS - -# define _STLP_NEED_MUTABLE -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX -# define _STLP_NO_BAD_ALLOC -# define _STLP_NO_MEMBER_TEMPLATES -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD -# define _STLP_NO_FRIEND_TEMPLATES -# define _STLP_NO_QUALIFIED_FRIENDS -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER - -# define _STLP_NO_METHOD_SPECIALIZATION -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS - -// # define _STLP_NO_EXCEPTION_HEADER - -# define _STLP_HAS_NO_NEW_C_HEADERS - -# define _STLP_STATIC_CONST_INIT_BUG -# define _STLP_THROW_RETURN_BUG -# define _STLP_LINK_TIME_INSTANTIATION -# define _STLP_NO_TEMPLATE_CONVERSIONS - -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_TRIVIAL_DESTRUCTOR_BUG 1 - -# if defined(_LONG_LONG) -# define _STLP_LONG_LONG long long -# endif -# if defined(_PTHREADS) -# define _MULTI_THREADED -# endif -// fbp : to fix __partition() problem -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 diff --git a/WebKit/android/stlport/stl/config/_auto_link.h b/WebKit/android/stlport/stl/config/_auto_link.h deleted file mode 100644 index 52b5232..0000000 --- a/WebKit/android/stlport/stl/config/_auto_link.h +++ /dev/null @@ -1,57 +0,0 @@ -/* We do not use auto link feature when: - * - user asked not to use it (_STLP_DONT_USE_AUTO_LINK) - * - STLport is used only as a STL library (_STLP_NO_IOSTREAMS || _STLP_USE_NO_IOSTREAMS) - * - we are building a C translation unit, STLport is a C++ Standard library implementation - */ -#if !defined (__BUILDING_STLPORT) && !defined (_STLP_DONT_USE_AUTO_LINK) && \ - !defined (_STLP_NO_IOSTREAMS) && !defined (_STLP_USE_NO_IOSTREAMS) && \ - defined (__cplusplus) - -# define _STLP_STRINGIZE(X) _STLP_STRINGIZE_AUX(X) -# define _STLP_STRINGIZE_AUX(X) #X - -# if defined (_STLP_DEBUG) -# define _STLP_LIB_OPTIM_MODE "stld" -# elif defined (_DEBUG) -# define _STLP_LIB_OPTIM_MODE "d" -# else -# define _STLP_LIB_OPTIM_MODE "" -# endif - -# if defined (_STLP_LIB_NAME_MOTIF) -# define _STLP_LIB_MOTIF "_"_STLP_LIB_NAME_MOTIF -# else -# define _STLP_LIB_MOTIF "" -# endif - -# if defined (_STLP_USE_DYNAMIC_LIB) -# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB) -# define _STLP_LIB_TYPE "_x" -# else -# define _STLP_LIB_TYPE "" -# endif -# else -# if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB) -# define _STLP_LIB_TYPE "_statix" -# else -# define _STLP_LIB_TYPE "_static" -# endif -# endif - -# define _STLP_VERSION_STR _STLP_STRINGIZE(_STLPORT_MAJOR)"."_STLP_STRINGIZE(_STLPORT_MINOR) - -# define _STLP_STLPORT_LIB "stlport"_STLP_LIB_OPTIM_MODE""_STLP_LIB_TYPE""_STLP_LIB_MOTIF"."_STLP_VERSION_STR".lib" - -# if defined (_STLP_VERBOSE_AUTO_LINK) -# pragma message ("STLport: Auto linking to "_STLP_STLPORT_LIB) -# endif -# pragma comment (lib, _STLP_STLPORT_LIB) - -# undef _STLP_STLPORT_LIB -# undef _STLP_LIB_OPTIM_MODE -# undef _STLP_LIB_TYPE -# undef _STLP_STRINGIZE_AUX -# undef _STLP_STRINGIZE - -#endif /* _STLP_DONT_USE_AUTO_LINK */ - diff --git a/WebKit/android/stlport/stl/config/_bc.h b/WebKit/android/stlport/stl/config/_bc.h deleted file mode 100644 index b56de07..0000000 --- a/WebKit/android/stlport/stl/config/_bc.h +++ /dev/null @@ -1,125 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -//#define _STLP_VERBOSE - -#define _STLP_COMPILER "Borland" - -#if (__BORLANDC__ < 0x551) -# error - Borland compilers below version 5.5.1 not supported. -#endif - -#if (__BORLANDC__ >= 0x580) && (__BORLANDC__ < 0x590) -# define _STLP_NO_NEW_C_HEADERS -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/dinkumware/##header> -# define _STLP_NO_FORCE_INSTANTIATE -#endif - -#if (__BORLANDC__ >= 0x560) && (__BORLANDC__ < 0x570) -# define _USE_OLD_RW_STL -#endif - -#if (__BORLANDC__ >= 0x560) -# define NOWINBASEINTERLOCK // src/fstream.cpp error in winbase.h -#endif - -#if (__BORLANDC__ < 0x564) -# define _STLP_QUALIFIED_SPECIALIZATION_BUG -#endif - -#if (__BORLANDC__ < 0x560) -# define _STLP_NO_CONTAINERS_EXTENSION -#endif - -#define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER -#define _STLP_DONT_USE_PRIV_NAMESPACE -#define _STLP_NO_VENDOR_STDLIB_L -#define _STLP_NO_VENDOR_MATH_F -#define _STLP_DONT_USE_SHORT_STRING_OPTIM 1 -#define _STLP_NO_NATIVE_MBSTATE_T -#define _STLP_DLLEXPORT_NEEDS_PREDECLARATION -#undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT -#if (__BORLANDC__ < 0x580) && !defined (_RTLDLL) -# define _UNCAUGHT_EXCEPTION 1 -#endif - -// <limits> problem -#define _STLP_STATIC_CONST_INIT_BUG - -// <bitset> problems -#define _STLP_MEMBER_SPECIALIZATION_BUG 1 -#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1 - -#define _STLP_LONG_LONG __int64 - -// auto enable thread safety and exceptions: -#ifndef _CPPUNWIND -# define _STLP_HAS_NO_EXCEPTIONS -#endif - -#if defined (__MT__) && !defined (_NOTHREADS) && !defined (_REENTRANT) -# if defined (_STLP_VERBOSE) -# pragma message ("multi threaded") -# endif -# define _REENTRANT 1 -#else -# if defined (_STLP_VERBOSE) -# pragma message ("single threaded") -# endif -#endif - -#define _STLP_EXPORT_DECLSPEC __declspec(dllexport) -#define _STLP_IMPORT_DECLSPEC __declspec(dllimport) - -#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport) -#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport) - -#if defined (_DLL) -# define _STLP_DLL -#endif -#if defined (_RTLDLL) -# define _STLP_RUNTIME_DLL -#endif -#include <stl/config/_detect_dll_or_lib.h> -#undef _STLP_RUNTIME_DLL -#undef _STLP_DLL - -#if defined (_STLP_USE_DYNAMIC_LIB) -# if defined (_STLP_VERBOSE) -# pragma message ("Using/Building STLport dll") -# endif -#elif defined (_STLP_USE_STATIC_LIB) -# if defined (_STLP_VERBOSE) -# pragma message ("Using/Building STLport lib") -# endif -#else -# error Unknown STLport usage config (dll/lib?) -#endif - -#if defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB) -# if defined (_STLP_VERBOSE) -# pragma message ("Using cross version of native runtime") -# endif -#endif - -#if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD) -//# define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport) -#endif -//#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport) - -#if defined (_STLP_USE_DYNAMIC_LIB) -# define _STLP_USE_DECLSPEC 1 -# if (__BORLANDC__ < 0x580) -# if defined (__BUILDING_STLPORT) -# define _STLP_CALL __cdecl __export -# else -# define _STLP_CALL __cdecl __import -# endif -#else -# define _STLP_CALL __cdecl -#endif -#else -# define _STLP_CALL __cdecl -#endif - -#include <stl/config/_auto_link.h> diff --git a/WebKit/android/stlport/stl/config/_como.h b/WebKit/android/stlport/stl/config/_como.h deleted file mode 100644 index 6076f88..0000000 --- a/WebKit/android/stlport/stl/config/_como.h +++ /dev/null @@ -1,207 +0,0 @@ - -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Comeau" - -#include <stl/config/_native_headers.h> - -#define _STLP_UINT32_T unsigned int - -#define _STLP_HAS_NO_NEW_C_HEADERS -// #define _STLP_VENDOR_GLOBAL_EXCEPT_STD -#define _STLP_LONG_LONG long long - - -// -// ADDITIONS FOR COMEAU C++, made by Comeau Computing. -// We can be reached through comeau@comeaucomputing.com -// You shouldn't need to change anything below here for Comeau C++. -// If you do, please tell us at comeau@comeaucomputing.com -// -// Changes made here, AND THROUGH ALL FILES, based upon the __COMO__ macro -// (and SIMILAR NAMES INVOLVING COMO).... no doubt some of this will -// change as SGI integrates the changes into their code base since -// some changes are not really Comeau C++ specific, but required to -// make the SGI code compliant with Standard C++). -// -// Testing was done with Comeau C++ 4.2.44 and 4.2.45.2. Changes were made for -// both Comeau relaxed mode and Comeau strict mode, especially for end user code -// (that is, some of the .cxx files cannot compile in strict mode, because they -// contain extensions to Standard C++, however their object code forms can -// be used once compiled in relaxed mode, even if the end user code uses -// strict mode). -// -// These changes may also work for some earlier versions of Comeau C++, -// though we have not tested them. -// -// Actual mods made under RedHat 6.1 LINUX, should be ok with SuSE too and -// other LINUX's, and older Caldera LINUX, Solaris/SPARC, SunOS, SCO UNIX, -// and NetBSD. Other platforms may be added. Comeau will also perform -// custom ports for you. -// -// Check libcomo details at http://www.comeaucomputing.com/libcomo and -// http://www.comeaucomputing.com -// -// History of Comeau changes (this is rough, as work was often going on in parallel): -// BETA1 July 14, 2000, Initial port for RedHat 6.1 INTEL/ELF -// BETA2 Aug 4, 2000, Stronger RedHat support -// Support for Comeau strict mode for end user code -// BETA3 Aug 22, 2000, Support for other LINUX/INTEL/ELF's, including older ones -// BETA4 Sept 2, 2000, Initial support for SCO UNIX + other UNIX x86 SVR3's -// Stronger support for end user Comeau strict mode -// BETA5 Oct 5, 2000, Initial support for Solaris/SPARC -// More SCO support (though still incomplete) -// BETA6 Feb 5, 2001, Minor mods to accomodate Comeau C++ 4.2.45.1 -// BETA7 Mar 13, 2001, Verified with Comeau C++ 4.2.45.2 -// Minor NetBSD support -// BETA8 Apr 1. 2001, Initial support for SunOS/SPARC -// BETA9 Apr 7, 2001, Stronger SCO support + other UNIX x86 SVR3's -// Mods for an fpos_t problem for some LINUXes -// Mods since Destroy did not work in strict mode -// BETA10 Apr 12. 2001, Stronger NetBSD support -// -// PLANNED: -// BETAx TBA TBA, 2001, NetBSD, UNIXWARE, and Windows support expected -// - - -#ifdef __linux__ - -# define _STLP_NO_NATIVE_MBSTATE_T 1 -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -# define _STLP_NO_LONG_DOUBLE 1 - -// Comeau C++ under LINUX/INTEL/ELF -// Preprocess away "long long" routines for now, even in relaxed mode -# define __wcstoull_internal_defined 1 -# define __wcstoll_internal_defined 1 - -#endif /* __COMO__ under __linux__ */ - -#ifdef __USING_x86SVR3x_WITH_COMO /* SCO et al */ -/* UNIX 386+ SVR3 mods made with __USING_x86SVR3x_WITH_COMO - in other sources, not here */ -# define atan2l atan2 -# define cosl cos -# define sinl sin -# define sqrtl sqrt -# include <math.h> - inline long double expl(long double arg) { return exp(arg); } - inline long double logl(long double arg) { return log(arg); } -# define log10l log10 - -# define sinhl sinh -# define coshl cosh -# define fabsl fabs -namespace std { - inline int min(int a, int b) { return a>b ? b : a; } -} -#endif - -#ifdef sun -// Comeau C++ under Solaris/SPARC or SunOS - -#ifdef solarissparc -#define __USING_SOLARIS_SPARC_WITH_COMO /* show this in the source when grep'ing for COMO */ -// Note comowchar.h for Solaris/SPARC wchar stuff - -#include <math.h> -# define sinf sin -# define sinl sin -# define sinhf sinh -# define sinhl sinh -# define cosf cos -# define cosl cos -# define coshf cosh -# define coshl cosh -# define atan2l atan2 -# define atan2f atan2 - inline float logf(float arg) { return log(arg); } - inline long double logl(long double arg) { return log(arg); } -# define log10f log10 -# define log10l log10 -# define expf exp - inline long double expl(long double arg) { return exp(arg); } -# define sqrtf sqrt -# define sqrtl sqrt -# define fabsf fabs -# define fabsl fabs -#else -#define __USING_SUNOS_WITH_COMO - -#define __unix 1 -#define __EXTENSIONS__ /* This might create undue noise somewhere */ -#endif -#endif /* sun */ - -#if defined(__NetBSD__) -// From non-como #ifdef __GNUC__ above -#undef _STLP_NO_FUNCTION_PTR_IN_CLASS_TEMPLATE -#define __unix 1 - -#include <sys/cdefs.h> -// Some joker #define'd __END_DECLS as }; -#undef __END_DECLS -#define __END_DECLS } - -// <sys/stat.h> prob -#include <sys/cdefs.h> -#undef __RENAME -#define __RENAME(x) - -#define wchar_t __COMO_WCHAR_T -#include <stddef.h> -#undef wchar_t - -#include <math.h> -# ifdef BORIS_DISABLED -# define atan2l atan2 -# define cosl cos -# define sinl sin -# define sqrtl sqrt - inline long double expl(long double arg) { return exp(arg); } - inline long double logl(long double arg) { return log(arg); } -# define log10l log10 -# define sinhl sinh -# define coshl cosh -# define fabsl fabs -# endif -#endif /* __NetBSD__ under __COMO__ */ - -// Shouldn't need to change anything below here for Comeau C++ -// If so, tell us at comeau@comeaucomputing.com - -#define _STLP_NO_DRAND48 - -#define _STLP_PARTIAL_SPECIALIZATION_SYNTAX -#define _STLP_NO_USING_CLAUSE_IN_CLASS - -#if __COMO_VERSION__ < 4300 -#if __COMO_VERSION__ >= 4245 -#define _STLP_NO_EXCEPTION_HEADER /**/ - // Is this needed? -# include <stdexcept.stdh> -#endif -#define _STLP_NO_BAD_ALLOC /**/ -#define _STLP_USE_AUTO_PTR_CONVERSIONS /**/ -#endif - -// this one is true only with MS -# if defined (_MSC_VER) -# define _STLP_WCHAR_T_IS_USHORT 1 -# if _MSC_VER <= 1200 -# define _STLP_VENDOR_GLOBAL_CSTD -# endif -# if _MSC_VER < 1100 -# define _STLP_NO_BAD_ALLOC 1 -# define _STLP_NO_EXCEPTION_HEADER 1 -# define _STLP_NO_NEW_NEW_HEADER 1 -# define _STLP_USE_NO_IOSTREAMS 1 -# endif -# endif - -// # define __EDG_SWITCHES - - diff --git a/WebKit/android/stlport/stl/config/_cray.h b/WebKit/android/stlport/stl/config/_cray.h deleted file mode 100644 index 32abd4f..0000000 --- a/WebKit/android/stlport/stl/config/_cray.h +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#define _STLP_COMPILER "CC" - -// Mostly correct guess, change it for Alpha (and other environments -// that has 64-bit "long") -# define _STLP_UINT32_T unsigned long - -// Uncomment if long long is available -# define _STLP_LONG_LONG long long - -// Uncomment this if your compiler can't inline while(), for() -# define _STLP_LOOP_INLINE_PROBLEMS 1 - -// Uncomment this if your compiler does not support exceptions -// Cray C++ supports exceptions when '-h exceptions' option is user; -// therefore '-D_STLP_HAS_NO_EXCEPTIONS' must be used when '-h exceptions' -// is NOT used. -//# define _STLP_HAS_NO_EXCEPTIONS 1 - -// Delete? -// Define this if compiler lacks <exception> header -//# define _STLP_NO_EXCEPTION_HEADER 1 - -// Uncomment this if your C library has lrand48() function -# define _STLP_RAND48 1 - -// Uncomment if native new-style C library headers lile <cstddef>, etc are not available. -# define _STLP_HAS_NO_NEW_C_HEADERS 1 - -// uncomment if new-style headers <new> is available -# define _STLP_NO_NEW_NEW_HEADER 1 - -// uncomment this if <iostream> and other STD headers put their stuff in ::namespace, -// not std:: -# define _STLP_VENDOR_GLOBAL_STD - -// uncomment this if <cstdio> and the like put stuff in ::namespace, -// not std:: -# define _STLP_VENDOR_GLOBAL_CSTD - -# define _STLP_NATIVE_C_HEADER(__x) </usr/include/##__x> -// WARNING: Following is hardcoded to the system default C++ include files -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(__x) </opt/ctl/CC/CC/include/##__x> - - -# define _STLP_NO_NATIVE_MBSTATE_T -# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS -//# define _STLP_VENDOR_GLOBAL_EXCEPT_STD - -#if !defined (_CRAYIEEE) -# define _STLP_NO_IEC559_SUPPORT 1 -#endif diff --git a/WebKit/android/stlport/stl/config/_cygwin.h b/WebKit/android/stlport/stl/config/_cygwin.h deleted file mode 100644 index 7960d01..0000000 --- a/WebKit/android/stlport/stl/config/_cygwin.h +++ /dev/null @@ -1,6 +0,0 @@ -#define _STLP_PLATFORM "Cygwin" - -/* Glibc is the platform API */ -#if !defined (_STLP_USE_GLIBC) -# define _STLP_USE_GLIBC -#endif diff --git a/WebKit/android/stlport/stl/config/_dec.h b/WebKit/android/stlport/stl/config/_dec.h deleted file mode 100644 index 9f732d9..0000000 --- a/WebKit/android/stlport/stl/config/_dec.h +++ /dev/null @@ -1,107 +0,0 @@ -#define _STLP_COMPILER "Dec" - -# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG - -# define _STLP_NATIVE_HEADER(header) <../cxx/##header> -# define _STLP_NATIVE_C_HEADER(x) <../include/##x> - -#if (__DECCXX_VER < 60300000) -# define _STLP_NATIVE_CPP_C_HEADER(header) <../cxx/##header> -#else -# define _STLP_NATIVE_CPP_C_HEADER(header) </usr/include/cxx_cname/##header> -#endif - -# define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../cxx/##header> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../cxx/##header> - -// Alpha is little-endian -# define _STLP_LITTLE_ENDIAN - -// collisions -# define _STLP_DONT_PUT_STLPORT_IN_STD - -#if (__DECCXX_VER < 60000000) - -// automatic template instantiation does not -// work with namespaces ;( -# define _STLP_HAS_NO_NAMESPACES 1 - -# define _STLP_NO_NEW_NEW_HEADER 1 - -# define _STLP_NO_WCHAR_T 1 -# define _STLP_NEED_EXPLICIT 1 - -# define _STLP_NO_BOOL 1 -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NO_NEW_STYLE_CASTS 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_BAD_ALLOC 1 - - -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 - -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_BROKEN_USING_DIRECTIVE 1 -# define _STLP_NO_EXCEPTION_HEADER 1 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 - -#endif - - -#ifdef __NO_USE_STD_IOSTREAM -# define _STLP_HAS_NO_NEW_IOSTREAMS 1 -# else -// default is to use new iostreams, anyway -# ifndef __USE_STD_IOSTREAM -# define __USE_STD_IOSTREAM -# endif -#endif - -//# ifndef __STD_STRICT_ANSI_ERRORS -//# endif - -#ifndef __EXCEPTIONS -# define _STLP_HAS_NO_EXCEPTIONS 1 -#endif - -# ifdef __IMPLICIT_INCLUDE_ENABLED - -// but, works with ours ;). -# define _STLP_LINK_TIME_INSTANTIATION 1 -# else -# undef _STLP_LINK_TIME_INSTANTIATION -# endif - -# if defined (__IMPLICIT_USING_STD) && !defined (__NO_USE_STD_IOSTREAM) -// we should ban that ! -// # error "STLport won't work with new iostreams and std:: being implicitly included. Please use -std strict_ansi[_errors] or specify __NO_USE_STD_IOSTREAM" -# endif - -# if (defined (__STD_STRICT_ANSI) || defined (__STD_STRICT_ANSI_ERRORS)) -# define _STLP_STRICT_ANSI 1 -# else -// we want to enforce it -# define _STLP_LONG_LONG long long -# endif - -// unsigned 32-bit integer type -# define _STLP_UINT32_T unsigned int -#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -#endif -// # define _STLP_RAND48 1 - -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 - -# if (__DECCXX_VER <= 60600000) -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -# endif - diff --git a/WebKit/android/stlport/stl/config/_dec_vms.h b/WebKit/android/stlport/stl/config/_dec_vms.h deleted file mode 100644 index 5df8d26..0000000 --- a/WebKit/android/stlport/stl/config/_dec_vms.h +++ /dev/null @@ -1,90 +0,0 @@ -// OpenVMS version - -#define _STLP_COMPILER "Dec Vms" - -# define _STLP_NATIVE_HEADER(header) <sys$library:##header> -# define _STLP_NATIVE_C_HEADER(x) <sys$library:##x> -# define _STLP_NATIVE_CPP_C_HEADER(header) <sys$library:##header> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <sys$library:##header> - -#if (__DECCXX_VER < 60000000) - -// automatic template instantiation does not -// work with namespaces ;( -# define _STLP_HAS_NO_NAMESPACES 1 - -# define _STLP_NO_WCHAR_T 1 -# define _STLP_NEED_EXPLICIT 1 - -# define _STLP_NO_BOOL 1 -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NO_NEW_STYLE_CASTS 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_BAD_ALLOC 1 - -# define _STLP_NO_NEW_NEW_HEADER 1 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 - -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_BROKEN_USING_DIRECTIVE 1 -# define _STLP_NO_EXCEPTION_HEADER 1 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 - -#endif - - -#ifdef __NO_USE_STD_IOSTREAM -# define _STLP_USE_NO_IOSTREAMS 1 -# else -// default is to use new iostreams, anyway -# ifndef __USE_STD_IOSTREAM -# define __USE_STD_IOSTREAM -# endif -#endif - -#ifndef __EXCEPTIONS -# define _STLP_HAS_NO_EXCEPTIONS 1 -#endif - -# ifdef __IMPLICIT_INCLUDE_ENABLED - -#ifdef _STLP_USE_NO_IOSTREAMS -// implicit include introduces conflicts -// between stlport and native lib. -# undef __IMPLICIT_INCLUDE_ENABLED -#endif - -// but, works with ours ;). -# define _STLP_LINK_TIME_INSTANTIATION 1 - -# endif - -# if defined (__IMPLICIT_USING_STD) && !defined (__NO_USE_STD_IOSTREAM) -// we should ban that ! -# error "STLport won't work with new iostreams and std:: being implicitly included. Please use -std strict_ansi[_errors] or specify __NO_USE_STD_IOSTREAM" -# endif - -# if !(defined (__STD_STRICT_ANSI) || defined (__STD_STRICT_ANSI_ERRORS)) -// we want to enforce it -# define _STLP_LONG_LONG long long -# endif - -// unsigned 32-bit integer type -# define _STLP_UINT32_T unsigned int -#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -#endif -// # define _STLP_RAND48 1 - -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 - -#define _STLP_HAS_NO_NEW_C_HEADERS 1 - diff --git a/WebKit/android/stlport/stl/config/_detect_dll_or_lib.h b/WebKit/android/stlport/stl/config/_detect_dll_or_lib.h deleted file mode 100644 index 39049fa..0000000 --- a/WebKit/android/stlport/stl/config/_detect_dll_or_lib.h +++ /dev/null @@ -1,70 +0,0 @@ -/* File used to define macros: - * _STLP_USE_DYNAMIC_LIB: To signal use STLport as a dll or build of the - * STLport dlls. - * _STLP_USE_STATIC_LIB: To signal use of STLport as a static lib or build of - * the STLport static libs. - * _STLP_USING_CROSS_NATIVE_RUNTIME_LIB: Signal that we are using a native runtime - * in a version different from the STLport one. - * If _STLP_USE_DYNAMIC_LIB or _STLP_USE_STATIC_LIB is alreday defined it means that - * user forces use of a specific version. In this case _STLP_USING_CROSS_NATIVE_RUNTIME_LIB - * will surely be defined otherwise there is no need to force macro defines. - * - * Before including this file the compiler must define: - * _STLP_DLL: If we are building a dll - * _STLP_RUNTIME_DLL: If we are using native runtime as a dll - */ -#if defined (__BUILDING_STLPORT) -# undef _STLP_USE_DYNAMIC_LIB -# undef _STLP_USE_STATIC_LIB -# if defined (_STLP_DLL) -/* We are building the STLport dll */ -# define _STLP_USE_DYNAMIC_LIB -# if !defined (_STLP_RUNTIME_DLL) -# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB -# endif -# else -# define _STLP_USE_STATIC_LIB -# if defined (_STLP_RUNTIME_DLL) -# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB -# endif -# endif -#else -# if !defined (_STLP_NO_IOSTREAMS) -/* STLport use only depend on _STLP_RUNTIME_DLL as we are replacing - * the native runtime. - */ -# if defined (_STLP_RUNTIME_DLL) -# if !defined (_STLP_USE_STATIC_LIB) -# if !defined (_STLP_USE_DYNAMIC_LIB) -# define _STLP_USE_DYNAMIC_LIB -# endif -# else -/* The user is forcing use of STLport as a dynamic library. We signal it so - * that the STLport namespace will be modify to report such a combination - * and force the user to link with the rebuilt STLport library. - */ -# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB -# endif -# else -# if !defined(_STLP_USE_DYNAMIC_LIB) -# if !defined (_STLP_USE_STATIC_LIB) -# define _STLP_USE_STATIC_LIB -# endif -# else -/* Idem previous remark but the user forces use of the static native runtime. - */ -# define _STLP_USING_CROSS_NATIVE_RUNTIME_LIB -# endif -# endif -# else -/* If we do not build and use STLport libs we consider that we are in a static lib - * mode as only dynamic lib needs additional export/import specifier. - */ -# define _STLP_USE_STATIC_LIB -# endif -#endif - -/* we don't have a static native runtime library on evc3/evc4 */ -#ifdef _STLP_WCE -# undef _STLP_USING_CROSS_NATIVE_RUNTIME_LIB -#endif diff --git a/WebKit/android/stlport/stl/config/_dm.h b/WebKit/android/stlport/stl/config/_dm.h deleted file mode 100644 index aa027a9..0000000 --- a/WebKit/android/stlport/stl/config/_dm.h +++ /dev/null @@ -1,109 +0,0 @@ -// STLport configuration file for Digital Mars C++ - -//#define _STLP_VERBOSE - -#define _STLP_COMPILER "DMC" - -#if defined (_STLP_VERBOSE) -# pragma message __DMC_VERSION_STRING__ -#endif - -#if (__DMC__ < 0x846) -# error "Digital Mars C++ versions prior to 8.46 are not supported!" -#endif - -#ifndef _CPPUNWIND -# define _STLP_NO_EXCEPTIONS -#endif -#define _STLP_VENDOR_GLOBAL_CSTD - -//DMC prefer enum to real static const variable because it do not consider -//static const as const enough to be used in switch declaration... -#define _STLP_STATIC_CONST_INIT_BUG - -#if !defined (_WIN32) -// it's not fully supported on non-Win32 platforms -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS -#endif - -/* _STLP_NO_OWN_NAMESPACE is defined because Digital Mars' linker and libarian - appear to have problems with STLport namespaces. Summary of the issues: - - STATIC: Digital Mars' librarian (lib.exe) may fail with "len <= IDMAX" error - if _STLP_DEBUG is defined. This is because Digital Mars' librarian uses - Microsoft OMF format, which limits identifier length to about 512 bytes. - With STLport namespaces, some identifiers such as Category_Map in - src/locale_catalog.cpp may exceed the maximum OMF identifier length. - - DYNAMIC: Export issues with cin, cout, cerr, clog in src/iostream.cpp. - Exports in Digital Mars 'def' file must match mangled names in iostream.cpp. - With STLport namespaces, the mangled names in the intermediate files no - longer match these pre-defined exports. To use STLport dynamic libraries - and STLport namespaces with Digital Mars, the pre-defined exports in - src/iostream.cpp and the related Digital Mars 'def' files would need to be - revised. */ -#define _STLP_NO_OWN_NAMESPACE 1 - -// select threads strategy -#if defined (_MT) && !defined (_NOTHREADS) -# define _REENTRANT -#else -# define _NOTHREADS -#endif - -#ifndef _BOOL_DEFINED -# define _STLP_NO_BOOL -#else -# define _STLP_DONT_USE_BOOL_TYPEDEF -#endif - -#if _INTEGRAL_MAX_BITS >= 64 -# define _STLP_LONG_LONG long long -#endif - -#define _STLP_DONT_USE_PRIV_NAMESPACE -#define _STLP_NO_BAD_ALLOC -#define _STLP_THROW_RETURN_BUG - -#if !defined (_DLL) -# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT -#endif - -#define _STLP_USE_ABBREVS -#define _STLP_NO_CONTAINERS_EXTENSION -#define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER - -#define _STLP_EXPORT_DECLSPEC __declspec(dllexport) -#define _STLP_IMPORT_DECLSPEC __declspec(dllimport) - -#define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport) -#define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport) - -#define _STLP_IMPORT_TEMPLATE_KEYWORD __declspec(dllimport) -#define _STLP_EXPORT_TEMPLATE_KEYWORD __declspec(dllexport) - -#if defined (_WINDLL) -# define _STLP_DLL -#endif -#if defined (_DLL) -# define _STLP_RUNTIME_DLL -#endif -#include <stl/config/_detect_dll_or_lib.h> -#undef _STLP_RUNTIME_DLL -#undef _STLP_DLL - -#if defined (_STLP_USE_DYNAMIC_LIB) -# define _STLP_USE_DECLSPEC 1 -# if defined (__BUILDING_STLPORT) -# define _STLP_CALL __export -# else -# define _STLP_CALL -# endif -#else -# define _STLP_CALL -#endif - -#include <stl/config/_auto_link.h> - -# undef __SC__ - diff --git a/WebKit/android/stlport/stl/config/_epilog.h b/WebKit/android/stlport/stl/config/_epilog.h deleted file mode 100644 index ecbace5..0000000 --- a/WebKit/android/stlport/stl/config/_epilog.h +++ /dev/null @@ -1,32 +0,0 @@ -#if defined (_STLP_MSVC) || defined (__ICL) || defined (__BORLANDC__) - -#if defined (__BORLANDC__) -# pragma option pop -# pragma option -w-pow // -w-8062 Previous options and warnings not restored -#else -# if !(defined (_STLP_MSVC) && (_STLP_MSVC < 1200)) -# pragma warning (pop) -# endif -# pragma pack (pop) -#endif - -#elif defined (__sgi) && !defined (__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) - -# pragma reset woff 1174 -# pragma reset woff 1375 -# pragma reset woff 1209 -/* from iterator_base.h */ -# pragma reset woff 1183 - -#elif defined (__DECCXX) - -# ifdef __PRAGMA_ENVIRONMENT -# pragma __environment __restore -# endif - -#elif defined (__IBMCPP__) - -# pragma info(restore) - -#endif - diff --git a/WebKit/android/stlport/stl/config/_evc.h b/WebKit/android/stlport/stl/config/_evc.h deleted file mode 100644 index 4881a9a..0000000 --- a/WebKit/android/stlport/stl/config/_evc.h +++ /dev/null @@ -1,354 +0,0 @@ -/* - * File to have Microsoft eMbedded Visual C++ 3.0 and .NET working with STLport - * May 2004 - * Origin : Zdenek Nemec - zero@mapfactor.com - * Michael Fink - vividos@users.sourceforge.net - */ - -#ifndef _STLP_EVC_H -#define _STLP_EVC_H - -#define _STLP_COMPILER "eMbedded Visual C++" - -// This flag is being used by STLport to support -// old-fashioned Windows CE SDK (see stl_wince.h) -// do not use with eMebedded Visual C++ 3 or 4! -#ifdef _STLP_WINCE -# undef _STLP_WINCE -#endif - -/* Compiler dependent define. The following defines may be available: - * _STLP_WCE_EVC3 when compiling under eMbedded Visual C++ 3 - * _STLP_WCE_NET when compiling under eMbedded Visual C++ .NET - * _STLP_WCE always defined when compiling with one of the above - */ -#undef _STLP_WCE_EVC3 -#undef _STLP_WCE_NET - -#if (_WIN32_WCE > 300) -# define _STLP_WCE_NET UNDER_CE -#elif (_WIN32_WCE == 300) -# define _STLP_WCE_EVC3 UNDER_CE -#else -# error No support for Windows CE below 3.0! -#endif - -// This is defined for all platforms using Windows CE -#define _STLP_WCE - -/* All Windows CE versions up to at least version 5 are little-endian, even - * if the hardware (like e.g. MIPS) can be configured for big-endian, too. */ -#define _STLP_LITTLE_ENDIAN - -// Ensure _DEBUG is defined. -#if defined (DEBUG) && !defined (_DEBUG) -# define _DEBUG -#endif - -// in evc3/4, on ARM, check that _STLP_DEBUG is not defined -// the ARM compiler has a bug that prevents that debug mode from working -#if _WIN32_WCE < 500 && defined(ARM) && defined(_STLP_DEBUG) -# error _STLP_DEBUG mode is not supported in evc3 and evc4 on the ARM platform! -#endif - -// inherit all msvc6 options -#include <stl/config/_msvc.h> - -// CE up to at least version 5 has no C locale support -#define _STLP_NO_LOCALE_SUPPORT - -#if _WIN32_WCE >= 0x500 - // SDKs built with PB5 have terminate&co in namespace std... -# define _STLP_VENDOR_TERMINATE_STD _STLP_VENDOR_STD -# define _STLP_VENDOR_UNCAUGHT_EXCEPTION_STD _STLP_VENDOR_STD - // ...and new_handler/set_new_handler in the global namespace. -# define _STLP_GLOBAL_NEW_HANDLER 1 -#endif - -// Always threaded in eMbedded Visual C++ 3.0 and .NET -#ifndef _MT -# define _MT -#endif - -// we don't have a static native runtime library -#undef _STLP_USING_CROSS_NATIVE_RUNTIME_LIB - -#if _WIN32_WCE < 400 -// no long double under CE3 and older -# define _STLP_NO_LONG_DOUBLE -#endif - -// no *f and *l math functions available -#define _STLP_NO_VENDOR_MATH_F -#define _STLP_NO_VENDOR_MATH_L - -/* - * Redirect cout, cerr and clog: - * If defined redirect cout, cerr and clog to - * files stdout.txt, stderr.txt and stdlog.txt - */ -//# define _STLP_REDIRECT_STDSTREAMS - -/* - * Static class members may generate LNK1179: - * Wrong COMDAT packing may cause LNK1179 error. - * For details see http://groups.google.com/groups?th=8a05c82c4ffee280 - * example P78. This define is not used/needed at this moment - * but may came handy in future... - */ -//# define _STLP_STATIC_MEMBERS_BUG - -// Use wide-string interface of windows native functions (CreateFile...). -// Note that this should be defined all the time while under CE. -#if defined (UNICODE) -# define _STLP_USE_WIDE_INTERFACE -#endif - -// Force exception std to std instead of __std_alias. -#if defined (__cplusplus) && !defined (_STLP_HAS_NO_NAMESPACES) -# ifdef _STLP_VENDOR_EXCEPT_STD -# undef _STLP_VENDOR_EXCEPT_STD -# endif -# define _STLP_VENDOR_EXCEPT_STD std -#endif - -// short string optimization bug under evc3, evc4 using ARM compiler -#if _MSC_VER<1400 && (defined (ARM) || defined (_ARM_)) -# define _STLP_DONT_USE_SHORT_STRING_OPTIM -#endif - -// when using MFC, disable another placement new declaration, since there is one in wcealt.h -#if !defined (__BUILDING_STLPORT) && defined (_MFC_VER) -# define __PLACEMENT_NEW_INLINE -#endif - -// threads -#undef _REENTRANT -#define _REENTRANT -#undef _NOTHREADS - -// Use old fashioned headers (ctime vs. time.h). -#undef _STLP_NO_NEW_C_HEADERS -#define _STLP_NO_NEW_C_HEADERS - -// exception handling support: only on evc4 and user added /GX to project settings -#if defined (_STLP_WCE_EVC3) || !defined (_CPPUNWIND) -# define _STLP_NO_EXCEPTION_HEADER -# define _STLP_NO_EXCEPTIONS -# undef _STLP_USE_EXCEPTIONS -# ifndef __THROW_BAD_ALLOC -# define __THROW_BAD_ALLOC { _STLP_WINCE_TRACE(L"out of memory"); ExitThread(1); } -# endif -#endif - -#define _STLP_WINCE_TRACE(msg) OutputDebugString(msg) - -/* - * eMbedded Visual C++ .NET specific settings - */ -#if defined (_STLP_WCE_NET) - -// evc4 has no locale and time support -# define _STLP_NO_LOCALE_SUPPORT -# define _STLP_NO_TIME_SUPPORT - -// ptrdiff_t is not defined in evc4 headers -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif - -/* - * Helper macros for including the native headers in cases where a file with - * the same name also exists in the STLport include folder. The idea behind - * this is that we first go up one directory and then down into a dir that - * is only present in the native install but not in STLport. - * - */ -# if !defined (_STLP_NATIVE_INCLUDE_PATH) -# if defined (_X86_) -# if defined (_STLP_WCE_TARGET_PROC_SUBTYPE_EMULATOR) -# define _STLP_NATIVE_INCLUDE_PATH ../Emulator -# else -# define _STLP_NATIVE_INCLUDE_PATH ../X86 -# endif -# elif defined (_ARM_) -# if _MSC_VER < 1400 - // eVC3/4 -# if defined (ARMV4) -# define _STLP_NATIVE_INCLUDE_PATH ../Armv4 -# elif defined (ARMV4I) -# define _STLP_NATIVE_INCLUDE_PATH ../Armv4i -# elif defined (ARMV4T) -# define _STLP_NATIVE_INCLUDE_PATH ../Armv4t -# else -# error Unknown ARM SDK. -# endif -# else - // VC8 crosscompiling for CE -# if defined (ARMV4) -# define _STLP_NATIVE_INCLUDE_PATH ../Armv4 -# elif defined(ARMV4I) || defined(ARMV4T) -# define _STLP_NATIVE_INCLUDE_PATH ../Armv4i -# else -# error Unknown ARM SDK. -# endif -# endif -# elif defined (_MIPS_) -# if defined (MIPS16) -# define _STLP_NATIVE_INCLUDE_PATH ../mips16 -# elif defined (MIPSII) -# define _STLP_NATIVE_INCLUDE_PATH ../mipsII -# elif defined (MIPSII_FP) -# define _STLP_NATIVE_INCLUDE_PATH ../mipsII_fp -# elif defined (MIPSIV) -# define _STLP_NATIVE_INCLUDE_PATH ../mipsIV -# elif defined (MIPSIV_FP) -# define _STLP_NATIVE_INCLUDE_PATH ../mipsIV_fp -# else -# error Unknown MIPS SDK. -# endif -# elif defined (SHx) -# if defined (SH3) -# define _STLP_NATIVE_INCLUDE_PATH ../sh3 -# elif defined (SH4) -# define _STLP_NATIVE_INCLUDE_PATH ../sh4 -# else -# error Unknown SHx SDK. -# endif -# else -# error Unknown SDK. -# endif -# endif /* !_STLP_NATIVE_INCLUDE_PATH */ - -/* Workaround when using MFCCE and using <new> together: MFCCE's wcealt.h doesn't - * check for __PLACEMENT_NEW_INLINE before defining operator new, so when <new> - * defines the operatore before, there will be an error C2084: - * "function 'void *__cdecl operator new(unsigned int,void *)' already has a body". - */ -# ifdef _STLP_USE_MFC -# define __PLACEMENT_NEW_INLINE -# endif - -#endif /* _STLP_WCE_NET */ - -/* Workaround in _windows.h needs native headers access macros - * to be defined */ -#include <stl/config/_native_headers.h> - -/* - * eMbedded Visual C++ 3.0 specific settings - */ -#if defined (_STLP_WCE_EVC3) - -# define _STLP_NO_NATIVE_MBSTATE_T - -// evc3 has no locale and time support -# define _STLP_NO_LOCALE_SUPPORT -# define _STLP_NO_TIME_SUPPORT - -// evc3 has new, but no explicit header -# define _STLP_NO_NEW_HEADER -# define _STLP_NO_NEW_NEW_HEADER - -// evc3 has no bad_alloc and no typeinfo -# undef _STLP_NO_BAD_ALLOC -# define _STLP_NO_BAD_ALLOC - -# undef _STLP_NO_TYPEINFO -# define _STLP_NO_TYPEINFO - -// missing things in eMbedded Visual C++ 3.0 headers -# ifndef _SIZE_T_DEFINED - typedef unsigned int size_t; -# define _SIZE_T_DEFINED -# endif - -# ifndef _WCHAR_T_DEFINED - typedef unsigned short wchar_t; -# define _WCHAR_T_DEFINED -# endif - -// ptrdiff_t is not defined in evc3 headers -# ifndef _PTRDIFF_T_DEFINED - typedef int ptrdiff_t; -# define _PTRDIFF_T_DEFINED -# endif - -// clock_t is not defined in evc3 headers -# ifndef _CLOCK_T_DEFINED - typedef long clock_t; -# define _CLOCK_T_DEFINED -# endif - -// Struct tm is not defined in evc3 headers -# ifndef _TM_DEFINED -struct tm { - int tm_sec; /* seconds after the minute - [0,59] */ - int tm_min; /* minutes after the hour - [0,59] */ - int tm_hour; /* hours since midnight - [0,23] */ - int tm_mday; /* day of the month - [1,31] */ - int tm_mon; /* months since January - [0,11] */ - int tm_year; /* years since 1900 */ - int tm_wday; /* days since Sunday - [0,6] */ - int tm_yday; /* days since January 1 - [0,365] */ - int tm_isdst; /* daylight savings time flag */ -}; -# define _TM_DEFINED -# endif - -// define placement new and delete operator -// note: when MFCCE headers are included first, don't define the new operator, -// since it was already defined in wcealt.h -# ifdef __cplusplus -# ifndef __PLACEMENT_NEW_INLINE -# ifndef _MFC_VER -inline void *__cdecl operator new(size_t, void *_P) { return (_P); } -# endif /* _MFC_VER */ -inline void __cdecl operator delete(void *, void *) { return; } -# define __PLACEMENT_NEW_INLINE -# endif -# endif /* __cplusplus */ - -// evc3 doesn't have native wide functions, e.g. fgetwc, wmemmove -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS - -// evc3 doesn't have assert.h -# ifndef _ASSERT_DEFINED -# define assert(expr) _STLP_ASSERT(expr) -# define _ASSERT_DEFINED -# endif - -#endif /* _STLP_WCE_EVC3 */ - -// Minimize windows.h includes -#if !defined (WIN32_LEAN_AND_MEAN) -# define WIN32_LEAN_AND_MEAN -#endif -#if !defined (VC_EXTRALEAN) -# define VC_EXTRALEAN -#endif -#if !defined (STRICT) -# define STRICT -#endif - -// Don't let windows.h define its min and max macros. -#if !defined (NOMINMAX) -# define NOMINMAX -#endif - -/* - * original call: TerminateProcess(GetCurrentProcess(), 0); - * we substitute the GetCurrentProcess() with the result of the inline function - * defined in kfuncs.h, since we then can avoid including <windows.h> at all. - * all needed Win32 API functions are defined in <stl/_windows.h> - */ -#ifndef _ABORT_DEFINED -# define _STLP_ABORT() TerminateProcess(reinterpret_cast<HANDLE>(66), 0) -# define _ABORT_DEFINED -#endif - -// Notice: windows.h isn't included here anymore; all needed defines are in -// stl/_windows.h now - -#endif /* _STLP_EVC_H */ diff --git a/WebKit/android/stlport/stl/config/_freebsd.h b/WebKit/android/stlport/stl/config/_freebsd.h deleted file mode 100644 index 1bb6b58..0000000 --- a/WebKit/android/stlport/stl/config/_freebsd.h +++ /dev/null @@ -1 +0,0 @@ -#define _STLP_PLATFORM "Free BSD" diff --git a/WebKit/android/stlport/stl/config/_fujitsu.h b/WebKit/android/stlport/stl/config/_fujitsu.h deleted file mode 100644 index cf91e05..0000000 --- a/WebKit/android/stlport/stl/config/_fujitsu.h +++ /dev/null @@ -1,7 +0,0 @@ -/* STLport configuration for Fujitsu compiler : looks like a perfect one ! */ -#define _STLP_COMPILER "Fujitsu" - -#define _STLP_NATIVE_INCLUDE_PATH ../std -#define _STLP_UINT32_T unsigned int -#define _STLP_LONG_LONG long long -#define _STLP_WCHAR_SUNPRO_EXCLUDE 1 diff --git a/WebKit/android/stlport/stl/config/_gcc.h b/WebKit/android/stlport/stl/config/_gcc.h deleted file mode 100644 index 8dae452..0000000 --- a/WebKit/android/stlport/stl/config/_gcc.h +++ /dev/null @@ -1,462 +0,0 @@ -/* STLport configuration file - * It is internal STLport header - DO NOT include it directly - */ - -#define _STLP_COMPILER "gcc" - -/* Systems having GLIBC installed have different traits */ -#if defined (__linux__) -# ifndef _STLP_USE_GLIBC -# define _STLP_USE_GLIBC 1 -# endif -# if defined (__UCLIBC__) && !defined (_STLP_USE_UCLIBC) -# define _STLP_USE_UCLIBC 1 -# endif -#endif - -#if defined (__CYGWIN__) && \ - (__GNUC__ >= 3) && (__GNUC_MINOR__ >= 3) && !defined (_GLIBCPP_USE_C99) -# define _STLP_NO_VENDOR_MATH_L -# define _STLP_NO_VENDOR_STDLIB_L -#endif - -#if (__GNUC__ < 3) -# define _STLP_NO_VENDOR_STDLIB_L -#endif - -/* We guess if we are using the cygwin distrib that has a special include schema. - * There is no way to distinguish a cygwin distrib used in no-cygwin mode from a - * mingw install. We are forced to use a configuration option - */ -#if !defined (_STLP_NATIVE_INCLUDE_PATH) && \ - (defined (__CYGWIN__) || defined (__MINGW32__) && defined (_STLP_NO_CYGWIN)) -# if (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ > 3)) -# define _STLP_NATIVE_INCLUDE_PATH ../../../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__/include/c++ -# elif defined (_STLP_NO_CYGWIN) -# define _STLP_NATIVE_INCLUDE_PATH ../mingw -/*# else - * Before version gcc 3.4, the cygwin package include path was conform to the - * GNU convention which is set later in this file. - */ -# endif -#endif - -#if (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 4)) -/* define for gcc versions before 3.4.0. */ -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD -#endif - -/* azov: gcc on lynx have a bug that causes internal - * compiler errors when compiling STLport with namespaces turned on. - * When the compiler gets better - comment out _STLP_HAS_NO_NAMESPACES - */ -#if defined (__Lynx__) && (__GNUC__ < 3) -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NO_STATIC_TEMPLATE_DATA 1 -/* turn off useless warning about including system headers */ -# define __NO_INCLUDE_WARN__ 1 -#endif - -/* Tru64 Unix, AIX, HP : gcc there by default uses native ld and hence cannot auto-instantiate - static template data. If you are using GNU ld, please say so in user_config.h header */ -#if (__GNUC__ < 3) && !defined(_STLP_GCC_USES_GNU_LD) && \ - ((defined (__osf__) && defined (__alpha__)) || defined (_AIX) || defined (__hpux) || defined(__amigaos__) ) -# define _STLP_NO_STATIC_TEMPLATE_DATA -#endif - -#if !defined (_REENTRANT) && (defined (_THREAD_SAFE) || \ - (defined (__OpenBSD__) && defined (_POSIX_THREADS)) || \ - (defined (__MINGW32__) && defined (_MT))) -# define _REENTRANT -#endif - -#if defined (__DJGPP) -# define _STLP_RAND48 1 -# define _NOTHREADS 1 -# undef _PTHREADS -# define _STLP_LITTLE_ENDIAN -#endif - -#if defined (__MINGW32__) -/* Mingw32, egcs compiler using the Microsoft C runtime */ -# define _STLP_VENDOR_GLOBAL_CSTD -# undef _STLP_NO_DRAND48 -# define _STLP_NO_DRAND48 -# define _STLP_CALL - -# if defined (_STLP_NEW_PLATFORM_SDK) -/* For the moment the Windows SDK coming with Mingw still mimik the old platform SDK. */ -# undef _STLP_NEW_PLATFORM_SDK -# endif -#endif /* __MINGW32__ */ - -#if defined (__CYGWIN__) || defined (__MINGW32__) -# if !defined (_STLP_USE_STATIC_LIB) -# define _STLP_USE_DECLSPEC 1 -# if !defined (_STLP_USE_DYNAMIC_LIB) -# define _STLP_USE_DYNAMIC_LIB -# endif -# define _STLP_EXPORT_DECLSPEC __declspec(dllexport) -# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport) -# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport) -# endif -/* The following is defined independently of _STLP_USE_STATIC_LIB because it is also - * used to import symbols from PSDK under MinGW - */ -# define _STLP_IMPORT_DECLSPEC __declspec(dllimport) -#endif - -#if defined (__CYGWIN__) || defined (__MINGW32__) || !(defined (_STLP_USE_GLIBC) || defined (__sun) || defined(__APPLE__)) -# if !defined (__MINGW32__) && !defined (__CYGWIN__) -# define _STLP_NO_NATIVE_MBSTATE_T 1 -# endif -# if !defined (__MINGW32__) || (__GNUC__ < 3) || (__GNUC__ == 3) && (__GNUC_MINOR__ < 4) -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 -# endif -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -#endif - -#define _STLP_NORETURN_FUNCTION __attribute__((noreturn)) - -/* Mac OS X is a little different with namespaces and cannot instantiate - * static data members in template classes */ -#if defined (__APPLE__) -# if ((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))) -/* Mac OS X is missing a required typedef and standard macro */ -typedef unsigned int wint_t; -# endif - -# define __unix - -# if (__GNUC__ < 3) - - /* Mac OS X needs one and only one source file to initialize all static data - * members in template classes. Only one source file in an executable or - * library can declare instances for such data members, otherwise duplicate - * symbols will be generated. */ - -# define _STLP_NO_STATIC_TEMPLATE_DATA -# define _STLP_STATIC_CONST_INIT_BUG 1 -# define _STLP_STATIC_TEMPLATE_DATA 0 -# define _STLP_WEAK_ATTRIBUTE 1 - /* Workaround for the broken Mac OS X C++ preprocessor which cannot handle - * parameterized macros in #include statements */ -# define _STLP_NATIVE_HEADER(header) <../g++/##header##> -# define _STLP_NATIVE_C_HEADER(header) <../include/##header##> -# define _STLP_NATIVE_CPP_C_HEADER(header) <../g++/##header##> -# define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../g++/##header##> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../g++/##header##> -# endif /* __GNUC__ < 3 */ - -# define _STLP_NO_LONG_DOUBLE - -/* Mac OS X needs all "::" scope references to be "std::" */ -# define _STLP_USE_NEW_C_HEADERS - -# define _STLP_NO_VENDOR_STDLIB_L - -#endif /* __APPLE__ */ - - -#if defined(__BEOS__) && defined(__INTEL__) -# define _STLP_NATIVE_HEADER(header) <../stlport/beos/##header##> -# define _STLP_NATIVE_C_HEADER(header) <../stlport/beos/##header##> -# define _STLP_NATIVE_CPP_C_HEADER(header) <../stlport/beos/##header##> -# define _STLP_NATIVE_OLD_STREAMS_HEADER(header) <../stlport/beos/##header##> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../stlport/beos/##header##> -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -/* -# define _NOTHREADS 1 -*/ -# ifdef _PTHREADS -# undef _PTHREADS -# endif -# ifdef _STLP_PTHREADS -# undef _STLP_PTHREADS -# endif -# define _STLP_USE_STDIO_IO 1 -# define _STLP_USE_GLIBC 1 -#endif - -/* g++ 2.7.x and above */ -#define _STLP_LONG_LONG long long - -#ifdef _STLP_USE_UCLIBC -/* -# ifndef __DO_C99_MATH__ -*/ - /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */ -# define _STLP_NO_VENDOR_MATH_F - /* No *l math fuctions variants (i.e. sqrtl, fabsl, etc.) */ -# define _STLP_NO_VENDOR_MATH_L -# define _STLP_NO_LONG_DOUBLE -/* -# endif -*/ -#endif - -#if defined (__OpenBSD__) || defined (__FreeBSD__) -# define _STLP_NO_VENDOR_MATH_L -# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */ -# ifndef __unix -# define __unix -# endif -#endif - -#if defined (__alpha__) -# define _STLP_NO_VENDOR_MATH_L -# define _STLP_NO_IEC559_SUPPORT -#endif - -#if defined (__hpux) -# define _STLP_NO_VENDOR_STDLIB_L /* no llabs */ - /* No *f math fuctions variants (i.e. sqrtf, fabsf, etc.) */ -# define _STLP_NO_VENDOR_MATH_F -#endif - -#if (__GNUC__ >= 3) -# ifndef _STLP_HAS_NO_NEW_C_HEADERS -/* -# ifndef _STLP_USE_UCLIBC -*/ -# define _STLP_HAS_NATIVE_FLOAT_ABS -/* -# endif -*/ -# else -# ifdef _STLP_USE_GLIBC -# define _STLP_VENDOR_LONG_DOUBLE_MATH 1 -# endif -# endif -#endif - -#if (__GNUC__ < 3) -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# define _STLP_DONT_USE_PTHREAD_SPINLOCK 1 -# ifndef __HONOR_STD -# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1 -# endif -/* egcs fails to initialize builtin types in expr. like this : new(p) char(); */ -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -#endif - -/* -#define _STLP_VENDOR_GLOBAL_CSTD 1 -*/ - -#if (__GNUC__ == 2) && (__GNUC_MINOR__ < 95) -# define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -# define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 -#elif !defined (ANDROID) -// Don't drag in these externals on Android. -# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT -#endif - -#if (__GNUC_MINOR__ < 9) && (__GNUC__ < 3) /* gcc 2.8 */ -# define _STLP_NO_TEMPLATE_CONVERSIONS -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NO_METHOD_SPECIALIZATION 1 -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS -/* DJGPP doesn't seem to implement it in 2.8.x */ -# ifdef DJGPP -# define _STLP_NO_STATIC_TEMPLATE_DATA 1 -# endif -#endif - -#if __GNUC__ <= 2 && __GNUC_MINOR__ <= 7 && !defined (__CYGWIN32__) -/* Will it work with 2.6 ? I doubt it. */ -# if ( __GNUC_MINOR__ < 6 ) -__GIVE_UP_WITH_STL(GCC_272); -# endif - -# define _STLP_NO_RELOPS_NAMESPACE -# define _STLP_NON_TYPE_TMPL_PARAM_BUG -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 -# define _STLP_DEFAULT_TYPE_PARAM 1 -# define _STLP_NO_BAD_ALLOC -# define _STLP_NO_ARROW_OPERATOR 1 -# ifndef _STLP_NO_STATIC_TEMPLATE_DATA -# define _STLP_NO_STATIC_TEMPLATE_DATA -# endif -# define _STLP_STATIC_CONST_INIT_BUG 1 -# define _STLP_NO_METHOD_SPECIALIZATION 1 - -# if !defined (__CYGWIN32__) -# define _STLP_NESTED_TYPE_PARAM_BUG 1 -# define _STLP_BASE_MATCH_BUG 1 -/* unused operators are required (forward) */ -# define _STLP_CONST_CONSTRUCTOR_BUG -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM -# endif -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 -# define _STLP_NO_EXCEPTION_HEADER 1 -#else /* ! <= 2.7.* */ -#endif /* ! <= 2.7.* */ - -/* static template data members workaround strategy for gcc tries - * to use weak symbols. - * if you don't want to use that, #define _STLP_WEAK_ATTRIBUTE=0 ( you'll - * have to put "#define __PUT_STATIC_DATA_MEMBERS_HERE" line in one of your - * compilation unit ( or CFLAGS for it ) _before_ including any STL header ). - */ -#if defined (_STLP_NO_STATIC_TEMPLATE_DATA) && ! defined (_STLP_WEAK_ATTRIBUTE ) -/* systems using GNU ld or format that supports weak symbols - may use "weak" attribute - Linux & Solaris ( x86 & SPARC ) are being auto-recognized here */ -# if defined(_STLP_GNU_LD) || defined(__ELF__) || defined (__CYGWIN__) || \ - (( defined (__SVR4) || defined ( __svr4__ )) && \ - ( defined (sun) || defined ( __sun__ ))) -# define _STLP_WEAK_ATTRIBUTE 1 -# endif -#endif /* _STLP_WEAK_ATTRIBUTE */ - - -/* strict ANSI prohibits "long long" ( gcc) */ -#if defined ( __STRICT_ANSI__ ) -# undef _STLP_LONG_LONG -/* -# define _STLP_STRICT_ANSI 1 -*/ -#endif - -/* -#if !defined (__STRICT_ANSI__) || defined (__BUILDING_STLPORT) -# define _STLP_USE_TEMPLATE_EXPORT -# define _STLP_EXPORT_TEMPLATE_KEYWORD extern -# define _STLP_IMPORT_TEMPLATE_KEYWORD extern -#endif -*/ - -#ifndef __EXCEPTIONS -# undef _STLP_DONT_USE_EXCEPTIONS -# define _STLP_DONT_USE_EXCEPTIONS 1 -#endif - -#if (__GNUC__ >= 3) - -# if !defined (_STLP_NATIVE_INCLUDE_PATH) -# if ( (__GNUC__ == 3 ) && ((__GNUC_MINOR__ == 0) || ((__GNUC_MINOR__ < 3) && defined(__APPLE_CC__)))) -# define _STLP_NATIVE_INCLUDE_PATH ../g++-v3 -# else -# if ( ((__GNUC__ == 4 ) || (__GNUC_MINOR__ >= 3)) && defined(__APPLE_CC__)) -# define _STLP_NATIVE_INCLUDE_PATH ../c++ -/* -* Before version 3.4.0 the 0 patch level was not part of the include path: -*/ -# elif defined (__GNUC_PATCHLEVEL__) && ((__GNUC_PATCHLEVEL__ > 0) || \ - (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ - (__GNUC__ > 3)) -# define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__ -# else -# define _STLP_NATIVE_INCLUDE_PATH ../__GNUC__.__GNUC_MINOR__ -# endif -# endif -# endif - -/* Instantiation scheme that used (default) in gcc 3 made void of sense explicit - instantiation within library: nothing except increased library size. - ptr - */ -# define _STLP_NO_FORCE_INSTANTIATE - -#elif (__GNUC_MINOR__ < 8) - -# if !defined (_STLP_NATIVE_INCLUDE_PATH) -# define _STLP_NATIVE_INCLUDE_PATH ../g++-include -# endif - -/* tuning of static template data members workaround */ -# if ( _STLP_STATIC_TEMPLATE_DATA < 1 ) -# if ( _STLP_WEAK_ATTRIBUTE > 0 ) -# define _STLP_WEAK __attribute__ (( weak )) -# else -# define _STLP_WEAK -# endif /* _STLP_WEAK_ATTRIBUTE */ - -# ifdef __PUT_STATIC_DATA_MEMBERS_HERE -# define __DECLARE_INSTANCE(type,item,init) type item _STLP_WEAK init -# else -# define __DECLARE_INSTANCE(type,item,init) -# endif /* __PUT_STATIC_DATA_MEMBERS_HERE */ -# endif /* _STLP_STATIC_TEMPLATE_DATA */ - -#else - -/* gcc-2.95.0 used to use "g++-3" directory which has been changed to "g++" in - * system-dependent "include" for 2.95.2 except for Cygwin and Mingw packages. - * I expect "g++-3" not being used in later releases. - * If your installation use "g++-3" include directory for any reason (pre-2.95.2 or Win binary kit), - * please change the macro below to point to your directory. - */ - -# if !defined (_STLP_NATIVE_INCLUDE_PATH) -# if defined(__DJGPP) -# define _STLP_NATIVE_INCLUDE_PATH ../lang/cxx -# elif (__GNUC__ >= 3) || (__GNUC_MINOR__ >= 97) -# define _STLP_NATIVE_INCLUDE_PATH ../include/g++-v3 -# elif ((__GNUC_MINOR__ >= 95 && __GNUC_MINOR__ < 97) && \ - !( defined (__FreeBSD__) || defined (__NetBSD__) || defined(__sgi) || defined (__OS2__) ) ) -# define _STLP_NATIVE_INCLUDE_PATH ../g++-3 -# elif (__GNUC_MINOR__ > 8) && (__GNUC_MINOR__ < 95) && (__GNUC__ < 3) && !defined( __Lynx__ ) -/* this really sucks, as GNUpro does not really identifies itself, so we have to guess - * depending on a platform - */ -# ifdef __hpux -# define _STLP_NATIVE_INCLUDE_PATH ../g++-3 -# else -# define _STLP_NATIVE_INCLUDE_PATH ../g++-2 -# endif -# else -# define _STLP_NATIVE_INCLUDE_PATH g++ -# endif -# endif - -/* <exception> et al */ -# ifdef __FreeBSD__ -# if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ > 95) -# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include -# endif -# else -/* azov */ -# ifndef __Lynx__ -# if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97) -/* -# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../g++-v3 -*/ -# else -# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../include -# endif -# endif -# endif - -#endif /* GNUC_MINOR < 8 */ - -#if !defined (_STLP_NATIVE_C_INCLUDE_PATH) -# define _STLP_NATIVE_C_INCLUDE_PATH ../include -#endif - -/* Tune settings for the case where static template data members are not - * instaniated by default - */ -#if defined ( _STLP_NO_STATIC_TEMPLATE_DATA ) -# define _STLP_STATIC_TEMPLATE_DATA 0 -# if !defined ( _STLP_WEAK_ATTRIBUTE ) -# define _STLP_WEAK_ATTRIBUTE 0 -# endif -# ifdef __PUT_STATIC_DATA_MEMBERS_HERE -# define __DECLARE_INSTANCE(type,item,init) type item init -# else -# define __DECLARE_INSTANCE(type,item,init) -# endif -#else -# define _STLP_STATIC_TEMPLATE_DATA 1 -#endif diff --git a/WebKit/android/stlport/stl/config/_hpacc.h b/WebKit/android/stlport/stl/config/_hpacc.h deleted file mode 100644 index 2cc5cc4..0000000 --- a/WebKit/android/stlport/stl/config/_hpacc.h +++ /dev/null @@ -1,196 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Acc" - -// system C-library dependent -#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -#endif -// # define _STLP_RAND48 1 -#define _STLP_NO_NATIVE_MBSTATE_T 1 -#define _STLP_HPACC_BROKEN_BUFEND 1 -#define _STLP_WCHAR_HPACC_EXCLUDE 1 - -// this was reported to help, just as with SUN CC 4.2 -#define _STLP_INLINE_STRING_LITERAL_BUG - -// specific prolog is needed to select correct threads impl -#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG - -// HP aCC with +noeh -#ifdef __HPACC_NOEH -# define _STLP_HAS_NO_EXCEPTIONS 1 -#endif - -// HP compilers -// At that point, we only know we are on HP (and _not_ using gcc, -// according to "stlcomp.h" - -// __HP_aCC indicate HP ANSI C++, but not always (03.xx does not -// define it before 3.13, for example). -// -#if defined (__HP_aCC) - -# define _STLP_NO_FORCE_INSTANTIATE -# define _STLP_LONG_LONG long long -# define _STLP_NO_VENDOR_STDLIB_L - -# if (__HP_aCC <= 30000 && __HP_aCC >= 12100) - -//Special kludge to workaround bug in aCC A.01.23, CR JAGac40634 -# ifdef _STLP_DEBUG -static void _STLP_dummy_literal() { const char *p = "x";} -static void _STLP_dummy_literal_2() { const char *p = "123456789"; } -static void _STLP_dummy_literal_3() { const char *p = "123456700000000000000089";} -# endif - -# define _STLP_HP_ACC 0123 -# define _STLP_NATIVE_INCLUDE_PATH ../include -# define _STLP_VENDOR_GLOBAL_STD 1 -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# define _STLP_DONT_THROW_RANGE_ERRORS 1 -# define _STLP_STATIC_CONST_INIT_BUG 1 -# if (__HP_aCC < 12700) -//new flag: on most HP compilers cwchar is missing -# define _STLP_NO_CWCHAR -# endif - -# define _STLP_FORCE_ALLOCATORS(t,a) \ - typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\ - typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2; - -# endif /* 123 */ - -// latest version and up -# if (__HP_aCC >= 32500 ) -# define _STLP_HP_ACC 0325 - -# define _STLP_USE_NEW_C_HEADERS - -# define _STLP_FORCE_ALLOCATORS(t,a) \ - typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\ - typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2; - -# if !defined ( _INCLUDE__STDC_A1_SOURCE ) // HP-UX 11i only -# define _STLP_HAS_NO_UNIX98_WCHAR_EXTENSIONS -# endif - -# if defined (_HP_NAMESPACE_STD) // option -AA -// from now, we have a full standard lib in namespace std -// -// -AA indicates that we are compiling against Rogue Wave 2.2.1 -// STL shipped with the HP aCC compiler. -AA tells the compiler -// to use the STL defined in the include_std directory. -// -# define _STLP_NATIVE_INCLUDE_PATH ../include_std - -// # define _STLP_HPACC_ONLY_NATIVE_STRING 1 // STLPort _string.c includes <locale> -# define _STLP_HP_ACC_COMPAT -1 -# else // option -Aa -# define _STLP_NATIVE_INCLUDE_PATH ../include -# define _STLP_VENDOR_GLOBAL_STD 1 -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# define _STLP_DONT_THROW_RANGE_ERRORS 1 -# endif /* _NAMESPACE_STD */ -# endif - -# if (__HP_aCC >= 31400 && __HP_aCC < 32500) -# define _STLP_HP_ACC 0314 - -# define _STLP_FORCE_ALLOCATORS(t,a) \ -typedef typename _Alloc_traits<t,a>::_Orig _STLP_dummy_type1;\ -typedef typename _STLP_dummy_type1:: _STLP_TEMPLATE rebind<t>::other _STLP_dummy_type2; -# define _STLP_NO_CWCHAR -# if defined (_NAMESPACE_STD) // option -AA -// from now, we have a full standard lib in namespace std -# define _STLP_NATIVE_INCLUDE_PATH ../include_std -//# define _STLP_HPACC_ONLY_NATIVE_STRING 1 // STLPort _string.c includes <locale> -# define _STLP_HP_ACC_COMPAT -1 -# else // kind of compatibility mode -# define _STLP_NATIVE_INCLUDE_PATH ../include -# define _STLP_VENDOR_GLOBAL_STD 1 -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# define _STLP_DONT_THROW_RANGE_ERRORS 1 -# define _STLP_NO_ROPE 1 -# endif /* _NAMESPACE_STD */ -# endif /* 314 */ - -# if ((__HP_aCC >= 30000 && __HP_aCC < 31400) || (__HP_aCC == 1)) // A.03.13: __HP_aCC == 1 - -# if (__HP_aCC != 1) -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -# endif - -# define _STLP_NO_QUALIFIED_FRIENDS 1 -// aCC bug ? need explicit args on constructors of partial specialized -// classes -# define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS 1 -// ?? fbp : maybe present in some versions ? -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -// <exception> and stuff is in global namespace -# define _STLP_VENDOR_GLOBAL_EXCEPT_STD -// fbp : moved here -# define _STLP_VENDOR_GLOBAL_CSTD 1 -// # define _INCLUDE_HPUX_SOURCE -# define _XPG4 -# define _INCLUDE_XOPEN_SOURCE -# define _INCLUDE_AES_SOURCE -# endif /* < 314 */ -# if __HP_aCC == 1 -# define _STLP_BROKEN_USING_IN_CLASS -# define _STLP_USING_BASE_MEMBER -# define _STLP_NO_CWCHAR -// # define _STLP_NO_WCHAR_T 1 -# endif -#endif /* HP_ACC */ - -// -#ifndef __HP_aCC -# define _STLP_NATIVE_INCLUDE_PATH ../CC -# define _STLP_NATIVE_C_INCLUDE_PATH ../include -// it is HP's old cfront-based compiler. -# define _STLP_NO_BOOL 1 -// # define _STLP_DONT_USE_BOOL_TYPEDEF 1 -# define _STLP_NO_NEW_NEW_HEADER 1 -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 -# define _STLP_NO_SIGNED_BUILTINS -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NEED_EXPLICIT 1 -# define _STLP_NO_EXCEPTION_SPEC 1 -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 -# define _STLP_NO_ARROW_OPERATOR 1 -# define _STLP_BASE_MATCH_BUG -# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 -# define _STLP_NO_NEW_STYLE_CASTS 1 -// # define _STLP_NO_WCHAR_T 1 -// # define _STLP_LONG_LONG long long -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 -# define _STLP_NO_BAD_ALLOC 1 -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# define _STLP_MEMBER_POINTER_PARAM_BUG 1 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 -// # define _STLP_NO_METHOD_SPECIALIZATION 1 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 -# define _STLP_NO_EXCEPTION_HEADER 1 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -// # define _STLP_STATIC_CONST_INIT_BUG 1 -// # define _STLP_THROW_RETURN_BUG 1 -// # define _STLP_LINK_TIME_INSTANTIATION 1 -// # define _STLP_NO_TEMPLATE_CONVERSIONS 1 -# define _STLP_NO_TYPEINFO 1 -# define _STLP_WCHAR_T_IS_USHORT 1 - -#endif /* cfront */ diff --git a/WebKit/android/stlport/stl/config/_hpux.h b/WebKit/android/stlport/stl/config/_hpux.h deleted file mode 100644 index 1a67c08..0000000 --- a/WebKit/android/stlport/stl/config/_hpux.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __stl_config__hpux_h -#define __stl_config__hpux_h - -#define _STLP_PLATFORM "HP Unix" - -#ifdef __GNUC__ -# define _STLP_NO_WCHAR_T -# define _STLP_NO_LONG_DOUBLE -#endif - -#endif /* __stl_config__hpux_h */ diff --git a/WebKit/android/stlport/stl/config/_ibm.h b/WebKit/android/stlport/stl/config/_ibm.h deleted file mode 100644 index 96c504c..0000000 --- a/WebKit/android/stlport/stl/config/_ibm.h +++ /dev/null @@ -1,146 +0,0 @@ -/* STLport configuration file - * It is internal STLport header - DO NOT include it directly - */ - -#if defined (__IBMCPP__) || defined (__IBMC__) -# define _STLP_COMPILER "Visual Age C++" -#elif defined (__xlC__) -# define _STLP_COMPILER "xlc" -#else -# error "Unknown compiler" -#endif - -#if !defined(__IBMCPP__) || (__IBMCPP__ < 500) -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -#endif - -/* string literal problem, same as with SUN and aCC */ -# define _STLP_INLINE_STRING_LITERAL_BUG 1 -# define _STLP_HAS_NATIVE_FLOAT_ABS - -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 - - -# ifdef __IBMCPP__ -# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG -# endif - -/* # if ( defined (__MULTI__) && defined (__WINDOWS__)) - * # define _STLP_WIN32THREADS 1 Only Visual Age 3.5 for Windows - * # endif - */ - -# if ( defined (__MULTI__) && defined (__OS2__)) -# define _STLP_OS2THREADS 1 -# endif - -/* __TEMPINC__ is set when /Ft+ option is used */ -# ifdef __TEMPINC__ -# define _STLP_LINK_TIME_INSTANTIATION 1 -# endif - -# if defined (__MVS__) -/* long long support is buggy - reported by Tinny Ng - * # if __EXTENDED__ && __COMPILER_VER__ >= 0x22060000 - * # define _STLP_LONG_LONG long long - * # endif - */ -/* boris : hstash reported it can be treated like UNIX */ -# define _STLP_UNIX 1 -# define _STLP_NO_TYPEINFO 1 -# undef _STLP_NATIVE_INCLUDE_PATH -# define _STLP_NATIVE_INCLUDE_PATH /usr/lpp/ioclib/include -/* same for C headers like <string.h> */ -# undef _STLP_NATIVE_C_INCLUDE_PATH -# define _STLP_NATIVE_C_INCLUDE_PATH /usr/include -# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH /usr/include - -# elif (defined (__WINDOWS__) || defined (_AIX) || defined (__OS2__) ) && (__IBMCPP__ >= 350) - -# define _STLP_LONG_LONG long long - -#endif - -#if !( defined( __xlC__ ) && __xlC__ >= 0x500 ) - -/* AIX xlC 3.1 , 3.0.1 ==0x301 - * Visual Age C++ 3.x - * OS-390 C++ - * fbp : should be more version-specific! - */ - -# define _STLP_NO_BOOL 1 -# define _STLP_DONT_USE_BOOL_TYPEDEF 1 -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NEED_EXPLICIT 1 -# define _STLP_NO_ARROW_OPERATOR 1 -# define _STLP_NO_NEW_STYLE_CASTS 1 -# define _STLP_NO_WCHAR_T 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 -# define _STLP_NO_BAD_ALLOC 1 - -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 - -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 -# define _STLP_NO_METHOD_SPECIALIZATION 1 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 -# define _STLP_NO_EXCEPTION_HEADER 1 - -# define _STLP_NO_NEW_NEW_HEADER 1 - -# if defined (__OS2__) && (__IBMCPP__ <= 350) -# define _STLP_NO_TYPEINFO 1 -# endif -# define _STLP_NO_NEW_NEW_HEADER 1 - -# define _STLP_STATIC_CONST_INIT_BUG 1 -/* # define _STLP_THROW_RETURN_BUG 1 */ - - -# define _STLP_NO_TEMPLATE_CONVERSIONS 1 -# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 - -/* AIX xlC, Visual Age 3.0 for OS/2 and MS */ -# define _STLP_TRIVIAL_DESTRUCTOR_BUG - -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 - -#if __IBMCPP__ <= 350 -# define _STLP_NEED_UNREACHABLE_RETURN 1 -#endif - -#if __IBMCPP__ < 350 -# define _STLP_NO_LONG_DOUBLE 1 -#endif - -#if __IBMCPP__ >= 365 -/* does not have new C headers, but has div() */ -# define _STLP_LDIV -#endif - -#endif /* xlC 5 */ - -/* detect xlC5 by: */ -#if defined(__IBMCPP__) && (500 <= __IBMCPP__) && (__IBMCPP__ < 700) -# define _STLP_USE_EXCEPTIONS 1 -# define _STLP_STATIC_CONST_INIT_BUG 1 -/* #pragma report(disable,CPPC1500029) - * unsigned 32-bit integer type - */ -# define _STLP_UINT32_T unsigned int -# if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -# endif -/* # define _STLP_RAND48 1 */ -#endif /* __IBMCPP__ == 500 */ diff --git a/WebKit/android/stlport/stl/config/_icc.h b/WebKit/android/stlport/stl/config/_icc.h deleted file mode 100644 index 1fc1bce..0000000 --- a/WebKit/android/stlport/stl/config/_icc.h +++ /dev/null @@ -1,44 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly -// A list of Intel compiler for Linux portion of STLport settings. - -#define _STLP_COMPILER "Intel ICC" - -#define _STLP_LONG_LONG long long - -// Edit relative path below (or put full path) to get native -// compiler headers included. Default is "../include". -// C headers may reside in different directory, so separate macro is provided. -#if (__INTEL_COMPILER < 800) -# define _STLP_NATIVE_INCLUDE_PATH ../include -# define _STLP_NATIVE_C_INCLUDE_PATH ../include -# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include -#endif - -#if (__INTEL_COMPILER >= 800) -# define _STLP_NATIVE_INCLUDE_PATH ../include/c++ -# define _STLP_NATIVE_C_INCLUDE_PATH ../include -# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include - -#endif /* __INTEL_COMPILER >= 800 */ - -#define _STLP_HAS_NO_NEW_C_HEADERS 1 -#define _STLP_VENDOR_GLOBAL_CSTD 1 - -/* Systems having GLIBC installed have different traits */ -#if !defined (_STLP_USE_GLIBC) && defined (__linux__) -# define _STLP_USE_GLIBC -# define _XOPEN_SOURCE 600 -#endif - -#undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT - - -#ifndef __GNUC__ -# define __GNUC__ 3 -#endif - -//#define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 - -#define _STLP_NO_FORCE_INSTANTIATE -//#define _REENTRANT diff --git a/WebKit/android/stlport/stl/config/_intel.h b/WebKit/android/stlport/stl/config/_intel.h deleted file mode 100644 index af8022f..0000000 --- a/WebKit/android/stlport/stl/config/_intel.h +++ /dev/null @@ -1,73 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Intel ICL" - -#define _STLP_IMPORT_TEMPLATE_KEYWORD extern - -/* You need to undef following macro if your icl install is binded to MSVC 6 - * native lib and you are building with /Qvc7 or /Qvc7.1 or /Qvc8 option. - */ -/* #define _STLP_MSVC_LIB 1200 */ -/* You need to undef following macro if your icl install is binded to MSVC .Net 2002 - * native lib and you are building without any /Qvc* option or with /Qvc6 or /Qvc7.1 - * or /Qvc8 option. - */ -/* #define _STLP_MSVC_LIB 1300 */ -/* You need to undef following macro if your icl install is binded to MSVC .Net 2002 - * native lib and you are building without any /Qvc* option or with /Qvc6 or /Qvc7 - * or /Qvc8 option. - */ -/* #define _STLP_MSVC_LIB 1310 */ -/* You need to undef following macro if your icl install is binded to MSVC .Net 2002 - * native lib and you are building without any /Qvc* option or with /Qvc6 or /Qvc7 - * or /Qvc7.1 option. - */ -/* #define _STLP_MSVC_LIB 1400 */ - -#include <stl/config/_msvc.h> - -#if defined (_STLP_DONT_RETURN_VOID) -# undef _STLP_DONT_RETURN_VOID -#endif - -#if (__ICL >= 900) -/* # undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT */ -# if !defined (_STLP_DONT_USE_EXCEPTIONS) -# define _STLP_NOTHROW throw() -# endif -#endif - -#if (__ICL <= 810) -/* If method specialization is activated, compiler do not export some - * symbols anymore. - */ -# define _STLP_NO_METHOD_SPECIALIZATION 1 -#endif - -#if (__ICL >= 800) -# define _STLP_STATIC_CONST_INIT_BUG 1 -#endif - -#if (__ICL >= 450) -# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1 -#endif - -#if (__ICL < 450) -/* only static STLport lib works for ICL */ -# undef _STLP_USE_STATIC_LIB -# undef _STLP_USE_DYNAMIC_LIB -# define _STLP_USE_STATIC_LIB -/* disable hook which makes template symbols to be searched for in the library */ -# undef _STLP_NO_CUSTOM_IO -#endif - -#undef _STLP_LONG_LONG -#define _STLP_LONG_LONG long long - -#if defined (__cplusplus) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300) -namespace std -{ - void _STLP_CALL unexpected(); -} -#endif diff --git a/WebKit/android/stlport/stl/config/_kai.h b/WebKit/android/stlport/stl/config/_kai.h deleted file mode 100644 index 5b2bedb..0000000 --- a/WebKit/android/stlport/stl/config/_kai.h +++ /dev/null @@ -1,48 +0,0 @@ -// STLport config file for KAI C++ compiler - -#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -#endif - -# ifndef __KAI_STRICT /* _NO_LONGLONG */ -# define _STLP_LONG_LONG long long -# endif - -# if !defined (__EXCEPTIONS) && ! defined (_EXCEPTIONS) -# define _STLP_HAS_NO_EXCEPTIONS -# endif - -# ifndef __BUILDING_STLPORT -# define _STLP_LINK_TIME_INSTANTIATION 1 -# endif - -// two levels of macros do not work good with kcc. -# define _STLP_NATIVE_HEADER(header) <../include/##header> -# define _STLP_NATIVE_C_HEADER(header) <../include/##header> -# define _STLP_NATIVE_CPP_C_HEADER(header) <../include/##header> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header> - -# ifdef _WIN32 -# define _STLP_MINIMUM_IMPORT_STD -# endif - -// KAI C++ uses EDG front-end, but apparently different switches -// # define __EDG_SWITCHES 1 - - -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# define _STLP_VENDOR_MB_NAMESPACE std - -// boris : some of those may also apply to KCC 3.4 -# if __KCC_VERSION < 4000 -# define _STLP_VENDOR_GLOBAL_EXCEPT_STD 1 - -# endif - -# if defined (__sgi) -// this requires some discrimination on whether we are actually on -// a system officially supported by KAI. -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -# include <standards.h> -# endif - diff --git a/WebKit/android/stlport/stl/config/_linux.h b/WebKit/android/stlport/stl/config/_linux.h deleted file mode 100644 index 342cd8b..0000000 --- a/WebKit/android/stlport/stl/config/_linux.h +++ /dev/null @@ -1,93 +0,0 @@ -#ifndef __stl_config__linux_h -#define __stl_config__linux_h - -#define _STLP_PLATFORM "Linux" - -#include <features.h> - -/* This is defined wether library in use is glibc or not. - This may be treated as presence of GNU libc compatible - header files (these define is not really intended to check - for the presence of a particular library, but rather is used - to define an INTERFACE.) */ -#ifndef _STLP_USE_GLIBC -# define _STLP_USE_GLIBC 1 -#endif - -#define _STLP_UNIX 1 - -#if defined(_REENTRANT) && !defined(_PTHREADS) -# define _PTHREADS -#endif - -#ifdef __UCLIBC__ /* uClibc 0.9.27 */ -# define _STLP_USE_UCLIBC 1 -# if !defined(__UCLIBC_HAS_WCHAR__) -# ifndef _STLP_NO_WCHAR_T -# define _STLP_NO_WCHAR_T -# endif -# ifndef _STLP_NO_MBSTATE_T -# define _STLP_NO_MBSTATE_T -# endif -# ifndef _STLP_NO_NATIVE_WIDE_STREAMS -# define _STLP_NO_NATIVE_WIDE_STREAMS -# endif -# endif /* __UCLIBC_HAS_WCHAR__ */ - /* Hmm, bogus _GLIBCPP_USE_NAMESPACES seems undefined... */ -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# if defined(_STLP_REAL_LOCALE_IMPLEMENTED) - /* locale in uClibc is very restricted */ - /* recheck if __UCLIBC_HAS_LOCALE__ defined...*/ -# undef _STLP_REAL_LOCALE_IMPLEMENTED -# endif -#endif - - -#if defined(_PTHREADS) -# define _STLP_THREADS -# define _STLP_PTHREADS -/* -# ifndef __USE_UNIX98 -# define __USE_UNIX98 -# endif -*/ -/* This feature exist at least since glibc 2.2.4 */ -/* # define __FIT_XSI_THR */ /* Unix 98 or X/Open System Interfaces Extention */ -# ifdef __USE_XOPEN2K -/* The IEEE Std. 1003.1j-2000 introduces functions to implement spinlocks. */ -# ifndef __UCLIBC__ /* There are no spinlocks in uClibc 0.9.27 */ -# define _STLP_USE_PTHREAD_SPINLOCK -# else -# ifndef _STLP_DONT_USE_PTHREAD_SPINLOCK - /* in uClibc (0.9.26) pthread_spinlock* declared in headers - * but absent in library */ -# define _STLP_DONT_USE_PTHREAD_SPINLOCK -# endif -# endif -/* # define __FIT_PSHARED_MUTEX */ -# endif -#endif - -/* Endiannes */ -#include <endian.h> -#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) || !defined(__BIG_ENDIAN) -# error "One of __BYTE_ORDER, __LITTLE_ENDIAN and __BIG_ENDIAN undefined; Fix me!" -#endif - -#if ( __BYTE_ORDER == __LITTLE_ENDIAN ) -# define _STLP_LITTLE_ENDIAN 1 -#elif ( __BYTE_ORDER == __BIG_ENDIAN ) -# define _STLP_BIG_ENDIAN 1 -#else -# error "__BYTE_ORDER neither __BIG_ENDIAN nor __LITTLE_ENDIAN; Fix me!" -#endif - -#if defined(__GNUC__) && (__GNUC__ < 3) -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 -/* -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -*/ -#endif - - -#endif /* __stl_config__linux_h */ diff --git a/WebKit/android/stlport/stl/config/_mac.h b/WebKit/android/stlport/stl/config/_mac.h deleted file mode 100644 index d80cc71..0000000 --- a/WebKit/android/stlport/stl/config/_mac.h +++ /dev/null @@ -1 +0,0 @@ -#define _STLP_PLATFORM "Mac" diff --git a/WebKit/android/stlport/stl/config/_macosx.h b/WebKit/android/stlport/stl/config/_macosx.h deleted file mode 100644 index 3d3452b..0000000 --- a/WebKit/android/stlport/stl/config/_macosx.h +++ /dev/null @@ -1,7 +0,0 @@ -#define _STLP_PLATFORM "Mac OS X" - -#if defined (__BIG_ENDIAN__) -# define _STLP_BIG_ENDIAN 1 -#elif defined (__LITTLE_ENDIAN__) -# define _STLP_LITTLE_ENDIAN 1 -#endif diff --git a/WebKit/android/stlport/stl/config/_mlc.h b/WebKit/android/stlport/stl/config/_mlc.h deleted file mode 100644 index 8687d0b..0000000 --- a/WebKit/android/stlport/stl/config/_mlc.h +++ /dev/null @@ -1,7 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_NO_MEMBER_TEMPLATES // Compiler does not support member templates -#define _STLP_NO_MEMBER_TEMPLATE_CLASSES // Compiler does not support member template classes - -#define _STLP_HAS_NEW_NEW_HEADER diff --git a/WebKit/android/stlport/stl/config/_msvc.h b/WebKit/android/stlport/stl/config/_msvc.h deleted file mode 100644 index 7c5036f..0000000 --- a/WebKit/android/stlport/stl/config/_msvc.h +++ /dev/null @@ -1,353 +0,0 @@ -/* STLport configuration file - * It is internal STLport header - DO NOT include it directly - * Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0, ICL - */ - -#if !defined (_STLP_COMPILER) -# define _STLP_COMPILER "Microsoft Visual Studio C++" -#endif - -#if !defined (__ICL) && !defined (_STLP_MSVC) -# define _STLP_MSVC _MSC_VER -#endif - -#if !defined (_STLP_MSVC_LIB) -# define _STLP_MSVC_LIB _MSC_VER -#endif - -#if defined (__BUILDING_STLPORT) && defined (_MANAGED) -/* Building a managed version of STLport is not supported because we haven't - * found a good reason to support it. However, building a managed translation - * unit using STLport _is_ supported. - */ -# error Sorry but building a managed version of STLport is not supported. -#endif - -#if defined (_STLP_USING_PLATFORM_SDK_COMPILER) -/* This is a specific section for compilers coming with platform SDKs. Native - * library coming with it is different from the one coming with commercial - * MSVC compilers so there is some specific settings. - */ -# define _STLP_NATIVE_INCLUDE_PATH ../crt -# define _STLP_VENDOR_GLOBAL_CSTD -# define _STLP_VENDOR_TERMINATE_STD -# define _STLP_GLOBAL_NEW_HANDLER -# if (_STLP_MSVC_LIB <= 1400) -/* We hope this bug will be fixed in future versions. */ -# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1 -# endif -#endif - -#define _STLP_CALL __cdecl - -#ifndef _STLP_LONG_LONG -# define _STLP_LONG_LONG __int64 -#endif - -#define _STLP_PRAGMA_ONCE - -/* These switches depend on compiler flags. We are hoping here that compilers - * simulating MSVC behavior use identical macros to report compilation context. - * Otherwise those macros will have to be undef in specific compiler configuration - * files. - */ -#ifndef _CPPUNWIND -# define _STLP_DONT_USE_EXCEPTIONS 1 -#endif - -#ifndef _CPPRTTI -# define _STLP_NO_RTTI 1 -#endif - -#if defined (_MT) && !defined (_STLP_NO_THREADS) && !defined (_REENTRANT) -# define _REENTRANT 1 -#endif - -#if !defined (_NATIVE_WCHAR_T_DEFINED) -# define _STLP_WCHAR_T_IS_USHORT 1 -#endif - -#define _STLP_MINIMUM_IMPORT_STD -#define _STLP_NO_VENDOR_STDLIB_L 1 - -#if defined (_STLP_MSVC) - -#define _STLP_NORETURN_FUNCTION __declspec(noreturn) - -/* Full compiler version comes from boost library intrinsics.hpp header. */ -# if defined (_MSC_FULL_VER) && (_MSC_FULL_VER >= 140050215) -# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) __has_trivial_constructor(T) -# define _STLP_HAS_TRIVIAL_COPY(T) __has_trivial_copy(T) -# define _STLP_HAS_TRIVIAL_ASSIGN(T) __has_trivial_assign(T) -# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) __has_trivial_destructor(T) -# define _STLP_IS_POD(T) __is_pod(T) -# define _STLP_HAS_TYPE_TRAITS_INTRINSICS -# endif - -# ifndef _STLP_MSVC50_COMPATIBILITY -# define _STLP_MSVC50_COMPATIBILITY 1 -# endif - -# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1 -# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG 1 - -/* # ifndef __BUILDING_STLPORT - * # define _STLP_USE_TEMPLATE_EXPORT 1 - * # endif - */ -# if (_STLP_MSVC <= 1401) -# define _STLP_STATIC_CONST_INIT_BUG 1 -# endif - -/** Note: the macro _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT is defined -unconditionally and undef'ed here when applicable. */ -# if defined(UNDER_CE) -/* eVCx: -uncaught_exception is declared in the SDKs delivered with eVC4 (eVC3 is -unknown) and they all reside in namespace 'std' there. However, they are not -part of any lib so linking fails. When using VC8 to crosscompile for CE 5 on -an ARMV4I, the uncaught_exception test fails, the function returns the wrong -value. */ -# else -/* VCx: -These are present at least since VC6, but the uncaught_exception() of VC6 is -broken, it returns the wrong value in the unittests. 7.1 and later seem to -work, 7.0 is still unknown (we assume it works until negative report). */ -# if (_STLP_MSVC >= 1300)// VC7 and later -# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -# if !defined (_STLP_DONT_USE_EXCEPTIONS) -# define _STLP_NOTHROW throw() -# endif -# endif -# endif - -# if (_STLP_MSVC <= 1300) -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -/* There is no partial spec, and MSVC breaks on simulating it for iterator_traits queries */ -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES -# define _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER -# define _STLP_NO_METHOD_SPECIALIZATION 1 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1 -/* VC++ cannot handle default allocator argument in template constructors */ -# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_FRIEND_TEMPLATES -/* Fails to properly resolve call to sin() from within sin() */ -# endif - -# if (_STLP_MSVC < 1300) -# define _STLP_NO_IEC559_SUPPORT 1 -# endif - -# if (_STLP_MSVC < 1300) /* including MSVC 6.0 */ -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1 -# endif - -# if (_STLP_MSVC >= 1200) -# define _STLP_HAS_NATIVE_FLOAT_ABS 1 -# endif - -// TODO: some eVC4 compilers report _MSC_VER 1201 or 1202, which category do they belong to? -# if (_STLP_MSVC > 1200) && (_STLP_MSVC < 1310) -# define _STLP_NO_MOVE_SEMANTIC -# endif - -# if (_STLP_MSVC < 1300) -/* TODO: remove this if it is handled and documented elsewhere - * dums: VC6 do not handle correctly member templates of class that are explicitely - * instanciated to be exported. There is a workaround, seperate the non template methods - * from the template ones within 2 different classes and only export the non template one. - * It is implemented for basic_string and locale at the writing of this note. - * However this problem hos not been considered as important enough to remove template member - * methods for other classes. Moreover Boost (www.boost.org) required it to be granted. - * The workaround is activated thanks to the _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND macro defined - * later in this config file. - */ -/* -# if defined (_DLL) -# define _STLP_NO_MEMBER_TEMPLATES 1 -# endif -*/ - -/* Boris : not defining this macro for SP5 causes other problems */ -/*# if !defined (_MSC_FULL_VER) || (_MSC_FULL_VER < 12008804 ) */ -# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1 -/*# endif */ -# define _STLP_DONT_USE_BOOL_TYPEDEF 1 -# define _STLP_DONT_RETURN_VOID 1 -# endif - -/* - * MSVC6 is known to have many trouble with namespace management but - * MSVC .Net 2003 and 2005 also have a bug difficult to reproduce without - * STLport: - * namespace stlp_std { - * typedef int foo_int; - * } - * #include <map> - * const foo_int bar = 0; - * - * As you can see foo is available without namespace specification as if - * a using namespace stlp_std has been performed. Defining _STLP_USING_NAMESPACE_BUG - * restore the expected compilation error. - */ -# define _STLP_USING_NAMESPACE_BUG 1 - -# if (_STLP_MSVC < 1300) /* MSVC 6.0 and earlier */ -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 -/* defined for DEBUG and NDEBUG too, to allow user mix own debug build with STLP release library */ -# define _STLP_USE_ABBREVS -# endif - -// TODO: what is the earliest version for this? If it is 1200, use _STLP_MSVC>=1200. -# if (_STLP_MSVC > 1100) && (_STLP_MSVC < 1300) -typedef char __stl_char; -# define _STLP_DEFAULTCHAR __stl_char -# endif - -# if (_STLP_MSVC < 1200) /* before VC++ 6.0 */ -/* # define _STLP_NO_MEMBER_TEMPLATES 1 */ -# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS 1 -# define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1 -# define _STLP_QUALIFIED_SPECIALIZATION_BUG 1 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_THROW_RETURN_BUG 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 -# endif - -# if (_STLP_MSVC < 1100 ) -# ifndef _STLP_USE_NO_IOSTREAMS -# define _STLP_USE_NO_IOSTREAMS -# endif -/* # define _STLP_NESTED_TYPE_PARAM_BUG 1 */ -/* Debug mode does not work for 4.2 */ -# if defined (_STLP_DEBUG) -# pragma message ("STLport debug mode does not work for VC++ 4.2, turning _STLP_DEBUG off ...") -# undef _STLP_DEBUG -# endif -# define _STLP_NO_BOOL 1 -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NEED_EXPLICIT 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 -# define _STLP_BROKEN_USING_DIRECTIVE 1 -# define _STLP_NO_ARROW_OPERATOR 1 -# define _STLP_NO_SIGNED_BUILTINS 1 -# define _STLP_NO_EXCEPTION_SPEC 1 -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NO_AT_MEMBER_FUNCTION 1 -# define _STLP_NO_MEMBER_TEMPLATES 1 -# endif /* 1100 */ - -#endif /* _STLP_MSVC */ - -/** The desktop variants starting with VC8 have a set of more secure replacements -for the error-prone string handling functions of the C standard lib. */ -#if (_STLP_MSVC_LIB >= 1400) && !defined (_STLP_USING_PLATFORM_SDK_COMPILER) && !defined(UNDER_CE) -# define _STLP_USE_SAFE_STRING_FUNCTIONS 1 -#endif - -#if (_STLP_MSVC_LIB <= 1310) -# define _STLP_VENDOR_GLOBAL_CSTD -#endif - -#if (_STLP_MSVC_LIB >= 1300) && !defined(UNDER_CE) -/* Starting with MSVC 7.0 and compilers simulating it, - * we assume that the new SDK is granted: - */ -# define _STLP_NEW_PLATFORM_SDK 1 -#endif - -#if (_STLP_MSVC_LIB < 1300) /* including MSVC 6.0 */ -# define _STLP_GLOBAL_NEW_HANDLER 1 -# define _STLP_VENDOR_UNEXPECTED_STD -# define _STLP_NEW_DONT_THROW_BAD_ALLOC 1 -#endif - -#if (_STLP_MSVC_LIB < 1100) -/* up to 4.2, library is in global namespace */ -# define _STLP_VENDOR_GLOBAL_STD -#endif - -#if (_STLP_MSVC_LIB <= 1010) -/* "bool" is reserved in MSVC 4.1 while <yvals.h> absent, so : */ -# define _STLP_NO_BAD_ALLOC -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -# define _STLP_NO_NEW_NEW_HEADER 1 -#elif (_STLP_MSVC_LIB < 1100) -/* VC++ 4.2 and higher */ -# define _STLP_YVALS_H 1 -# define _STLP_USE_NO_IOSTREAMS 1 -#endif - -#define _STLP_EXPORT_DECLSPEC __declspec(dllexport) -#define _STLP_IMPORT_DECLSPEC __declspec(dllimport) - -#if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1100) -# define _STLP_CLASS_EXPORT_DECLSPEC __declspec(dllexport) -# define _STLP_CLASS_IMPORT_DECLSPEC __declspec(dllimport) -#endif - -#if defined (__DLL) || defined (_DLL) || defined (_RTLDLL) || defined (_AFXDLL) -# define _STLP_RUNTIME_DLL -#endif -#if defined (__BUILDING_STLPORT) && \ - (defined (_STLP_USE_DYNAMIC_LIB) || \ - defined (_STLP_RUNTIME_DLL) && !defined (_STLP_USE_STATIC_LIB)) -# define _STLP_DLL -#endif -#include <stl/config/_detect_dll_or_lib.h> -#undef _STLP_RUNTIME_DLL -#undef _STLP_DLL - -#if defined (_STLP_USE_DYNAMIC_LIB) -# undef _STLP_USE_DECLSPEC -# define _STLP_USE_DECLSPEC 1 -# if (_STLP_MSVC >= 1200) && (_STLP_MSVC < 1300) -# define _STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND 1 -# endif -#endif - -#if !defined (_STLP_IMPORT_TEMPLATE_KEYWORD) -# if !defined (_MSC_EXTENSIONS) || defined(_STLP_MSVC) && _STLP_MSVC >= 1300 -# define _STLP_IMPORT_TEMPLATE_KEYWORD -# else -# define _STLP_IMPORT_TEMPLATE_KEYWORD extern -# endif -#endif -#define _STLP_EXPORT_TEMPLATE_KEYWORD - -#if defined (_STLP_MSVC) && (_STLP_MSVC < 1200) -/* only static STLport lib now works for VC 5.0 */ -# undef _STLP_USE_STATIC_LIB -# undef _STLP_USE_DYNAMIC_LIB -# define _STLP_USE_STATIC_LIB -/* disable hook which makes template symbols to be searched for in the library */ -# undef _STLP_NO_CUSTOM_IO -#endif - -#include <stl/config/_auto_link.h> - -#if defined (_STLP_USING_PLATFORM_SDK_COMPILER) -/* The Windows 64 bits SDK required for the moment link to bufferoverflowU.lib for - * additional buffer overrun checks. Rather than require the STLport build system and - * users to explicitely link with it we use the MSVC auto link feature. - */ -# if !defined (_STLP_DONT_USE_AUTO_LINK) || defined (__BUILDING_STLPORT) -# pragma comment (lib, "bufferoverflowU.lib") -# if defined (_STLP_VERBOSE_AUTO_LINK) -# pragma message ("STLport: Auto linking to bufferoverflowU.lib") -# endif -# endif -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/stl/config/_mwccnlm.h b/WebKit/android/stlport/stl/config/_mwccnlm.h deleted file mode 100644 index 6eaf9b5..0000000 --- a/WebKit/android/stlport/stl/config/_mwccnlm.h +++ /dev/null @@ -1,88 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Metrowerks CodeWarrior" - -// Bring in definition of __MSL__ and related items -#include <mslGlobals.h> -#include <ansi_parms.h> - -// *** CodeWarrior Compiler Common Features *** -#if __option(longlong) -# define _STLP_LONG_LONG long long -#endif - -#define _STLP_USE_UNIX_EMULATION_IO 1 - -#define _STLP_USE_AUTO_PTR_CONVERSIONS 1 - -#ifdef __INTEL__ -# define _STLP_LITTLE_ENDIAN -#else -# define _STLP_BIG_ENDIAN -#endif - -#if defined(_MSL_NO_LOCALE) -# define _STLP_NO_IMPORT_LOCALE -#endif - -#if !__option( wchar_type ) -# define _STLP_WCHAR_T_IS_USHORT -#endif - -#if __MWERKS__ < 0x3000 -// *** CodeWarrior Compiler Common Bugs *** -# define __MSL_FIX_ITERATORS__(myType) // Some MSL headers rely on this -# define _STLP_NO_FRIEND_TEMPLATES 1 // Bug mysteriously reintroduced in this version. -# define _STLP_THROW_RETURN_BUG 1 -#endif - -#if __MWERKS__ >= 0x2405 -# define _STLP_HAS_NATIVE_FLOAT_ABS -#endif - -#if __MWERKS__ < 0x2405 -# define _STLP_STATIC_CONST_INIT_BUG -#endif - -#if __MWERKS__ <= 0x2303 -# define _STLP_NO_TEMPLATE_CONVERSIONS 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -#endif - -#if __MWERKS__ < 0x2301 -# define _STLP_MEMBER_SPECIALIZATION_BUG 1 -#endif - -#if __MWERKS__ < 0x2300 // CW Pro5 features -# define _STLP_INLINE_MEMBER_TEMPLATES 1 -# define _STLP_RELOPS_IN_STD_BUG 1 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 -# define _STLP_NO_TYPENAME_ON_RETURN_TYPE -#endif - -// fixes to native inclusion wrappers. -#if __MWERKS__ >= 0x2300 // CWPro5 changes paths - dwa 2/28/99 -# define _STLP_NATIVE_INCLUDE_PATH ../nwsdk/include/nlm -# define _STLP_NATIVE_C_INCLUDE_PATH ../nwsdk/include/nlm -# define _STLP_NATIVE_HEADER(header) <../nwsdk/include/nlm/##header> -# define _STLP_NATIVE_CPP_C_HEADER(header) <../Libraries/MSL C++/Include/##header> -# define _STLP_NATIVE_C_HEADER(header) <../nwsdk/include/nlm/##header> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../Libraries/MSL C++/Include/##header> - -# define _STLP_VENDOR_GLOBAL_CSTD 1 -# define _STLP_NO_VENDOR_STDLIB_L 1 -# define _STLP_NO_VENDOR_MATH_F 1 -# define _STLP_NO_VENDOR_MATH_L 1 - //# define _MSL_NO_THROW_SPECS - //# define _STD - //# define _CSTD -#endif - -// fbp -#if !defined( __MSL_CPP__ ) || __MSL_CPP__ <= 0x4105 -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -# endif - -#define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1 diff --git a/WebKit/android/stlport/stl/config/_mwerks.h b/WebKit/android/stlport/stl/config/_mwerks.h deleted file mode 100644 index e6da32b..0000000 --- a/WebKit/android/stlport/stl/config/_mwerks.h +++ /dev/null @@ -1,161 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Metrowerk Codewarrior" - -// Bring in definition of __MSL__ and related items -#include <mslGlobals.h> -#include <ansi_parms.h> - -// -// Compiler features -// - - -// *** CodeWarrior Compiler Common Features *** -# if __option(longlong) -# define _STLP_LONG_LONG long long -# endif - -# define _STLP_USE_UNIX_EMULATION_IO 1 - -# define _STLP_USE_AUTO_PTR_CONVERSIONS 1 - -# ifdef __INTEL__ -# define _STLP_LITTLE_ENDIAN -# else -# define _STLP_BIG_ENDIAN -# endif - -#if defined(_MSL_NO_LOCALE) -#define _STLP_NO_IMPORT_LOCALE -#endif -#if !__option( wchar_type ) -# define _STLP_WCHAR_T_IS_USHORT -#endif - -# if __MWERKS__ < 0x3000 -// *** CodeWarrior Compiler Common Bugs *** -# define __MSL_FIX_ITERATORS__(myType) // Some MSL headers rely on this -# define _STLP_NO_FRIEND_TEMPLATES 1 // Bug mysteriously reintroduced in this version. -# define _STLP_THROW_RETURN_BUG 1 -# endif - -// *** Version-specific settings *** - -# if __MWERKS__ >= 0x2405 -# define _STLP_HAS_NATIVE_FLOAT_ABS -# endif - -# if __MWERKS__ < 0x2405 -# define _STLP_STATIC_CONST_INIT_BUG -# endif - -# if __MWERKS__ <= 0x2303 -# define _STLP_NO_TEMPLATE_CONVERSIONS 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# endif - -# if __MWERKS__ < 0x2301 -# define _STLP_MEMBER_SPECIALIZATION_BUG 1 -# endif - -# if __MWERKS__ < 0x2300 // CW Pro5 features -# define _STLP_INLINE_MEMBER_TEMPLATES 1 -# define _STLP_RELOPS_IN_STD_BUG 1 -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 -# define _STLP_NO_TYPENAME_ON_RETURN_TYPE -# endif - -# if __MWERKS__ < 0x2200 // CW Pro4 features -# define _STLP_BROKEN_USING_DIRECTIVE 1 -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# endif - -# if __MWERKS__ < 0x2100 // CW Pro3 features -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 - -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NO_ARROW_OPERATOR 1 -# define _STLP_TEMPLATE_PARAM_SUBTYPE_BUG 1 -# define _STLP_FORCED_INLINE_INSTANTIATION_BUG 1 -# define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG 1 -# define _STLP_INLINE_NAME_RESOLUTION_BUG 1 -// *** Metrowerks Standard Library Bug *** -# define _STLP_MSVC50_COMPATIBILITY 1 -# endif - -# if __MWERKS__ < 0x2000 // v. 2.0 features -# define _STLP_NO_WCHAR_T 1 -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 // dwa 8/21/97 - this bug fixed for CWPro2 -# endif - -# if __MWERKS__ < 0x1900 // dwa 8/19/97 - 1.9 Compiler feature defines -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 -# define _STLP_BASE_TYPEDEF_BUG 1 -# define _STLP_BASE_MATCH_BUG 1 -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 -# define _STLP_DEFAULT_TYPE_PARAM 1 // More limited template parameters - -# if __MWERKS__ < 0x1800 - __GIVE_UP_WITH_STL(CW_18) -# endif - -# endif - - -// fixes to native inclusion wrappers. -# if __MWERKS__ >= 0x2300 // CWPro5 changes paths - dwa 2/28/99 -# define _STLP_NATIVE_INCLUDE_PATH ../include -# define _STLP_NATIVE_C_INCLUDE_PATH ../include -# define _STLP_NATIVE_HEADER(header) <../include/##header> -# define _STLP_NATIVE_CPP_C_HEADER(header) <../include/##header> -# define _STLP_NATIVE_C_HEADER(header) <../include/##header> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <../include/##header> -# else - -# define _STLP_NATIVE_INCLUDE_PATH Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include -# define _STLP_NATIVE_C_INCLUDE_PATH Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes -# define _STLP_NATIVE_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header> -# define _STLP_NATIVE_CPP_C_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C++:Include:##header> -# define _STLP_NATIVE_C_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header> -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) <Macintosh HD:Codewarrior Pro 4:Metrowerks CodeWarrior:Metrowerks Standard Library:MSL C:MSL Common:Public Includes:##header> - -# endif - -//Following block come from boost intrinsics.hpp file: -#if defined (__MSL_CPP__) && (__MSL_CPP__ >= 0x8000) - // Metrowerks compiler is acquiring intrinsic type traits support - // post version 8. We hook into the published interface to pick up - // user defined specializations as well as compiler intrinsics as - // and when they become available: -# include <msl_utility> -# define _STLP_HAS_TRIVIAL_CONSTRUCTOR(T) Metrowerks::has_trivial_default_ctor<T>::value -# define _STLP_HAS_TRIVIAL_COPY(T) Metrowerks::has_trivial_copy_ctor<T>::value -# define _STLP_HAS_TRIVIAL_ASSIGN(T) Metrowerks::has_trivial_assignment<T>::value -# define _STLP_HAS_TRIVIAL_DESTRUCTOR(T) Metrowerks::has_trivial_dtor<T>::value -# define _STLP_IS_POD(T) Metrowerks::is_POD<T>::value -# define _STLP_HAS_TYPE_TRAITS_INTRINSICS -#endif - -// fbp -# if !defined( __MSL_CPP__ ) || __MSL_CPP__ <= 0x4105 -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -# endif - -# if defined(__MACH__) -# define _STLP_MAC -# define O_BINARY 0 -# elif defined(macintosh) -# define _NOTHREADS -# endif -# define _STLP_DLLEXPORT_NEEDS_PREDECLARATION 1 diff --git a/WebKit/android/stlport/stl/config/_native_headers.h b/WebKit/android/stlport/stl/config/_native_headers.h deleted file mode 100644 index f1f4bc9..0000000 --- a/WebKit/android/stlport/stl/config/_native_headers.h +++ /dev/null @@ -1,50 +0,0 @@ - /* - * - * Copyright (c) 2006 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_MAKE_HEADER) -# define _STLP_MAKE_HEADER(path, header) <path/header> -#endif - -#if !defined (_STLP_NATIVE_HEADER) -# if !defined (_STLP_NATIVE_INCLUDE_PATH) -# define _STLP_NATIVE_INCLUDE_PATH ../include -# endif -# define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header) -#endif - -/* For some compilers, C headers like <stdio.h> are located in separate directory */ -#if !defined (_STLP_NATIVE_C_HEADER) -# if !defined (_STLP_NATIVE_C_INCLUDE_PATH) -# define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH -# endif -# define _STLP_NATIVE_C_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_C_INCLUDE_PATH,header) -#endif - -/* For some compilers, C-library headers like <cstdio> are located in separate directory */ -#if !defined (_STLP_NATIVE_CPP_C_HEADER) -# if !defined (_STLP_NATIVE_CPP_C_INCLUDE_PATH) -# define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH -# endif -# define _STLP_NATIVE_CPP_C_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_CPP_C_INCLUDE_PATH,header) -#endif - -/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */ -#if !defined ( _STLP_NATIVE_CPP_RUNTIME_HEADER ) -# if !defined (_STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH) -# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH -# endif -# define _STLP_NATIVE_CPP_RUNTIME_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH,header) -#endif diff --git a/WebKit/android/stlport/stl/config/_netware.h b/WebKit/android/stlport/stl/config/_netware.h deleted file mode 100644 index 14debd2..0000000 --- a/WebKit/android/stlport/stl/config/_netware.h +++ /dev/null @@ -1 +0,0 @@ -#define _STLP_PLATFORM "Novell Netware" diff --git a/WebKit/android/stlport/stl/config/_openbsd.h b/WebKit/android/stlport/stl/config/_openbsd.h deleted file mode 100644 index cb69825..0000000 --- a/WebKit/android/stlport/stl/config/_openbsd.h +++ /dev/null @@ -1 +0,0 @@ -#define _STLP_PLATFORM "Open BSD" diff --git a/WebKit/android/stlport/stl/config/_prolog.h b/WebKit/android/stlport/stl/config/_prolog.h deleted file mode 100644 index 5ad943f..0000000 --- a/WebKit/android/stlport/stl/config/_prolog.h +++ /dev/null @@ -1,52 +0,0 @@ - -#if defined (_STLP_MSVC) || defined (__ICL) - -# if !defined (_STLP_MSVC) || (_STLP_MSVC >= 1200) -# pragma warning(push) -# endif -# include <stl/config/_warnings_off.h> -/* We are forcing the alignment to guaranty that libraries are use - * with the same alignment as the one use to build them. - */ -# if !defined (_WIN64) -# pragma pack(push, 8) -# else -# pragma pack(push, 16) -# endif - -#elif defined (__BORLANDC__) - -# pragma option push -# pragma option -Vx- -Ve- -a8 -b -pc -# include <stl/config/_warnings_off.h> - -#elif defined (__sgi) && !defined (__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32) - -# pragma set woff 1209 -# pragma set woff 1174 -# pragma set woff 1375 -/* from iterator_base.h */ -# pragma set woff 1183 - -#elif defined (__DECCXX) - -# ifdef __PRAGMA_ENVIRONMENT -# pragma __environment __save -# pragma __environment __header_defaults -# endif - -#elif defined (__IBMCPP__) -/* supress EDC3130: A constant is being used as a conditional expression */ -# pragma info(nocnd) - -#elif defined (__HP_aCC) -/* _REENTRANT selects Posix 1c threads unless draft4 selected. - * * This usage is obsolescent, "-D_POSIX_C_SOURCE=199506" is preferred */ -# if 0 /* defined (_REENTRANT) && ! defined (_POSIX_C_SOURCE) */ -# define _POSIX_C_SOURCE 199506 -# endif -#elif defined (__WATCOMCPLUSPLUS__) -# pragma warning 604 10 /* must lookahead to determine... */ -# pragma warning 594 10 /* resolved as declaration/type */ -# pragma warning 595 10 /* resolved as an expression */ -#endif diff --git a/WebKit/android/stlport/stl/config/_sgi.h b/WebKit/android/stlport/stl/config/_sgi.h deleted file mode 100644 index 2f7518f..0000000 --- a/WebKit/android/stlport/stl/config/_sgi.h +++ /dev/null @@ -1,92 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "CC" - -#define _STLP_HAS_SPECIFIC_PROLOG_EPILOG - -// define native include path before trying to include anything - -#define _STLP_NATIVE_HEADER(__x) </usr/include/CC/##__x> -#define _STLP_NATIVE_C_HEADER(__x) </usr/include/##__x> -#define _STLP_NATIVE_OLD_STREAMS_HEADER(__x) </usr/include/CC/##__x> -#define _STLP_NATIVE_CPP_C_HEADER(__x) </usr/include/CC/##__x> -#define _STLP_NATIVE_CPP_RUNTIME_HEADER(__x) </usr/include/CC/##__x> - -#define _STLP_NO_NATIVE_MBSTATE_T - -#define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS -#define _STLP_NO_NATIVE_WIDE_FUNCTIONS -#define _STLP_NO_MEMBER_TEMPLATE_CLASSES - -// #define _STLP_NO_BAD_ALLOC - -#define _STL_HAS_NAMESPACES - -#if ! defined (__EXCEPTIONS) && ! defined (_STLP_NO_EXCEPTIONS) -# define _STLP_NO_EXCEPTIONS -#endif - -// #define _STLP_NOTHROW throw() - -#define __EDG_SWITCHES - -#define _STLP_USE_SGI_STRING 1 - -#define _STLP_HAS_NO_NEW_C_HEADERS 1 -// # define _STLP_VENDOR_GLOBAL_EXCEPT_STD - -#define _STLP_NO_POST_COMPATIBLE_SECTION - -#include <standards.h> - -#if !(_COMPILER_VERSION >= 730) -# define _STLP_NO_NEW_NEW_HEADER 1 -#endif - -#if (_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)) -# define _STLP_EXTERN_RANGE_ERRORS -#endif - -#if !defined(_BOOL) -# define _STLP_NO_BOOL -#endif -#if defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32 -# define _STLP_STATIC_CONST_INIT_BUG -#endif - -#if (_COMPILER_VERSION < 720) || (defined(_MIPS_SIM) && _MIPS_SIM == _ABIO32) -# define _STLP_DEF_CONST_PLCT_NEW_BUG -# define _STLP_DEF_CONST_DEF_PARAM_BUG -#endif -#if !((_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABIO32) -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD -#endif -#if !defined(_STANDARD_C_PLUS_PLUS) -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS -#endif -#if !((_COMPILER_VERSION >= 721) && defined(_NAMESPACES)) -# define _STLP_HAS_NO_NAMESPACES -#endif -#if (_COMPILER_VERSION < 721) || !defined(_STL_HAS_NAMESPACES) || defined(_STLP_NO_NAMESPACES) -# define _STLP_NO_EXCEPTION_HEADER -#endif -#if _COMPILER_VERSION < 730 || !defined(_STANDARD_C_PLUS_PLUS) || !defined(_NAMESPACES) -# define _STLP_NO_BAD_ALLOC -#endif -#if defined(_LONGLONG) && defined(_SGIAPI) && _SGIAPI -# define _STLP_LONG_LONG long long -#endif -#if !(_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)) -# define _STLP_USE_NO_IOSTREAMS -#endif -#if !(_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)) -# define _STLP_NO_AT_MEMBER_FUNCTION -#endif -// # if !(_COMPILER_VERSION >= 730 && defined(_STANDARD_C_PLUS_PLUS)) -#if !(_COMPILER_VERSION >= 721 && defined(_STANDARD_C_PLUS_PLUS)) -# define _STLP_NO_TEMPLATE_CONVERSIONS -#endif -#if !((_COMPILER_VERSION >= 730) && defined(_MIPS_SIM) && _MIPS_SIM != _ABIO32) -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER -#endif diff --git a/WebKit/android/stlport/stl/config/_solaris.h b/WebKit/android/stlport/stl/config/_solaris.h deleted file mode 100644 index 7e00d9c..0000000 --- a/WebKit/android/stlport/stl/config/_solaris.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef __stl_config__solaris_h -#define __stl_config__solaris_h - -#define _STLP_PLATFORM "Sun Solaris" - -/* include system features file */ -#include <sys/feature_tests.h> - -/* system-dependent defines */ - -/* - * Should be fixed: - * 1. __SunOS_5_x not defined, and no way to derive this from headers only; - * define it with -D on compiler command line is a bad idea too. - * - * 2. Solaris may has, but may hasn't MATH_F and MATH_L functions (even with two - * underscores)---this depends upon system update level and seems legally present - * only in Solaris 10 (i.e. I saw Solaris 9 with and without __acosf in libm.so.1) - * - * - ptr - */ - -#if defined (__SunOS_5_8) && ! defined (_STLP_HAS_NO_NEW_C_HEADERS) && ( __cplusplus >= 199711L) -# define _STLP_HAS_NATIVE_FLOAT_ABS -#endif - -#if defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 >= 4) -# define _STLP_RAND48 1 -#endif - -#if (defined(_XOPEN_SOURCE) && (_XOPEN_VERSION - 0 == 4)) || defined (__SunOS_5_6) -# define _STLP_WCHAR_SUNPRO_EXCLUDE 1 -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 -#endif - -/* boris : this should always be defined for Solaris 5 & 6. Any ideas how to do it? */ -#if !(defined ( __KCC ) && __KCC_VERSION > 3400 ) && \ - ((defined(__SunOS_5_5_1) || defined(__SunOS_5_6) )) -# ifndef _STLP_NO_NATIVE_MBSTATE_T -# define _STLP_NO_NATIVE_MBSTATE_T 1 -# endif -#endif /* KCC */ - -/* For SPARC we use lightweight synchronization */ -#if defined (__sparc) /* && (defined (_REENTRANT) || defined (_PTHREADS)) */ -# if ( (defined (__GNUC__) && defined (__sparc_v9__)) || \ - defined (__sparcv9) ) \ - && !defined(_NOTHREADS) && !defined (_STLP_NO_SPARC_SOLARIS_THREADS) -# define _STLP_SPARC_SOLARIS_THREADS -# define _STLP_THREADS_DEFINED -# endif -#endif - -/* gcc does not support ELF64 yet ; however; it supports ultrasparc + v8plus. - * limits.h contains invalid values for this combination - */ -#ifdef __GNUC__ -# if (defined (__sparc_v9__) || defined (__sparcv9)) && !defined ( __WORD64 ) && !defined(__arch64__) -# define __LONG_MAX__ 2147483647L -# endif -#endif - -/* - * Hmm, I don't found in Solaris 9 system headers definition like __SunOS_5_9 - * (defined in SunPro?); I also can't find functions like fmodf (again, - * I found modff in libc, but no acosf etc.). Strange, I saw __cosf functions - * (built-in?) at least with gcc some time ago, but don't see ones with - * gcc 3.3.2 on SunOS sparc-solaris1 5.9 Generic_112233-03 sun4u sparc SUNW,Ultra-60 - * from Sorceforge's CF. - * 2005-12-15, - ptr - * - * P.S. That's why I add two defines: - */ - -/* #ifdef __GNUC__ */ -#define _STLP_NO_VENDOR_MATH_F -#define _STLP_NO_VENDOR_MATH_L -/* #endif */ - -#ifdef __GNUC__ -# define _STLP_WCHAR_BORLAND_EXCLUDE -# define _STLP_NO_NATIVE_WIDE_FUNCTIONS 1 -#endif - -#endif /* __stl_config__solaris_h */ diff --git a/WebKit/android/stlport/stl/config/_sunprocc.h b/WebKit/android/stlport/stl/config/_sunprocc.h deleted file mode 100644 index b54e121..0000000 --- a/WebKit/android/stlport/stl/config/_sunprocc.h +++ /dev/null @@ -1,161 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Sunpro CC" - -#define _STLP_LONG_LONG long long - -// GAB: 11/09/05 -// Starting with 5.0 the STLport code expects to be -// instantiated during compile time. This is due to undefing -// a number of defines that are also used in the c versions -// of the file. When they are undefed the c version fails to -// compile. -// # define _STLP_LINK_TIME_INSTANTIATION 1 - -#if ! defined(_BOOL) -# define _STLP_NO_BOOL 1 -#endif - -// compatibility mode stuff -#if (__SUNPRO_CC >= 0x510) && (!defined (__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT == 5 )) -# define _STLP_NATIVE_INCLUDE_PATH ../CC/Cstd -# define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH ../CC -#elif (__SUNPRO_CC >= 0x500) && (!defined (__SUNPRO_CC_COMPAT) || (__SUNPRO_CC_COMPAT == 5 )) -# define _STLP_NATIVE_INCLUDE_PATH ../CC -#elif (defined (__SUNPRO_CC_COMPAT) && __SUNPRO_CC_COMPAT == 4) -# define _STLP_NATIVE_INCLUDE_PATH ../CC4 -#else -# define _STLP_NATIVE_INCLUDE_PATH ../CC -#endif - -#define _STLP_STATIC_CONST_INIT_BUG 1 - -#if (__SUNPRO_CC < 0x530) -// those are tested and proved not to work... -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES -#endif - -#ifdef _STLP_USE_NO_IOSTREAMS -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -#endif - -// those do not depend on compatibility -#if (__SUNPRO_CC < 0x510) -# define _STLP_NO_TYPENAME_ON_RETURN_TYPE 1 -# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 -#endif - -#if (__SUNPRO_CC < 0x510) || (defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT < 5)) - -# define _STLP_NO_QUALIFIED_FRIENDS 1 - -// no partial , just for explicit one -# define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 - -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 - -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -#endif - -// Features that depend on compatibility switch -#if ( __SUNPRO_CC < 0x500 ) || (defined (__SUNPRO_CC_COMPAT) && (__SUNPRO_CC_COMPAT < 5)) - -# ifndef _STLP_USE_NO_IOSTREAMS -# define _STLP_USE_NO_IOSTREAMS 1 -# endif -# define _STLP_NO_NEW_NEW_HEADER 1 -// # define _STLP_NO_RELOPS_NAMESPACE -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_BAD_ALLOC 1 -# define _STLP_NO_EXCEPTION_HEADER 1 -# define _STLP_NATIVE_C_INCLUDE_PATH ../include -#elif (__SUNPRO_CC < 0x510) -// # define _STLP_NATIVE_C_HEADER(header) <../CC/##header##.SUNWCCh> -# define _STLP_NATIVE_CPP_C_HEADER(header) <../CC/##header##.SUNWCCh> -# define _STLP_NATIVE_C_INCLUDE_PATH /usr/include -#elif defined( __SunOS_5_5_1 ) || defined( __SunOS_5_6 ) || defined( __SunOS_5_7 ) -# define _STLP_NATIVE_C_INCLUDE_PATH ../CC/std -# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../CC/std -#else -# define _STLP_NATIVE_C_INCLUDE_PATH /usr/include -# define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../CC/std -#endif - -#if ( __SUNPRO_CC < 0x500 ) - -# undef _STLP_NATIVE_C_HEADER -# undef _STLP_NATIVE_CPP_C_HEADER - -# define wint_t __wint_t -// famous CC 4.2 bug -# define _STLP_INLINE_STRING_LITERAL_BUG 1 -// /usr/include -# define _STLP_NATIVE_C_INCLUDE_PATH ../include - -// 4.2 cannot handle iterator_traits<_Tp>::iterator_category as a return type ;( -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES - -// 4.2 does not like it -# undef _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS - -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 - -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NEED_EXPLICIT 1 -# define _STLP_NO_BAD_ALLOC 1 -# define _STLP_NO_ARROW_OPERATOR 1 - -# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 -# define _STLP_GLOBAL_NESTED_RETURN_TYPE_PARAM_BUG 1 -# undef _STLP_HAS_NO_NEW_C_HEADERS -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -// # define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS - -# if ( __SUNPRO_CC < 0x420 ) -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 -# define _STLP_NO_NEW_STYLE_CASTS 1 -# define _STLP_NO_METHOD_SPECIALIZATION 1 -# if ( __SUNPRO_CC > 0x401 ) -# if (__SUNPRO_CC==0x410) -# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 -# endif -# else - // SUNPro C++ 4.0.1 -# define _STLP_BASE_MATCH_BUG 1 -# define _STLP_BASE_TYPEDEF_BUG 1 -# if (( __SUNPRO_CC < 0x401 ) && !defined(__SUNPRO_C)) - __GIVE_UP_WITH_STL(SUNPRO_401) -# endif -# endif /* 4.0.1 */ -# endif /* 4.2 */ -#endif /* < 5.0 */ - -#ifndef _MBSTATET_H -# define _MBSTATET_H -# undef _MBSTATE_T -# define _MBSTATE_T -typedef struct __mbstate_t { -# if defined(_LP64) - long __filler[4]; -# else - int __filler[6]; -# endif -} __mbstate_t; -# ifndef _STLP_HAS_NO_NAMESPACES -namespace std { - typedef __mbstate_t mbstate_t; -} -using std::mbstate_t; -# else -typedef __mbstate_t mbstate_t; -# endif -#endif /* __MBSTATET_H */ diff --git a/WebKit/android/stlport/stl/config/_symantec.h b/WebKit/android/stlport/stl/config/_symantec.h deleted file mode 100644 index 7926bf5..0000000 --- a/WebKit/android/stlport/stl/config/_symantec.h +++ /dev/null @@ -1,48 +0,0 @@ -/* STLport configuration file - * It is internal STLport header - DO NOT include it directly - */ - -#define _STLP_COMPILER "Symantec" - -/* if not using maximum ANSI compatibility ( -A -Ab -Aw), - * uncomment the following two lines: - */ -/*# define _STLP_NO_BOOL 1 */ -/*# define _STLP_NO_WCHAR_T 1 */ - -/* TODO: Check that this config is necessary for all compiler versions. - * It is here for historical reasons for the moment. - */ -#define _STLP_NO_CONTAINERS_EXTENSION - -# define _STLP_HAS_NO_NAMESPACES 1 - -# define _STLP_NEED_TYPENAME 1 -# define _STLP_NEED_EXPLICIT 1 -# define _STLP_NO_NEW_STYLE_CASTS 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 -/* # define _STLP_NO_BAD_ALLOC 1 */ - -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_QUALIFIED_FRIENDS 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 - -/* # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 */ -# define _STLP_NO_METHOD_SPECIALIZATION 1 -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 -/* # define _STLP_NO_EXCEPTION_HEADER 1 */ - -# define _STLP_HAS_NO_NEW_C_HEADERS 1 - -# define _STLP_STATIC_CONST_INIT_BUG 1 -# define _STLP_THROW_RETURN_BUG 1 -/* # define _STLP_LINK_TIME_INSTANTIATION 1 */ -# define _STLP_NO_TEMPLATE_CONVERSIONS 1 - -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 - diff --git a/WebKit/android/stlport/stl/config/_system.h b/WebKit/android/stlport/stl/config/_system.h deleted file mode 100644 index ce22044..0000000 --- a/WebKit/android/stlport/stl/config/_system.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* - * Purpose of this file : - * - * To hold COMPILER-SPECIFIC portion of STLport settings. - * In general, user should not edit this file unless - * using the compiler not recognized below. - * - * If your compiler is not being recognized yet, - * please look for definitions of macros in stl_mycomp.h, - * copy stl_mycomp.h to stl_YOUR_COMPILER_NAME, - * adjust flags for your compiler, and add <include config/stl_YOUR_COMPILER_NAME> - * to the secton controlled by unique macro defined internaly by your compiler. - * - * To change user-definable settings, please edit <user_config.h> - * - */ - -#ifndef __stl_config__system_h -#define __stl_config__system_h - -#if defined(__SYMBIAN32__) -# if defined(__GCCE__) || defined(__ARMCC__) -# include <stl/config/stl_gcce.h> -# elif defined(__WINSCW__) -# include <stl/config/stl_winscw.h> -# endif -# include <stl/config/stl_symbian.h> -#elif defined (__sun) -# include <stl/config/_solaris.h> -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# elif defined (__SUNPRO_CC) -# include <stl/config/_sunprocc.h> -/* -# ifdef __KCC -# include <stl/config/_kai.h> -# endif -*/ -# elif defined (__APOGEE__) /* Apogee 4.x */ -# include <stl/config/_apcc.h> -# elif defined (__FCC_VERSION) /* Fujitsu Compiler, v4.0 assumed */ -# include <stl/config/_fujitsu.h> -# endif -#elif defined (__hpux) -# include <stl/config/_hpux.h> -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# elif defined (__HP_aCC) -# include <stl/config/_hpacc.h> -# endif -#elif defined (ANDROID) - /* Android mobile phone platform. Somewhat but not entirely GNU/Linux-like */ -# include <stl/config/_android.h> -# include <stl/config/_gcc.h> -#elif defined (linux) || defined (__linux__) -# include <stl/config/_linux.h> -/* Intel's icc define __GNUC__! */ -# if defined (__INTEL_COMPILER) -# include <stl/config/_icc.h> -# elif defined (__GNUC__) -# include <stl/config/_gcc.h> -# endif -/* -# ifdef __KCC -# include <stl/config/_kai.h> -# endif -*/ -#elif defined (__FreeBSD__) -# include <stl/config/_freebsd.h> -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# endif -#elif defined (__OpenBSD__) -# include <stl/config/_openbsd.h> -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# endif -#elif defined (N_PLAT_NLM) /* Novell NetWare */ -# include <stl/config/_netware.h> -# ifdef __MWERKS__ /* Metrowerks CodeWarrior */ -# include <stl/config/_mwccnlm.h> -# endif -#elif defined (__sgi) /* IRIX? */ -# define _STLP_PLATFORM "SGI Irix" -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# else -# include <stl/config/_sgi.h> -# endif -#elif defined (__OS400__) /* AS/400 C++ */ -# define _STLP_PLATFORM "OS 400" -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# else -# include <stl/config/_as400.h> -# endif -#elif defined (_AIX) -# include <stl/config/_aix.h> -# if defined (__xlC__) || defined (__IBMC__) || defined ( __IBMCPP__ ) - /* AIX xlC, Visual Age C++ , OS-390 C++ */ -# include <stl/config/_ibm.h> -# endif -#elif defined (_CRAY) /* Cray C++ 3.4 or 3.5 */ -# define _STLP_PLATFORM "Cray" -# include <config/_cray.h> -#elif defined (__DECCXX) || defined (__DECC) -# define _STLP_PLATFORM "DECC" -# ifdef __vms -# include <stl/config/_dec_vms.h> -# else -# include <stl/config/_dec.h> -# endif -#elif defined (macintosh) || defined (_MAC) -# include <stl/config/_mac.h> -# if defined (__MWERKS__) -# include <stl/config/_mwerks.h> -# elif defined (__MRC__) || (defined (__SC__) && (__SC__ >= 0x882)) - /* Apple MPW SCpp 8.8.2, Apple MPW MrCpp 4.1.0 */ -# include <stl/config/_apple.h> -# endif -#elif defined (__APPLE__) -# include <stl/config/_macosx.h> -# ifdef __GNUC__ -# include <stl/config/_gcc.h> -# endif -#elif defined (__CYGWIN__) -# include <stl/config/_cygwin.h> -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# endif -#elif defined (__MINGW32__) -# define _STLP_PLATFORM "MinGW" -# if defined (__GNUC__) -# include <stl/config/_gcc.h> -# endif -# include <stl/config/_windows.h> -#elif defined (_WIN32) || defined (__WIN32) || defined (WIN32) || defined (__WIN32__) || \ - defined (__WIN16) || defined (WIN16) || defined (_WIN16) -# if defined ( __BORLANDC__ ) /* Borland C++ ( 4.x - 5.x ) */ -# include <stl/config/_bc.h> -# elif defined (__WATCOM_CPLUSPLUS__) || defined (__WATCOMC__) /* Watcom C++ */ -# include <stl/config/_watcom.h> -# elif defined (__COMO__) || defined (__COMO_VERSION_) -# include <stl/config/_como.h> -# elif defined (__DMC__) /* Digital Mars C++ */ -# include <stl/config/_dm.h> -# elif defined (__SC__) && (__SC__ < 0x800) /* Symantec 7.5 */ -# include <stl/config/_symantec.h> -# elif defined (__ICL) /* Intel reference compiler for Win */ -# include <stl/config/_intel.h> -# elif defined (__MWERKS__) -# include <stl/config/_mwerks.h> -# elif defined (_MSC_VER) && (_MSC_VER >= 1200) && defined (UNDER_CE) - /* Microsoft eMbedded Visual C++ 3.0, 4.0 (.NET) */ -# include <stl/config/_evc.h> -# elif defined (_MSC_VER) - /* Microsoft Visual C++ 6.0, 7.0, 7.1, 8.0 */ -# include <stl/config/_msvc.h> -# endif - -# include <stl/config/_windows.h> -#else -# error Unknown platform !! -#endif - -#if !defined (_STLP_COMPILER) -/* Unable to identify the compiler, issue error diagnostic. - * Edit <config/stl_mycomp.h> to set STLport up for your compiler. */ -# include <stl/config/stl_mycomp.h> -#endif - -#endif /* __stl_config__system_h */ diff --git a/WebKit/android/stlport/stl/config/_warnings_off.h b/WebKit/android/stlport/stl/config/_warnings_off.h deleted file mode 100644 index 5618e6e..0000000 --- a/WebKit/android/stlport/stl/config/_warnings_off.h +++ /dev/null @@ -1,60 +0,0 @@ -/* This header turns off warnings that STLport headers generate for compiled - * user code. - */ - -#if defined (_STLP_MSVC) -# if (_STLP_MSVC > 1000) -# if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -/* - * 31/07/2004: dums - now that we do not export the basic_string class anymore but only a base class - * we have to disable this warning as the string are used as data members type of many iostream classes. - */ -# pragma warning ( disable : 4251 ) // ignore template classes being exported in .dll's -# endif - -# if (_STLP_MSVC < 1200) // VC5 and earlier -# pragma warning( disable : 4389 ) // '==' : signed/unsigned mismatch -// multiple copy constructors/assignment operators specified, -// with member templates are bogus... -# pragma warning( disable : 4521 ) -# pragma warning( disable : 4522 ) -# endif - -# if (_STLP_MSVC < 1300) // VC6, eVC3, eVC4 -# pragma warning( disable : 4097 ) // typedef-name used as based class of (...) -# pragma warning( disable : 4231 ) // non standard extension : 'extern' before template instanciation -# pragma warning( disable : 4244 ) // implicit conversion: possible loss of data -# pragma warning( disable : 4284 ) // for -> operator -//This warning is necessary because of the native platform headers: -# pragma warning( disable : 4290 ) // c++ exception specification ignored -# pragma warning( disable : 4514 ) // unreferenced inline function has been removed -# pragma warning( disable : 4660 ) // template-class specialization '...' is already instantiated -# pragma warning( disable : 4701 ) // local variable '...' may be used without having been initialized -# pragma warning( disable : 4710 ) // function (...) not inlined -# pragma warning( disable : 4786 ) // identifier truncated to 255 characters -# endif - -# if (_STLP_MSVC < 1400) -# pragma warning( disable : 4511 ) // copy constructor cannot be generated -# endif - -//Pool of common warnings for all MSVC supported versions: -//Many are only useful if warning level is set to 4. -# pragma warning( disable : 4100 ) // unreferenced formal parameter -# pragma warning( disable : 4127 ) // conditional expression is constant -# pragma warning( disable : 4146 ) // unary minus operator applied to unsigned type, result still unsigned -# pragma warning( disable : 4245 ) // conversion from 'enum ' to 'unsigned int', signed/unsigned mismatch -# pragma warning( disable : 4355 ) // this used in base member initializer list (used in rope implementation) -# pragma warning( disable : 4510 ) // default constructor cannot be generated -# pragma warning( disable : 4512 ) // assignment operator could not be generated -# pragma warning( disable : 4571 ) // catch(...) blocks compiled with /EHs do not catch or re-throw Structured Exceptions -# pragma warning( disable : 4610 ) // struct '...' can never be instantiated - user defined construtor required -# endif -#elif defined (__BORLANDC__) -# pragma option -w-ccc // -w-8008 Condition is always true OR Condition is always false -# pragma option -w-inl // -w-8027 Functions containing reserved words are not expanded inline -# pragma option -w-ngu // -w-8041 Negating unsigned value -# pragma option -w-pow // -w-8062 Previous options and warnings not restored -# pragma option -w-rch // -w-8066 Unreachable code -# pragma option -w-par // -w-8057 Parameter 'parameter' is never used -#endif diff --git a/WebKit/android/stlport/stl/config/_watcom.h b/WebKit/android/stlport/stl/config/_watcom.h deleted file mode 100644 index f960424..0000000 --- a/WebKit/android/stlport/stl/config/_watcom.h +++ /dev/null @@ -1,154 +0,0 @@ -// STLport configuration file -// It is internal STLport header - DO NOT include it directly - -#define _STLP_COMPILER "Watcom" - -# ifndef _STLP_USE_NO_IOSTREAMS -# define _STLP_USE_NO_IOSTREAMS -# endif - -# define _STLP_NO_RELOPS_NAMESPACE -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX - -# define _STLP_HAS_SPECIFIC_PROLOG_EPILOG -# define _STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES - -// On QNX, headers are supposed to be found in /usr/include, -// so default "../include" should work. -# ifndef __QNX__ -# define _STLP_NATIVE_INCLUDE_PATH ../h -# endif - -// Inline replacements for locking calls under Watcom -// Define _STLP_NO_WATCOM_INLINE_INTERLOCK to keep using -// standard WIN32 calls -// Define _STL_MULTIPROCESSOR to enable lock -#if !defined(_STLP_NO_WATCOM_INLINE_INTERLOCK) - -long __stl_InterlockedIncrement( long *var ); -long __stl_InterlockedDecrement( long *var ); - -#ifdef _STL_MULTIPROCESSOR -// Multiple Processors, add lock prefix -#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \ - ".586" \ - "mov eax, 1" \ - "lock xadd [ecx], eax" \ - "inc eax" \ - value [eax]; - - -#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \ - ".586" \ - "mov eax, 0FFFFFFFFh" \ - "lock xadd [ecx], eax" \ - "dec eax" \ - value [eax]; -#else -// Single Processor, lock prefix not needed -#pragma aux __stl_InterlockedIncrement parm [ ecx ] = \ - ".586" \ - "mov eax, 1" \ - "xadd [ecx], eax" \ - "inc eax" \ - value [eax]; - -#pragma aux __stl_InterlockedDecrement parm [ ecx ] = \ - ".586" \ - "mov eax, 0FFFFFFFFh" \ - "xadd [ecx], eax" \ - "dec eax" \ - value [eax]; -#endif // _STL_MULTIPROCESSOR - -long __stl_InterlockedExchange( long *Destination, long Value ); - -// xchg has auto-lock -#pragma aux __stl_InterlockedExchange parm [ecx] [eax] = \ - ".586" \ - "xchg eax, [ecx]" \ - value [eax]; -#else - -#define __stl_InterlockedIncrement InterlockedIncrement -#define __stl_InterlockedDecrement InterlockedDecrement -#define __stl_InterlockedExchange InterlockedExchange -#endif /* INLINE INTERLOCK */ - -#define _STLP_ATOMIC_INCREMENT(__x) __stl_InterlockedIncrement((long*)__x) -#define _STLP_ATOMIC_DECREMENT(__x) __stl_InterlockedDecrement((long*)__x) -#define _STLP_ATOMIC_EXCHANGE(__x, __y) __stl_InterlockedExchange((long*)__x, (long)__y) - -// boris : is this true or just the header is not in /usr/include ? -# ifdef __QNX__ -# define _STLP_NO_TYPEINFO 1 -# endif - -# define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# define _STLP_NO_MEMBER_TEMPLATES 1 -# define _STLP_NO_FRIEND_TEMPLATES 1 -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 - - -# define _STLP_LIMITED_DEFAULT_TEMPLATES 1 -# define _STLP_HAS_NO_NAMESPACES 1 -# define _STLP_NEED_TYPENAME 1 - -# if __WATCOMC__ < 1100 -# define _STLP_NO_WCHAR_T 1 -# define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 -# endif - -# define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS 1 - -# define _STLP_STATIC_CONST_INIT_BUG 1 -// # define _STLP_THROW_RETURN_BUG 1 -# define _STLP_NO_TEMPLATE_CONVERSIONS 1 - -# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 - -# define _STLP_HAS_NO_NEW_IOSTREAMS 1 -# define _STLP_HAS_NO_NEW_C_HEADERS 1 -# define _STLP_NO_NEW_NEW_HEADER 1 -# define _STLP_VENDOR_GLOBAL_STD - -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 -# define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 -# define _STLP_NONTEMPL_BASE_MATCH_BUG -# define _STLP_NO_EXCEPTION_HEADER 1 -# define _STLP_NO_BAD_ALLOC 1 - -# define _STLP_NESTED_TYPE_PARAM_BUG 1 - -# define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1 - -# if (__WATCOM_CPLUSPLUS__ < 1100 ) -# define _STLP_NO_BOOL 1 -# define _STLP_NEED_EXPLICIT 1 -# define _STLP_NEED_MUTABLE 1 -# define _STLP_NO_ARROW_OPERATOR 1 -# endif -// This one is present in 11, but apparently has bugs (with auto_ptr). -# define _STLP_NO_NEW_STYLE_CASTS 1 - -// Get rid of Watcom's min and max macros -#undef min -#undef max - -// for switches (-xs, -xss, -xst) -// -#if !(defined (__SW_XS) || defined (__SW_XSS) || defined(__SW_XST)) -# define _STLP_HAS_NO_EXCEPTIONS 1 -# endif - -# if defined ( _MT ) && !defined (_NOTHREADS) && !defined (_REENTRANT) -# define _REENTRANT 1 -# endif - - - - - diff --git a/WebKit/android/stlport/stl/config/_windows.h b/WebKit/android/stlport/stl/config/_windows.h deleted file mode 100644 index 69068bc..0000000 --- a/WebKit/android/stlport/stl/config/_windows.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_INTERNAL_WINDOWS_H -#define _STLP_INTERNAL_WINDOWS_H - -#if !defined (_STLP_PLATFORM) -# define _STLP_PLATFORM "Windows" -#endif - -/* _STLP_WIN32_VERSION is used to detect targetted Windows platforms as - * old ones are not supporting some Win32 functions that STLport use. - * Limited OSs are going up to and including Windows 98 so they can be - * detected using WINVER or _WIN32_WINDOWS macros, we do not have to use - * _WINNT_WINDOWS macro for the moment. - */ -#if !defined (_STLP_WIN32_VERSION) -# if defined (WINVER) -# define _STLP_WIN32_VERSION WINVER -# elif defined (_WIN32_WINDOWS) -# define _STLP_WIN32_VERSION _WIN32_WINDOWS -# endif -#endif - -#if !defined (_STLP_BIG_ENDIAN) && !defined (_STLP_LITTLE_ENDIAN) -# if defined (_MIPSEB) -# define _STLP_BIG_ENDIAN 1 -# endif -# if defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \ - defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \ - defined (__alpha__) -# define _STLP_LITTLE_ENDIAN 1 -# endif -# if defined (__ia64__) - /* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */ -# if defined (__BIG_ENDIAN__) -# define _STLP_BIG_ENDIAN 1 -# else -# define _STLP_LITTLE_ENDIAN 1 -# endif -# endif -#endif /* _STLP_BIG_ENDIAN */ - -#if !defined (_STLP_WINDOWS_H_INCLUDED) -# define _STLP_WINDOWS_H_INCLUDED -# if !(defined ( _STLP_MSVC ) || defined (__BORLANDC__) || defined (__ICL) || defined (__WATCOMC__) || \ - defined (__MINGW32__) || defined (__DMC__)) -# if defined (_STLP_USE_MFC) -# include <afx.h> -# else -# include <windows.h> -# endif -# else -/* This section serves as a replacement for windows.h header for Visual C++ */ -# if defined (__cplusplus) -extern "C" { -# endif -# if (defined (_M_AMD64) || defined (_M_IA64) || (!defined (_STLP_WCE) && defined (_M_MRX000)) || defined (_M_ALPHA) || \ - (defined (_M_PPC) && (_STLP_MSVC_LIB >= 1000))) && !defined (RC_INVOKED) -# define InterlockedIncrement _InterlockedIncrement -# define InterlockedDecrement _InterlockedDecrement -# define InterlockedExchange _InterlockedExchange -/* Here we use a different macro name than the InterlockedExchangePointer SDK function - * to avoid macro definition conflict as the SDK might already define InterlockedExchangePointer - * as a macro. - */ -# define STLPInterlockedExchangePointer _InterlockedExchangePointer -# define _STLP_STDCALL -# else -# if defined (_MAC) -# define _STLP_STDCALL _cdecl -# else -# define _STLP_STDCALL __stdcall -# endif -# endif - -# if defined (_STLP_NEW_PLATFORM_SDK) -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long volatile *); -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long volatile *); -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long volatile *, long); -# if defined (STLPInterlockedExchangePointer) -_STLP_IMPORT_DECLSPEC void* _STLP_STDCALL STLPInterlockedExchangePointer(void* volatile *, void*); -# endif -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchangeAdd(long volatile *, long); -# elif defined (_STLP_WCE) - -/* start of eMbedded Visual C++ specific section */ -# include <windef.h> /* needed for basic windows types */ - - /** in SDKs generated with PB5, windef.h somehow includes headers which then - define setjmp. */ -# if (_WIN32_WCE >= 0x500) -# define _STLP_NATIVE_SETJMP_H_INCLUDED -# endif - -# ifndef _WINBASE_ /* winbase.h already included? */ -long WINAPI InterlockedIncrement(long*); -long WINAPI InterlockedDecrement(long*); -long WINAPI InterlockedExchange(long*, long); -# endif - -# ifndef __WINDOWS__ /* windows.h already included? */ - -# if defined (x86) -# include <winbase.h> /* needed for inline versions of Interlocked* functions */ -# endif - -# ifndef _MFC_VER - -# define MessageBox MessageBoxW -int WINAPI MessageBoxW(HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType); - -# define wvsprintf wvsprintfW -int WINAPI wvsprintfW(LPWSTR, LPCWSTR, va_list ArgList); - -void WINAPI ExitThread(DWORD dwExitCode); - -# if !defined (COREDLL) -# define _STLP_WCE_WINBASEAPI DECLSPEC_IMPORT -# else -# define _STLP_WCE_WINBASEAPI -# endif - -_STLP_WCE_WINBASEAPI int WINAPI -MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCSTR lpMultiByteStr, - int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar); - -_STLP_WCE_WINBASEAPI UINT WINAPI GetACP(); - -_STLP_WCE_WINBASEAPI BOOL WINAPI TerminateProcess(HANDLE hProcess, DWORD uExitCode); - -# define OutputDebugString OutputDebugStringW -void WINAPI OutputDebugStringW(LPCWSTR); - -_STLP_WCE_WINBASEAPI void WINAPI Sleep(DWORD); - -# undef _STLP_WCE_WINBASEAPI - -# endif /* !_MFC_VER */ - -# endif /* !__WINDOWS__ */ - -/* end of eMbedded Visual C++ specific section */ - -# else -/* boris : for the latest SDK, you may actually need the other version of the declaration (above) - * even for earlier VC++ versions. There is no way to tell SDK versions apart, sorry ... - */ -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long*); -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long*); -_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long*, long); -# endif - -# if !defined (STLPInterlockedExchangePointer) -/* This API function do not exist in the old platform SDK and is equivalent to - * InterlockedExchange on 32 bits platform: - */ -# if defined (__cplusplus) -/* We do not define this function if we are not in a C++ translation unit just - * because of the inline portability issue it would introduce. We will have to - * fix it the day we need this function for a C translation unit. - */ -inline -void* _STLP_CALL STLPInterlockedExchangePointer(void* volatile* __a, void* __b) { -# if defined (_STLP_MSVC) -/* Here MSVC produces warning if 64 bits portability issue is activated. - * MSVC do not see that _STLP_ATOMIC_EXCHANGE_PTR is a macro which content - * is based on the platform, Win32 or Win64 - */ -# pragma warning (push) -# pragma warning (disable : 4311) // pointer truncation from void* to long -# pragma warning (disable : 4312) // conversion from long to void* of greater size -# endif -# if !defined (_STLP_NO_NEW_STYLE_CASTS) - return reinterpret_cast<void*>(InterlockedExchange(reinterpret_cast<long*>(const_cast<void**>(__a)), - reinterpret_cast<long>(__b))); -# else - return (void*)InterlockedExchange((long*)__a, (long)__b); -# endif -# if defined (_STLP_MSVC) -# pragma warning (pop) -# endif -} -# endif -# endif - -# if !defined (_STLP_WCE) -_STLP_IMPORT_DECLSPEC void _STLP_STDCALL Sleep(unsigned long); -_STLP_IMPORT_DECLSPEC void _STLP_STDCALL OutputDebugStringA(const char* lpOutputString); -# endif - -# if defined (InterlockedIncrement) -# pragma intrinsic(_InterlockedIncrement) -# pragma intrinsic(_InterlockedDecrement) -# pragma intrinsic(_InterlockedExchange) -# pragma intrinsic(_InterlockedExchangePointer) -# endif -# if defined (__cplusplus) -} /* extern "C" */ -# endif - -# endif /* STL_MSVC __BORLANDC__ __ICL __WATCOMC__ __MINGW32__ __DMC__*/ - -#endif /* _STLP_WINDOWS_H_INCLUDED */ - -#endif /* _STLP_INTERNAL_WINDOWS_H */ diff --git a/WebKit/android/stlport/stl/config/compat.h b/WebKit/android/stlport/stl/config/compat.h deleted file mode 100644 index f03d874..0000000 --- a/WebKit/android/stlport/stl/config/compat.h +++ /dev/null @@ -1,84 +0,0 @@ - -/* - * Compatibility section - * This section sets new-style macros based on old-style ones, for compatibility - */ - -#if defined (__STL_DEBUG) && !defined (_STLP_DEBUG) -# define _STLP_DEBUG __STL_DEBUG -#endif -#if defined (__STL_NO_ANACHRONISMS) && !defined (_STLP_NO_ANACHRONISMS) -# define _STLP_NO_ANACHRONISMS __STL_NO_ANACHRONISMS -#endif -#if defined (__STL_NO_EXTENSIONS) && !defined (_STLP_NO_EXTENSIONS) -# define _STLP_NO_EXTENSIONS __STL_NO_EXTENSIONS -#endif -#if defined (__STL_NO_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTIONS) -# define _STLP_NO_EXCEPTIONS __STL_NO_EXCEPTIONS -#endif -#if defined (__STL_NO_NAMESPACES) && !defined (_STLP_NO_NAMESPACES) -# define _STLP_NO_NAMESPACES __STL_NO_NAMESPACES -#endif -#if defined (__STL_MINIMUM_DEFAULT_TEMPLATE_PARAMS) && !defined (_STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS) -# define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS __STL_MINIMUM_DEFAULT_TEMPLATE_PARAMS -#endif -#if defined (__STL_NO_OWN_NAMESPACE) && !defined (_STLP_NO_OWN_NAMESPACE) -# define _STLP_NO_OWN_NAMESPACE __STL_NO_OWN_NAMESPACE -#endif - -#if defined (__STL_NO_RELOPS_NAMESPACE) && !defined (_STLP_NO_RELOPS_NAMESPACE) -# define _STLP_NO_RELOPS_NAMESPACE __STL_NO_RELOPS_NAMESPACE -#endif - -#if defined (__STL_DEBUG_UNINITIALIZED) && !defined (_STLP_DEBUG_UNINITIALIZED) -# define _STLP_DEBUG_UNINITIALIZED __STL_DEBUG_UNINITIALIZED -#endif -#if defined (__STL_SHRED_BYTE) && !defined (_STLP_SHRED_BYTE) -# define _STLP_SHRED_BYTE __STL_SHRED_BYTE -#endif -#if defined (__STL_USE_MFC) && !defined (_STLP_USE_MFC) -# define _STLP_USE_MFC __STL_USE_MFC -#endif - -#if defined (__STL_USE_NEWALLOC) && !defined (_STLP_USE_NEWALLOC) -# define _STLP_USE_NEWALLOC __STL_USE_NEWALLOC -#endif -#if defined (__STL_USE_MALLOC) && !defined (_STLP_USE_MALLOC) -# define _STLP_USE_MALLOC __STL_USE_MALLOC -#endif - -#if defined (__STL_DEBUG_ALLOC) && !defined (_STLP_DEBUG_ALLOC) -# define _STLP_DEBUG_ALLOC __STL_DEBUG_ALLOC -#endif - -#if defined (__STL_DEBUG_MESSAGE) && !defined (_STLP_DEBUG_MESSAGE) -# define _STLP_DEBUG_MESSAGE __STL_DEBUG_MESSAGE -#endif - -#if defined (__STL_DEBUG_TERMINATE) && !defined (_STLP_DEBUG_TERMINATE) -# define _STLP_DEBUG_TERMINATE __STL_DEBUG_TERMINATE -#endif - -#if defined (__STL_USE_ABBREVS) && !defined (_STLP_USE_ABBREVS) -# define _STLP_USE_ABBREVS __STL_USE_ABBREVS -#endif - -#if defined (__STL_NO_MSVC50_COMPATIBILITY) && !defined (_STLP_NO_MSVC50_COMPATIBILITY) -# define _STLP_NO_MSVC50_COMPATIBILITY __STL_NO_MSVC50_COMPATIBILITY -#endif - -#if defined (__STL_USE_RAW_SGI_ALLOCATORS) && !defined (_STLP_USE_RAW_SGI_ALLOCATORS) -# define _STLP_USE_RAW_SGI_ALLOCATORS __STL_USE_RAW_SGI_ALLOCATORS -#endif - -/* STLport do not support anymore the iostream wrapper mode so this macro should - * always been define for other libraries that was using it: - */ -#if !defined (_STLP_OWN_IOSTREAMS) -# define _STLP_OWN_IOSTREAMS -#endif - -#if defined (_STLP_NO_OWN_IOSTREAMS) -# error STLport do not support anymore the wrapper mode. If you want to use STLport \ -use its iostreams implementation or no iostreams at all. -#endif diff --git a/WebKit/android/stlport/stl/config/features.h b/WebKit/android/stlport/stl/config/features.h deleted file mode 100644 index 7b285d5..0000000 --- a/WebKit/android/stlport/stl/config/features.h +++ /dev/null @@ -1,1196 +0,0 @@ - /* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_FEATURES_H -#define _STLP_FEATURES_H - -/* - * Purpose of this file: - * - * Defines all STLport settings. - * This file is actually a wrapper : it includes compiler-specific - * settings from <config/stlcomp.h> - * and user-defined settings from <config/user_config.h>. - * See <config/stl_mycomp.h> and <config/user_config.h> for the description - * of those macros - * - */ - -/* Definition of the STLport version informations */ -#include <stl/_stlport_version.h> - -/* Other macros defined by this file: - - * bool, true, and false, if _STLP_NO_BOOL is defined. - * typename, as a null macro if it's not already a keyword. - * explicit, as a null macro if it's not already a keyword. - * namespace-related macros (_STLP_STD, _STLP_BEGIN_NAMESPACE, etc.) - * exception-related macros (_STLP_TRY, _STLP_UNWIND, etc.) - * _STLP_ASSERT, either as a test or as a null macro, depending on - whether or not _STLP_ASSERTIONS is defined. -*/ - -/* Definition of the 2 STLport debug levels */ -#define _STLP_STLPORT_DBG_LEVEL 1 -#define _STLP_STANDARD_DBG_LEVEL 2 - -/* Placeholder for user to override settings. - * It could be also used to mask settings from - * different directories. - */ -#include <stl/config/user_config.h> - -#if defined (_STLP_DEBUG) && !defined (_STLP_DEBUG_LEVEL) -# define _STLP_DEBUG_LEVEL _STLP_STLPORT_DBG_LEVEL -#endif - -#if defined (__BUILDING_STLPORT) -/* For the STLport implementation we can use everything: - */ -# if defined (_STLP_NO_ANACHRONISMS) -# undef _STLP_NO_ANACHRONISMS -# endif -# if defined (_STLP_NO_EXTENSIONS) -# undef _STLP_NO_EXTENSIONS -# endif -/* Moreover there are things that has no sens: - */ -# if defined (_STLP_NO_IOSTREAMS) -# error If you do not use iostreams you do not need to build the STLport library. -# endif -#endif - -/* ========================================================= */ -/* This file is used for compatibility; it accepts old-style config - switches */ -#include <stl/config/compat.h> - -/* Common configuration file for this particular installation. */ -#include <stl/config/host.h> - -/* Operational Environment specific */ -#include <stl/config/_system.h> - -/* ========================================================= */ - -/* some fixes to configuration. This also includes modifications - * of STLport switches depending on compiler flags, - * or settings applicable to a group of compilers, such as - * to all who use EDG front-end. - */ -#include <stl/config/stl_confix.h> - -#ifdef _STLP_USE_BOOST_SUPPORT -/* We are going to use the boost library support. To limit the problem - * of self referencing headers we have to specify clearly to the boost - * library that the Standard lib is STLport: - */ -# ifndef BOOST_STDLIB_CONFIG -# define BOOST_STDLIB_CONFIG <boost/config/stdlib/stlport.hpp> -# endif -#endif - - -/* - * Performs integrity check on user-specified parameters - * and site-specific settings. - */ -/* -# include <stl/_check_config.h> -*/ - -/* SGI terms */ - -#if !defined (_STLP_NO_MEMBER_TEMPLATES) && !defined (_STLP_MEMBER_TEMPLATES) -# define _STLP_MEMBER_TEMPLATES 1 -#endif - -#if !defined (_STLP_NO_FRIEND_TEMPLATES) && !defined (_STLP_FRIEND_TEMPLATES) -# define _STLP_FRIEND_TEMPLATES 1 -#endif - -#if !defined (_STLP_NO_MEMBER_TEMPLATE_CLASSES) && !defined (_STLP_MEMBER_TEMPLATE_CLASSES) -# define _STLP_MEMBER_TEMPLATE_CLASSES 1 -#endif - -#if defined (_STLP_NO_MEMBER_TEMPLATE_CLASSES) && !defined (_STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE) -# define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1 -#endif - -#if !defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -# define _STLP_CLASS_PARTIAL_SPECIALIZATION 1 -#endif - -#if !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) && !defined (_STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER) -# define _STLP_FUNCTION_TMPL_PARTIAL_ORDER 1 -#endif - -#if !defined (_STLP_DONT_USE_SHORT_STRING_OPTIM) && !defined (_STLP_USE_SHORT_STRING_OPTIM) -# define _STLP_USE_SHORT_STRING_OPTIM 1 -#endif - -#if defined (_STLP_MEMBER_TEMPLATES) && !defined (_STLP_NO_EXTENSIONS) && \ - !defined (_STLP_NO_CONTAINERS_EXTENSION) && !defined (_STLP_USE_CONTAINERS_EXTENSION) -# define _STLP_USE_CONTAINERS_EXTENSION -#endif - -#if defined (_STLP_USE_CONTAINERS_EXTENSION) -# define _STLP_TEMPLATE_FOR_CONT_EXT template <class _KT> -#else -# define _STLP_TEMPLATE_FOR_CONT_EXT -#endif - -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) && \ - (defined (_STLP_NO_CLASS_PARTIAL_SPECIALIZATION) && defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS)) -# error "Sorry but according the STLport settings your compiler can not support the pointer specialization feature." -#endif - -#if defined (_STLP_NO_IOSTREAMS) && \ - !defined (_STLP_USE_NEWALLOC) && !defined (_STLP_USE_MALLOC) -# define _STLP_USE_NEWALLOC -#endif - -#if !defined (_STLP_BIG_ENDIAN) && !defined (_STLP_LITTLE_ENDIAN) -# if defined (_MIPSEB) || defined (__sparc) || defined (_AIX) || \ - defined (__hpux) || defined (macintosh) || defined (_MAC) -# define _STLP_BIG_ENDIAN 1 -# elif defined (__i386) || defined (_M_IX86) || defined (_M_ARM) || \ - defined (__amd64__) || defined (_M_AMD64) || defined (__x86_64__) || \ - defined (__alpha__) -# define _STLP_LITTLE_ENDIAN 1 -# elif defined (__ia64__) - /* itanium allows both settings (for instance via gcc -mbig-endian) - hence a seperate check is required */ -# if defined (__BIG_ENDIAN__) -# define _STLP_BIG_ENDIAN 1 -# else -# define _STLP_LITTLE_ENDIAN 1 -# endif -# else -# error "can't determine endianess" -# endif -#endif /* _STLP_BIG_ENDIAN */ - -/* ========================================================== - * final workaround tuning based on given flags - * ========================================================== */ - -#ifndef _STLP_UINT32_T -# define _STLP_UINT32_T unsigned long -#endif -#ifndef _STLP_ABORT -# define _STLP_ABORT() abort() -#endif - -#if !defined (_STLP_HAS_NO_NAMESPACES) -# if defined _STLP_NO_NAMESPACES -# undef _STLP_USE_NAMESPACES -# else -/* assume it as the default, turn it off later if NO_NAMESPACES selected */ -# undef _STLP_USE_NAMESPACES -# define _STLP_USE_NAMESPACES 1 -# endif -#endif - -#if defined (_STLP_NO_IOSTREAMS) -# define _STLP_USE_NO_IOSTREAMS -#endif - -/* Operating system recognition (basic) */ -#if defined (__unix) || defined (__linux__) || defined (__QNX__) || defined (_AIX) || defined (__NetBSD__) || defined(__OpenBSD__) || defined (__Lynx__) -# define _STLP_UNIX 1 -#elif defined(macintosh) || defined (_MAC) -# define _STLP_MAC 1 -#elif defined (_WIN32) || defined (__WIN32) || defined (WIN32) || defined (__WIN32__) -# ifndef __SYMBIAN32__ -# define _STLP_WIN32 1 -# endif -#elif defined (__WIN16) || defined (WIN16) || defined (_WIN16) -# define _STLP_WIN16 -#endif /* __unix */ - -#if defined (_STLP_WIN16) -# define _STLP_LDOUBLE_80 -#elif defined(_STLP_WIN32) -# if defined (_STLP_MSVC) || defined (__ICL) || defined (__BORLANDC__) || defined (__CYGWIN__) -# define _STLP_LDOUBLE_64 -# else -# define _STLP_LDOUBLE_96 -# endif -#elif defined (_STLP_UNIX) -# if defined (__CYGWIN__) -# define _STLP_LDOUBLE_96 -# endif -#endif - -#if !defined (_STLP_LDOUBLE_64) && !defined (_STLP_LDOUBLE_80) && !defined (_STLP_LDOUBLE_96) && !defined (_STLP_LDOUBLE_128) -# define _STLP_LDOUBLE_128 -#endif - -#if !defined (_STLP_NO_LONG_DOUBLE) -# define _STLP_LONGEST_FLOAT_TYPE long double -#else -# define _STLP_LONGEST_FLOAT_TYPE double -#endif - -/* Native headers access macros */ -#include <stl/config/_native_headers.h> - -/* shared library tune-up */ - -#if defined (__BUILDING_STLPORT) -/* if we are rebuilding right now, place everything here */ -# undef _STLP_DESIGNATED_DLL -# define _STLP_DESIGNATED_DLL 1 -#endif - -/* Use own namespace always if possible and not explicitly instructed otherwise */ -#if defined (_STLP_USE_NAMESPACES) && !defined (_STLP_BROKEN_USING_DIRECTIVE) && \ - !defined (_STLP_NO_OWN_NAMESPACE) -# undef _STLP_USE_OWN_NAMESPACE -# define _STLP_USE_OWN_NAMESPACE 1 -#else -# undef _STLP_WHOLE_NATIVE_STD -#endif - -#if !defined (_NOTHREADS) && !defined (_STLP_THREADS_DEFINED) - -# if defined (_PTHREADS) -# define _STLP_PTHREADS -# define _STLP_THREADS -# endif -# if defined (_UITHREADS) -# define _STLP_UITHREADS -# define _STLP_THREADS -# endif - -# if defined (__sgi) && !defined (__KCC) && !defined (__GNUC__) -# define _STLP_SGI_THREADS -# elif defined (__DECC) || defined (__DECCXX) -# define _STLP_DEC_THREADS -# elif defined (_STLP_WIN32) && !defined (_STLP_PTHREADS) -# define _STLP_WIN32THREADS 1 -# elif ((defined (__sun) && !defined (__linux__)) || defined (_UITHREADS) ) && \ - !defined(_STLP_PTHREADS) -# define _STLP_UITHREADS -# elif defined (__OS2__) -# define _STLP_OS2THREADS -# elif defined (__BEOS__) -# define _STLP_BETHREADS -# elif defined (__MWERKS__) && defined (N_PLAT_NLM) /* (__dest_os == __netware_os) */ -# define _STLP_NWTHREADS -# else -# define _STLP_PTHREADS -# endif /* __sgi */ -# define _STLP_THREADS_DEFINED -#endif - -#if (defined (_REENTRANT) || defined (_THREAD_SAFE) || \ - (defined (_POSIX_THREADS) && defined (__OpenBSD__))) && \ - !defined (_STLP_THREADS) -# define _STLP_THREADS -#endif /* _REENTRANT */ - -#if defined (__linux__) && defined (_STLP_PTHREADS) -/* # include <features.h> */ - -# if defined (__USE_XOPEN2K) && !defined (_STLP_DONT_USE_PTHREAD_SPINLOCK) -# define _STLP_USE_PTHREAD_SPINLOCK -# define _STLP_STATIC_MUTEX _STLP_mutex -# endif /* __USE_XOPEN2K */ -#endif /* __linux__ && _STLP_PTHREADS */ - -#if defined (__OpenBSD__) && defined (_POSIX_THREADS) && !defined (_STLP_DONT_USE_PTHREAD_SPINLOCK) -# define _STLP_USE_PTHREAD_SPINLOCK -# define _STLP_STATIC_MUTEX _STLP_mutex -#endif - -#ifndef _STLP_STATIC_MUTEX -# define _STLP_STATIC_MUTEX _STLP_mutex_base -#endif - -#if (defined (_MFC_VER) || defined (_AFXDLL)) && !defined (_STLP_USE_MFC) -# define _STLP_USE_MFC 1 -#endif - -#if defined (_STLP_THREADS) -# define _STLP_VOLATILE volatile -/* windows.h _MUST be included before bool definition ;( */ -# if defined (_STLP_WIN32THREADS) && defined (_STLP_NO_BOOL) -# undef NOMINMAX -# define NOMINMAX -# ifdef _STLP_USE_MFC -# include <afx.h> -# else -# include <windows.h> -# endif -# define _STLP_WINDOWS_H_INCLUDED -# endif -#else -# define _STLP_VOLATILE -#endif - -#if !defined (_STLP_USE_NEW_C_HEADERS) && !defined (_STLP_HAS_NO_NEW_C_HEADERS) -# define _STLP_USE_NEW_C_HEADERS -#endif -/* disable new-style headers if requested */ -#if defined (_STLP_NO_NEW_C_HEADERS) -# undef _STLP_USE_NEW_C_HEADERS -#endif - -#if !defined (_STLP_STATIC_TEMPLATE_DATA) -# define _STLP_STATIC_TEMPLATE_DATA 1 -#endif - -#if defined (_STLP_BASE_TYPEDEF_BUG) -# undef _STLP_BASE_TYPEDEF_OUTSIDE_BUG -# define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 -#endif - -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) || (defined (_STLP_MSVC) && (_STLP_MSVC < 1100)) -# define _STLP_GLOBAL_NESTED_RETURN_TYPE_PARAM_BUG -#endif - -/* SUNpro 4.2 inline string literal bug */ -#ifdef _STLP_INLINE_STRING_LITERAL_BUG -# define _STLP_FIX_LITERAL_BUG(__x) __x = __x; -#else -# define _STLP_FIX_LITERAL_BUG(__x) -#endif - -#if defined (_STLP_NON_TYPE_TMPL_PARAM_BUG) -# undef _STLP_NO_DEFAULT_NON_TYPE_PARAM -# define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 -#endif - -#define _STLP_NEW new -#define _STLP_PLACEMENT_NEW new - -#ifdef _STLP_DEBUG -# define _STLP_ASSERTIONS 1 -#endif - -#if !defined (_STLP_STATIC_ASSERT) -/* Some compiler support 0 size array so we use negative size array to generate - * a compilation time error. - */ -# define _STLP_STATIC_ASSERT(expr) typedef char __static_assert[expr ? 1 : -1]; -#endif - -/* apple mpw exception handling bug */ -#ifndef _STLP_MPWFIX_TRY -# define _STLP_MPWFIX_TRY -#endif -#ifndef _STLP_MPWFIX_CATCH -# define _STLP_MPWFIX_CATCH -#endif -#ifndef _STLP_MPWFIX_CATCH_ACTION -# define _STLP_MPWFIX_CATCH_ACTION(action) -#endif - -/* if _STLP_DEBUG or _STLP_ASSERTIONS are set, stl/debug/_debug.h defines those */ - -#if !defined (_STLP_ASSERTIONS) && !defined (_STLP_DEBUG) && !defined (_STLP_DEBUG_ALLOC) -# define _STLP_ASSERT(expr) -#endif - -#if !defined (_STLP_DEBUG) -# define _STLP_VERBOSE_ASSERT(expr,diagnostic) -# define _STLP_DEBUG_CHECK(expr) -# define _STLP_DEBUG_DO(expr) -#endif - -#if !defined (_STLP_WEAK) -# define _STLP_WEAK -#endif - -/* default parameters as template types derived from arguments ( not always supported ) */ -#if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -# define _STLP_DFL_TMPL_PARAM( classname, defval ) class classname -#else -# if !defined (_STLP_DEFAULT_TYPE_PARAM) -# define _STLP_DEFAULT_TYPE_PARAM 1 -# endif -# define _STLP_DFL_TMPL_PARAM( classname, defval ) class classname = defval -#endif - -/* default parameters as complete types */ -#if defined (_STLP_DEFAULT_TYPE_PARAM) -# define _STLP_DFL_TYPE_PARAM( classname, defval ) class classname = defval -# define _STLP_DFL_NON_TYPE_PARAM(type,name,val) type name = val -#else -# define _STLP_DFL_TYPE_PARAM( classname, defval ) class classname -# define _STLP_DFL_NON_TYPE_PARAM(type,name,val) type name -#endif - -/* SGI compatibility */ - -#ifdef _STLP_NO_WCHAR_T -# ifndef _STLP_NO_NATIVE_WIDE_STREAMS -# define _STLP_NO_NATIVE_WIDE_STREAMS 1 -# endif -#else -# define _STLP_HAS_WCHAR_T 1 -#endif - -#if !defined (_STLP_NO_AT_MEMBER_FUNCTION) -# define _STLP_CAN_THROW_RANGE_ERRORS 1 -#endif - -#if !defined (_STLP_USE_RAW_SGI_ALLOCATORS) -# define _STLP_DEFAULT_ALLOCATOR(_Tp) allocator< _Tp > -# define _STLP_DEFAULT_ALLOCATOR_SELECT( _Tp ) _STLP_DFL_TMPL_PARAM(_Alloc, allocator< _Tp >) -# define _STLP_DEFAULT_PAIR_ALLOCATOR(_Key, _Tp) allocator< pair < _Key, _Tp > > -# if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) -# define _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_Key, _Tp ) class _Alloc -# define _STLP_USE_WRAPPER_FOR_ALLOC_PARAM 1 -# else -# define _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_Key, _Tp ) \ - class _Alloc = allocator< pair < _Key, _Tp > > -# endif -#else -# define _STLP_DEFAULT_ALLOCATOR( _Tp ) __sgi_alloc -# define _STLP_DEFAULT_ALLOCATOR_SELECT( _Tp ) _STLP_DFL_TYPE_PARAM(_Alloc,__sgi_alloc) -# define _STLP_DEFAULT_PAIR_ALLOCATOR( _Key, _Tp ) __sgi_alloc -# define _STLP_DEFAULT_PAIR_ALLOCATOR_SELECT(_Key, _Tp ) _STLP_DFL_TYPE_PARAM(_Alloc,__sgi_alloc) -# if defined (_STLP_LIMITED_DEFAULT_TEMPLATES) && !defined (_STLP_DEFAULT_TYPE_PARAM) -# define _STLP_USE_WRAPPER_FOR_ALLOC_PARAM 1 -# endif -#endif - -/* debug mode tool */ -#if defined (_STLP_DEBUG) -# define _STLP_NON_DBG_NAME(X) _NonDbg_##X -#endif - -/* pointer specialization tool */ -#if defined (_STLP_USE_PTR_SPECIALIZATIONS) -# define _STLP_PTR_IMPL_NAME(X) _Impl_##X -#endif - -#if defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -# define _STLP_NO_MEM_T_NAME(X) _NoMemT_##X -# if defined (_STLP_DEBUG) -# define _STLP_NON_DBG_NO_MEM_T_NAME(X) _NonDbg_NoMemT_##X -# endif -#endif - -/* this always mean the C library is in global namespace */ -#if defined (_STLP_HAS_NO_NEW_C_HEADERS) && !defined (_STLP_VENDOR_GLOBAL_CSTD) -# define _STLP_VENDOR_GLOBAL_CSTD 1 -#endif - -/* Depending of whether compiler supports namespaces, - * tune the parameters for vendor-supplied libraries. - * This section is guarded by _STLP_HAS_NO_NAMESPACES, not by _STLP_USE_NAMESPACES, - * since it depends only on the native features, not on user's preference whether - * to use namespace for STLport or not. - */ -#if !defined (_STLP_HAS_NO_NAMESPACES) -/* Import some vendor's headers into corresponding STLport ones if they might be needed - * (if we wrap native iostreams and use namepace other than std::) */ -# if defined (_STLP_WHOLE_NATIVE_STD) -# define _STLP_IMPORT_VENDOR_STD 1 -# undef _STLP_MINIMUM_IMPORT_STD -# endif - -/* if using stlport:: namespace or if C library stuff is not in vendor's std::, - * try importing 'em. - * MSVC has ambiguity problem when we try to import C-style std:: stuff back into global namespace */ -# if defined (_STLP_USE_NAMESPACES) && (defined(_STLP_USE_OWN_NAMESPACE) || defined (_STLP_VENDOR_GLOBAL_CSTD)) -# define _STLP_IMPORT_VENDOR_CSTD 1 -# endif - -# if defined (_STLP_NO_USING_FOR_GLOBAL_FUNCTIONS) && !defined (_STLP_DO_IMPORT_CSTD_FUNCTIONS) -# define _STLP_NO_CSTD_FUNCTION_IMPORTS -# endif - -# define _STLP_USING_NAMESPACE(x) using namespace x ; - -namespace std { } -namespace __std_alias = std; - -/* assume std:: namespace for C++ std library if not being told otherwise */ -# if defined (_STLP_VENDOR_GLOBAL_STD) -# define _STLP_VENDOR_STD -# else -# define _STLP_VENDOR_STD __std_alias -# endif - -/* tune things that come from C library */ -# if defined (_STLP_VENDOR_GLOBAL_CSTD) || !defined(_STLP_USE_NEW_C_HEADERS) -/* in old-style headers, C functions go to global scope. */ -# define _STLP_VENDOR_CSTD -# define _STLP_USING_VENDOR_CSTD -# else -# define _STLP_VENDOR_CSTD _STLP_VENDOR_STD -# define _STLP_USING_VENDOR_CSTD _STLP_USING_NAMESPACE(_STLP_VENDOR_CSTD) -# endif /* _STLP_VENDOR_CSTD */ -/* exception, typeinfo, new - always come from the vendor */ -# if !defined (_STLP_VENDOR_EXCEPT_STD) -# if defined (_STLP_VENDOR_GLOBAL_EXCEPT_STD) -# define _STLP_VENDOR_EXCEPT_STD -# else -# define _STLP_VENDOR_EXCEPT_STD _STLP_VENDOR_STD -# endif -# endif -# define _STLP_OLD_IO_NAMESPACE -# if !defined (_STLP_VENDOR_MB_NAMESPACE) -# define _STLP_VENDOR_MB_NAMESPACE _STLP_VENDOR_CSTD -# endif -#else -/* compiler has no namespace support */ -# define _STLP_VENDOR_STD -# define _STLP_VENDOR_CSTD -# define _STLP_USING_NAMESPACE(x) -# define _STLP_USING_VENDOR_CSTD -# define _STLP_VENDOR_EXCEPT_STD -#endif - -#if defined (_STLP_USE_NAMESPACES) - -# if defined (_STLP_USE_OWN_NAMESPACE) -# if !defined (_STLP_STD_NAME) -# if !defined (_STLP_DEBUG) -# if !defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB) -# ifndef _STLP_THREADS -# define _STLP_STD_NAME stlpmtx_std -# else -# define _STLP_STD_NAME stlp_std -# endif -# else -# ifndef _STLP_THREADS -# define _STLP_STD_NAME stlpxmtx_std -# else -# define _STLP_STD_NAME stlpx_std -# endif -# endif -# else -/* - * The STLport debug mode is binary incompatible with the other modes, - * lets make it clear on the STLport namespace to generate link errors rather - * than runtime. - */ -# if !defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB) -# ifndef _STLP_THREADS -# define _STLP_STD_NAME stlpdmtx_std -# else -# define _STLP_STD_NAME stlpd_std -# endif -# else -# ifndef _STLP_THREADS -# define _STLP_STD_NAME stlpdxmtx_std -# else -# define _STLP_STD_NAME stlpdx_std -# endif -# endif -# endif -# endif -namespace _STLP_STD_NAME { } -# else -# if defined (_STLP_DEBUG) -namespace stdD = std; -# endif -# define _STLP_STD_NAME std -# endif /* _STLP_USE_OWN_NAMESPACE */ - -# if !defined (_STLP_USING_NAMESPACE_BUG) -# define _STLP_PRIV_NAME stlp_priv -namespace _STLP_PRIV_NAME { - using namespace _STLP_STD_NAME; -} -# else -# define _STLP_PRIV_NAME priv -# endif - -# define _STLP_BEGIN_NAMESPACE namespace _STLP_STD_NAME { -# define _STLP_END_NAMESPACE } - -# if !defined (_STLP_DONT_USE_PRIV_NAMESPACE) -# if !defined (_STLP_USING_NAMESPACE_BUG) -/* We prefer to make private namespace a totaly seperated namespace... - */ -# define _STLP_PRIV ::_STLP_PRIV_NAME:: -# define _STLP_MOVE_TO_PRIV_NAMESPACE } namespace _STLP_PRIV_NAME { -# define _STLP_MOVE_TO_STD_NAMESPACE } namespace _STLP_STD_NAME { -# else -/* but sometimes we can't: - */ -# define _STLP_PRIV _STLP_PRIV_NAME:: -# define _STLP_MOVE_TO_PRIV_NAMESPACE namespace _STLP_PRIV_NAME { -# define _STLP_MOVE_TO_STD_NAMESPACE } -# endif -# else -# define _STLP_PRIV -# define _STLP_MOVE_TO_PRIV_NAMESPACE -# define _STLP_MOVE_TO_STD_NAMESPACE -# endif - -/* decide whether or not we use separate namespace for rel ops */ -# if defined (_STLP_NO_RELOPS_NAMESPACE) -# define _STLP_BEGIN_RELOPS_NAMESPACE _STLP_BEGIN_NAMESPACE namespace rel_ops {} -# define _STLP_END_RELOPS_NAMESPACE } -# else -/* Use std::rel_ops namespace */ -# define _STLP_BEGIN_RELOPS_NAMESPACE _STLP_BEGIN_NAMESPACE namespace rel_ops { -# define _STLP_END_RELOPS_NAMESPACE } } -# define _STLP_USE_SEPARATE_RELOPS_NAMESPACE -# endif /* Use std::rel_ops namespace */ - -# define _STLP_STD ::_STLP_STD_NAME - -/* Official STLport namespace when std is not redefined. - * Here we don't use a macro as stlport is used as file name by boost - * and folder name under beos: - */ -namespace stlport = _STLP_STD_NAME; - -/* Backward compatibility: - */ -namespace _STL = _STLP_STD_NAME; -#undef __STLPORT_NAMESPACE -#define __STLPORT_NAMESPACE _STLP_STD_NAME - -#else /* _STLP_USE_NAMESPACES */ -/* STLport is being put into global namespace */ -# define _STLP_STD -# define _STLP_PRIV -# define _STLP_BEGIN_NAMESPACE -# define _STLP_END_NAMESPACE -# define _STLP_MOVE_TO_PRIV_NAMESPACE -# define _STLP_MOVE_TO_STD_NAMESPACE - -/* boris : it was found out that _STLP_USE_SEPARATE_RELOPS_NAMESPACE - causes less problems than having relational operator templates in global namespace - Please define _STLP_NO_RELOPS_NAMESPACE in config/user_config.h if your code rely on them. */ -# if !defined (_STLP_NO_RELOPS_NAMESPACE) -# define _STLP_USE_SEPARATE_RELOPS_NAMESPACE -# endif -# define _STLP_BEGIN_RELOPS_NAMESPACE -# define _STLP_END_RELOPS_NAMESPACE -# undef _STLP_USE_OWN_NAMESPACE -#endif /* _STLP_USE_NAMESPACES */ - -#define STLPORT_CSTD _STLP_VENDOR_CSTD -#define STLPORT _STLP_STD_NAME - -#if defined(_STLP_BOGUS_TEMPLATE_TYPE_MATCHING_BUG) -# define _STLP_SIMPLE_TYPE(T) _stl_trivial_proxy<T> -#else -# define _STLP_SIMPLE_TYPE(T) T -#endif - -#ifndef _STLP_RAND48 -# define _STLP_NO_DRAND48 -#endif - -/* advanced keywords usage */ -#define __C_CAST(__x, __y) ((__x)(__y)) -#ifndef _STLP_NO_NEW_STYLE_CASTS -# define __CONST_CAST(__x,__y) const_cast<__x>(__y) -# define __STATIC_CAST(__x,__y) static_cast<__x>(__y) -# define __REINTERPRET_CAST(__x,__y) reinterpret_cast<__x>(__y) -# define __DYNAMIC_CAST(__x,__y) dynamic_cast<__x>(__y) -#else -# define __STATIC_CAST(__x,__y) __C_CAST(__x, __y) -# define __CONST_CAST(__x,__y) __C_CAST(__x, __y) -# define __REINTERPRET_CAST(__x,__y) __C_CAST(__x, __y) -# define __DYNAMIC_CAST(__x,__y) __C_CAST(__x, __y) -#endif - -#if defined (_STLP_NEED_TYPENAME) && ! defined (typename) -# define typename -#endif - -#if defined (_STLP_NEED_TYPENAME) || defined (_STLP_NO_TYPENAME_ON_RETURN_TYPE ) -# define _STLP_TYPENAME_ON_RETURN_TYPE -#else -# define _STLP_TYPENAME_ON_RETURN_TYPE typename -#endif - -#ifdef _STLP_NO_TYPENAME_IN_TEMPLATE_HEADER -# define _STLP_HEADER_TYPENAME -#else -# define _STLP_HEADER_TYPENAME typename -#endif - -#ifndef _STLP_NO_MEMBER_TEMPLATE_KEYWORD -# define _STLP_TEMPLATE template -#else -# define _STLP_TEMPLATE -#endif - -#if defined (_STLP_USE_CONTAINERS_EXTENSION) -# define _STLP_KEY_TYPE_FOR_CONT_EXT(type) -# define _STLP_TEMPLATE_FOR_CONT_EXT template <class _KT> -#else -# define _STLP_KEY_TYPE_FOR_CONT_EXT(type) typedef type _KT; -# define _STLP_TEMPLATE_FOR_CONT_EXT -#endif - -#if defined (_STLP_NEED_EXPLICIT) && !defined (explicit) -# define explicit -#endif - -#if !defined (_STLP_NEED_MUTABLE) -# define _STLP_ASSIGN_MUTABLE(type,x,y) x = y -#else -# define _STLP_ASSIGN_MUTABLE(type,x,y) __CONST_CAST(type,x)=y -# define mutable -#endif - -#if defined (_STLP_NO_SIGNED_BUILTINS) -/* old HP-UX doesn't understand "signed" keyword */ -# define signed -#endif - -#if defined (_STLP_LOOP_INLINE_PROBLEMS) -# define _STLP_INLINE_LOOP -#else -# define _STLP_INLINE_LOOP inline -#endif - -#define _STLP_PRIVATE public - -#ifndef _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX -# define _STLP_TEMPLATE_NULL template<> -#else -# define _STLP_TEMPLATE_NULL -#endif - -#ifdef _STLP_FUNCTION_TMPL_PARTIAL_ORDER -# define _STLP_OPERATOR_TEMPLATE -#else -# define _STLP_OPERATOR_TEMPLATE _STLP_TEMPLATE_NULL -#endif - -#ifndef _STLP_CLASS_PARTIAL_SPECIALIZATION -/* unless we have other compiler problem, try simulating partial spec here */ -# if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) -# define _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS -# endif -/* For your own iterators, please use inheritance from iterator<> instead of these obsolete queries. */ -# if (defined (_STLP_NESTED_TYPE_PARAM_BUG) || !defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS)) -# if ! defined ( _STLP_USE_OLD_HP_ITERATOR_QUERIES ) -# define _STLP_USE_OLD_HP_ITERATOR_QUERIES -# endif -# elif defined ( _STLP_NO_ANACHRONISMS ) -# undef _STLP_USE_OLD_HP_ITERATOR_QUERIES -# endif -#endif - -#ifndef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS -# define _STLP_NULL_TMPL_ARGS <> -# else -# define _STLP_NULL_TMPL_ARGS -#endif - -#if !defined (_STLP_ALLOCATOR_TYPE_DFL) -# if defined (_STLP_DONT_SUP_DFLT_PARAM) -# define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS -# endif -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) -# define _STLP_ALLOCATOR_TYPE_DFL -# else -# define _STLP_ALLOCATOR_TYPE_DFL = allocator_type() -# endif -#endif - -/* When the compiler do not correctly initialized the basic types value in default parameters we prefer - * to avoid them to be able to correct this bug. - */ -#if defined (_STLP_DEF_CONST_DEF_PARAM_BUG) -# define _STLP_DONT_SUP_DFLT_PARAM 1 -#endif - -#if defined (__SGI_STL_NO_ARROW_OPERATOR) && ! defined (_STLP_NO_ARROW_OPERATOR) -# define _STLP_NO_ARROW_OPERATOR -#endif - -#if !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -# if !(defined (_STLP_NO_ARROW_OPERATOR)) && \ - !defined (_STLP_NO_MSVC50_COMPATIBILITY) && !defined (_STLP_MSVC50_COMPATIBILITY) -/* this one is needed for proper reverse_iterator<> operator ->() handling */ -# define _STLP_MSVC50_COMPATIBILITY 1 -# endif -#endif - -#if defined ( _STLP_CLASS_PARTIAL_SPECIALIZATION ) -# if (defined(__IBMCPP__) && (500 <= __IBMCPP__) && (__IBMCPP__ < 600) ) -# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \ - typedef typename _STLP_STD :: reverse_iterator<const_iterator> const_reverse_iterator; \ - typedef typename _STLP_STD :: reverse_iterator<iterator> reverse_iterator -# elif (defined (__sgi) && ! defined (__GNUC__)) || defined (__SUNPRO_CC) || defined (__xlC__) -# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \ - typedef _STLP_STD:: _STLP_TEMPLATE reverse_iterator<const_iterator> const_reverse_iterator; \ - typedef _STLP_STD:: _STLP_TEMPLATE reverse_iterator<iterator> reverse_iterator -# else -# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \ - typedef _STLP_STD::reverse_iterator<const_iterator> const_reverse_iterator; \ - typedef _STLP_STD::reverse_iterator<iterator> reverse_iterator -# endif -#else /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ -# if defined (_STLP_MSVC50_COMPATIBILITY) -# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \ - typedef _STLP_STD::__reverse_iterator<const_iterator, value_type, const_reference, \ - const_pointer, difference_type> const_reverse_iterator; \ - typedef _STLP_STD::__reverse_iterator<iterator, value_type, reference, pointer, difference_type> \ - reverse_iterator -# else -# define _STLP_DECLARE_REVERSE_ITERATORS(__reverse_iterator) \ - typedef _STLP_STD::__reverse_iterator<const_iterator, value_type, const_reference, \ - difference_type> const_reverse_iterator; \ - typedef _STLP_STD::__reverse_iterator<iterator, value_type, \ - reference, difference_type> \ - reverse_iterator -# endif -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#define _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS \ - _STLP_DECLARE_REVERSE_ITERATORS(reverse_bidirectional_iterator) -#define _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS \ - _STLP_DECLARE_REVERSE_ITERATORS(reverse_iterator) - -#define __IMPORT_CONTAINER_TYPEDEFS(_Super) \ - typedef typename _Super::value_type value_type; \ - typedef typename _Super::size_type size_type; \ - typedef typename _Super::difference_type difference_type; \ - typedef typename _Super::reference reference; \ - typedef typename _Super::const_reference const_reference; \ - typedef typename _Super::pointer pointer; \ - typedef typename _Super::const_pointer const_pointer; \ - typedef typename _Super::allocator_type allocator_type; - - -#define __IMPORT_ITERATORS(_Super) \ - typedef typename _Super::iterator iterator; \ - typedef typename _Super::const_iterator const_iterator; - -#define __IMPORT_REVERSE_ITERATORS(_Super) \ - typedef typename _Super::const_reverse_iterator const_reverse_iterator; \ - typedef typename _Super::reverse_iterator reverse_iterator; - -#define __IMPORT_SUPER_COPY_ASSIGNMENT(__derived_name, _Self, _SUPER) \ - __derived_name(const _Super& __x) : _SUPER(__x) {} \ - _Self& operator=(const _Super& __x) { \ - *(_Super*)this = __x; \ - return *this; \ - } \ - __derived_name(const _Self& __x) : _SUPER(__x) {} \ - _Self& operator=(const _Self& __x) { \ - *(_Super*)this = __x; \ - return *this; \ - } - -#define __IMPORT_WITH_ITERATORS(_Super) \ - __IMPORT_CONTAINER_TYPEDEFS(_Super) __IMPORT_ITERATORS(_Super) - -#define __IMPORT_WITH_REVERSE_ITERATORS(_Super) \ - __IMPORT_WITH_ITERATORS(_Super) __IMPORT_REVERSE_ITERATORS(_Super) - -#if defined (_STLP_TRIVIAL_CONSTRUCTOR_BUG) -# define __TRIVIAL_CONSTRUCTOR(__type) __type() {} -#else -# define __TRIVIAL_CONSTRUCTOR(__type) -#endif - -#if defined (_STLP_TRIVIAL_DESTRUCTOR_BUG) -# define __TRIVIAL_DESTRUCTOR(__type) ~__type() {} -#else -# define __TRIVIAL_DESTRUCTOR(__type) -#endif - -#define __TRIVIAL_STUFF(__type) \ - __TRIVIAL_CONSTRUCTOR(__type) __TRIVIAL_DESTRUCTOR(__type) - -#if defined (_STLP_HAS_NO_EXCEPTIONS) -# define _STLP_NO_EXCEPTIONS -#endif - -#if !defined (_STLP_DONT_USE_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTIONS) && !defined (_STLP_USE_EXCEPTIONS) -# define _STLP_USE_EXCEPTIONS -#endif - -#if defined (_STLP_USE_EXCEPTIONS) -# define _STLP_TRY try -# define _STLP_CATCH_ALL catch(...) -# ifndef _STLP_THROW -# define _STLP_THROW(x) throw x -# endif -# define _STLP_RETHROW throw - -# define _STLP_UNWIND(action) catch(...) { action; throw; } - -# ifdef _STLP_THROW_RETURN_BUG -# define _STLP_RET_AFTER_THROW(data) return data; -# else -# define _STLP_RET_AFTER_THROW(data) -# endif - -/* We do not use exception throw specifications unless we are forced to */ -# if !defined (_STLP_THROWS) -# define _STLP_THROWS(x) -# endif -# if !defined (_STLP_NOTHROW) -# define _STLP_NOTHROW -# endif -#else -# define _STLP_TRY -# define _STLP_CATCH_ALL if (false) -# ifndef _STLP_THROW -# define _STLP_THROW(x) -# endif -# define _STLP_RETHROW {} -# define _STLP_UNWIND(action) -# define _STLP_THROWS(x) -# define _STLP_NOTHROW -# define _STLP_RET_AFTER_THROW(data) -#endif - -/* - * Here we check _STLP_NO_EXCEPTIONS which means that the compiler has no - * exception support but not the _STLP_USE_EXCEPTIONS which simply means - * that the user do not want to use them. - */ -#if !defined (_STLP_NO_EXCEPTIONS) && !defined (_STLP_NO_EXCEPTION_SPEC) -# define _STLP_THROWS_INHERENTLY(x) throw x -# define _STLP_NOTHROW_INHERENTLY throw() -#else -# define _STLP_THROWS_INHERENTLY(x) -# define _STLP_NOTHROW_INHERENTLY -#endif - -/* STLport function not returning are functions that throw so we translate - * the noreturn functions in throwing functions taking also into account - * exception support activation. - */ -#if defined (_STLP_NORETURN_FUNCTION) && !defined (_STLP_NO_EXCEPTIONS) && \ - !defined (_STLP_FUNCTION_THROWS) -# define _STLP_FUNCTION_THROWS _STLP_NORETURN_FUNCTION -#else -# define _STLP_FUNCTION_THROWS -#endif - -#if defined(_STLP_NO_BOOL) -# if (defined (__IBMCPP__) && (__IBMCPP__ < 400)) && ! defined (_AIX) -# include <isynonym.hpp> -# if defined (__OS400__) -typedef int bool; -# elif !( defined (__xlC__) || defined (_AIX)) -typedef Boolean bool; -# endif -# else -# if defined(_STLP_YVALS_H) -# include <yvals.h> -# else -# if defined (_STLP_DONT_USE_BOOL_TYPEDEF) -# define bool int -# else -typedef int bool; -# endif -# define true 1 -# define false 0 -# endif -# endif /* __IBMCPP__ */ -#else -# define _STLP_BOOL_KEYWORD 1 -#endif /* _STLP_NO_BOOL */ - -#ifndef _STLP_MPW_EXTRA_CONST -# define _STLP_MPW_EXTRA_CONST -#endif - -#ifndef _STLP_DEFAULTCHAR -# define _STLP_DEFAULTCHAR char -#endif - -#if defined (_STLP_DEBUG_ALLOC) && !defined (_STLP_ASSERTIONS) -# define _STLP_ASSERTIONS 1 -#endif - -/* uninitialized value filler */ -#ifndef _STLP_SHRED_BYTE -/* This value is designed to cause problems if an error occurs */ -# define _STLP_SHRED_BYTE 0xA3 -#endif /* _STLP_SHRED_BYTE */ - -/* shared library tune-up */ -#ifndef _STLP_IMPORT_DECLSPEC -# define _STLP_IMPORT_DECLSPEC -#endif - -/* a keyword used to instantiate export template */ -#ifndef _STLP_EXPORT_TEMPLATE_KEYWORD -# define _STLP_EXPORT_TEMPLATE_KEYWORD -#endif -#ifndef _STLP_IMPORT_TEMPLATE_KEYWORD -# define _STLP_IMPORT_TEMPLATE_KEYWORD -#endif - -#ifdef _STLP_USE_NO_IOSTREAMS -/* - * If we do not use iostreams we do not use the export/import - * techniques to avoid build of the STLport library. - */ -# undef _STLP_USE_DECLSPEC -/* We also undef USE_DYNAMIC_LIB macro as this macro add some code - * to use the dynamic (shared) STLport library for some platform/compiler - * configuration leading to problem when do not link to the STLport lib. - */ -# undef _STLP_USE_DYNAMIC_LIB -#endif - -#if defined (_STLP_DLLEXPORT_NEEDS_PREDECLARATION) && defined (_STLP_USE_DECLSPEC) -# if ! defined (_STLP_USE_TEMPLATE_EXPORT) -/* this setting turns on "extern template" extension use */ -# define _STLP_USE_TEMPLATE_EXPORT -# endif -# if defined (_STLP_DESIGNATED_DLL) && ! defined (_STLP_NO_FORCE_INSTANTIATE) -# define _STLP_NO_FORCE_INSTANTIATE -# endif -#endif - -#if defined (_STLP_DESIGNATED_DLL) /* This is a lib which will contain STLport exports */ -# define _STLP_EXPORT _STLP_EXPORT_TEMPLATE_KEYWORD -#else -# define _STLP_EXPORT _STLP_IMPORT_TEMPLATE_KEYWORD -#endif - -#ifndef _STLP_EXPORT_TEMPLATE -# define _STLP_EXPORT_TEMPLATE _STLP_EXPORT template -#endif - -#if defined (_STLP_USE_DECLSPEC) /* using export/import technique */ - -# ifndef _STLP_EXPORT_DECLSPEC -# define _STLP_EXPORT_DECLSPEC -# endif -# ifndef _STLP_IMPORT_DECLSPEC -# define _STLP_IMPORT_DECLSPEC -# endif -# ifndef _STLP_CLASS_EXPORT_DECLSPEC -# define _STLP_CLASS_EXPORT_DECLSPEC -# endif -# ifndef _STLP_CLASS_IMPORT_DECLSPEC -# define _STLP_CLASS_IMPORT_DECLSPEC -# endif -# if defined (_STLP_DESIGNATED_DLL) /* This is a lib which will contain STLport exports */ -# define _STLP_DECLSPEC _STLP_EXPORT_DECLSPEC -# define _STLP_CLASS_DECLSPEC _STLP_CLASS_EXPORT_DECLSPEC -# else -# define _STLP_DECLSPEC _STLP_IMPORT_DECLSPEC /* Other modules, importing STLport exports */ -# define _STLP_CLASS_DECLSPEC _STLP_CLASS_IMPORT_DECLSPEC -# endif - -#else /* Not using DLL export/import specifications */ - -# define _STLP_DECLSPEC -# define _STLP_CLASS_DECLSPEC - -#endif - -#define _STLP_EXPORT_TEMPLATE_CLASS _STLP_EXPORT template class _STLP_CLASS_DECLSPEC - -#if defined (_STLP_MSVC) || defined (__ICL) -# define _STLP_STATIC_MEMBER_DECLSPEC -#else -# define _STLP_STATIC_MEMBER_DECLSPEC _STLP_DECLSPEC -#endif - -#if !defined (_STLP_CALL) -# define _STLP_CALL -#endif - -#ifndef _STLP_USE_NO_IOSTREAMS - -# if defined (__DECCXX) && ! defined (__USE_STD_IOSTREAM) -# define __USE_STD_IOSTREAM -# endif - -/* We only need to expose details of streams implementation - if we use non-standard i/o or are building STLport*/ -# if defined (__BUILDING_STLPORT) || defined (_STLP_NO_FORCE_INSTANTIATE) || !defined(_STLP_NO_CUSTOM_IO) -# define _STLP_EXPOSE_STREAM_IMPLEMENTATION 1 -# endif - -/* We only need to expose details of global implementation if we are building STLport - or have not instantiated everything in the lib */ -# if defined (__BUILDING_STLPORT) || defined (_STLP_NO_FORCE_INSTANTIATE) -# undef _STLP_EXPOSE_GLOBALS_IMPLEMENTATION -# define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION 1 -# endif - -#else /* _STLP_USE_NO_IOSTREAMS */ -/* when we are not using SGI iostreams, we must expose globals, but not streams implementation */ -# define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION -#endif /* _STLP_USE_NO_IOSTREAMS */ - -#ifdef _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS -# define _STLP_PSPEC2(t1,t2) < t1,t2 > -# define _STLP_PSPEC3(t1,t2,t3) < t1,t2,t3 > -#else -# define _STLP_PSPEC2(t1,t2) /* nothing */ -# define _STLP_PSPEC3(t1,t2,t3) /* nothing */ -#endif - -/* Activation of the partial template workaround: - */ -#if !defined(_STLP_DONT_USE_PARTIAL_SPEC_WRKD) &&\ - (!defined(_STLP_CLASS_PARTIAL_SPECIALIZATION) || !defined(_STLP_FUNCTION_TMPL_PARTIAL_ORDER)) -# define _STLP_USE_PARTIAL_SPEC_WORKAROUND -#endif - -#ifndef _STLP_USE_NO_IOSTREAMS -# define _STLP_NEW_IO_NAMESPACE _STLP_STD -# define _STLP_NO_WIDE_STREAMS _STLP_NO_WCHAR_T -#endif - -#ifdef _STLP_USE_SEPARATE_RELOPS_NAMESPACE -# define _STLP_RELOPS_OPERATORS(_TMPL, _TP) \ -_TMPL inline bool _STLP_CALL operator!=(const _TP& __x, const _TP& __y) {return !(__x == __y);}\ -_TMPL inline bool _STLP_CALL operator>(const _TP& __x, const _TP& __y) {return __y < __x;}\ -_TMPL inline bool _STLP_CALL operator<=(const _TP& __x, const _TP& __y) { return !(__y < __x);}\ -_TMPL inline bool _STLP_CALL operator>=(const _TP& __x, const _TP& __y) { return !(__x < __y);} -#else -# define _STLP_RELOPS_OPERATORS(_TMPL, _TP) -#endif - -#if defined ( _STLP_USE_ABBREVS ) -# include <stl/_abbrevs.h> -#endif - -/* A really useful macro */ -#define _STLP_ARRAY_SIZE(A) sizeof(A) / sizeof(A[0]) -#define _STLP_ARRAY_AND_SIZE(A) A, sizeof(A) / sizeof(A[0]) - -/* some cleanup */ -#undef _STLP_DONT_USE_BOOL_TYPEDEF -#undef _STLP_YVALS_H -#undef _STLP_LOOP_INLINE_PROBLEMS -#undef _STLP_NEED_EXPLICIT -#undef _STLP_NEED_TYPENAME -#undef _STLP_NO_NEW_STYLE_CASTS -#undef __AUTO_CONFIGURED - -#endif /* _STLP_FEATURES_H */ diff --git a/WebKit/android/stlport/stl/config/host.h b/WebKit/android/stlport/stl/config/host.h deleted file mode 100644 index 95b71a3..0000000 --- a/WebKit/android/stlport/stl/config/host.h +++ /dev/null @@ -1,279 +0,0 @@ -/* - * This file defines site configuration. - */ - -/* - * _STLP_NO_THREADS: if defined, STLport don't use any - * multithreading support. Synonym is _NOTHREADS - */ -/* -#define _NOTHREADS -#define _STLP_NO_THREADS -*/ - -/* _PTHREADS: if defined, use POSIX threads for multithreading support. */ -/* -#define _PTHREADS -*/ - -/* compatibility section - */ - -#if (defined (_STLP_NOTHREADS) || defined (_STLP_NO_THREADS) || defined (NOTHREADS)) -# if !defined (_NOTHREADS) -# define _NOTHREADS -# endif -# if !defined (_STLP_NO_THREADS) -# define _STLP_NO_THREADS -# endif -#endif - -#if !defined(_STLP_USE_DYNAMIC_LIB) && !defined(_STLP_USE_STATIC_LIB) -/* - * Turn _STLP_USE_DYNAMIC_LIB to enforce use of .dll version of STLport library. - * NOTE: please do that only if you know what you are doing! - * Changing default will require you to change makefiles in "build" accordingly - * and to rebuild STLPort library! - * On UNIX, this has no effect, see build/lib/README for make tags. - * See STLport configuration file (build/lib/configure.bat) for help in building - * the require library versions. - */ -/* -#define _STLP_USE_DYNAMIC_LIB -*/ - -/* - * Turn _STLP_USE_STATIC_LIB to enforce use of static version of STLport library. - * NOTE: please do that only if you know what you are doing! - * Changing default will require you to change makefile in "build" accordingly - * and to rebuild STLPort library! - * On UNIX, this has no effect, see build/lib/README for make tags. - * See STLport configuration file (build/lib/configure.bat) for help in building - * the require library versions. - */ -/* -#define _STLP_USE_STATIC_LIB -*/ -#endif - -/* - * Signal STLport that we are using the cygwin distrib with the -mno-cygwin option. - * This is similar to a mingw environment except that relative path to native headers - * is different, this is why we need this macro. - */ -/* -#define _STLP_NO_CYGWIN - */ - -/* - * Edit relative path below (or put full path) to get native - * compiler vendor's headers included. Default is "../include" - * for _STLP_NATIVE_INCLUDE_PATH, default for other macros is - * _STLP_NATIVE_INCLUDE_PATH. - * Hint: never install STLport in the directory that ends with "include" - */ -/* -#undef _STLP_NATIVE_INCLUDE_PATH -#define _STLP_NATIVE_INCLUDE_PATH ../include -*/ -/* same for C library headers like <cstring> */ -/* -#undef _STLP_NATIVE_CPP_C_INCLUDE_PATH -#define _STLP_NATIVE_CPP_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH -*/ -/* same for C headers like <string.h> */ -/* -#undef _STLP_NATIVE_C_INCLUDE_PATH -#define _STLP_NATIVE_C_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH -*/ -/* Some compilers locate basic C++ runtime support headers (<new>, <typeinfo>, <exception>) in separate directory */ -/* -#undef _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH -#define _STLP_NATIVE_CPP_RUNTIME_INCLUDE_PATH _STLP_NATIVE_INCLUDE_PATH -*/ - -/* - * If namespases available, STLport use own namespace (and masquerade - * it as std). Disable own namespace may cause undefined behaviour. - */ -/* -#define _STLP_NO_OWN_NAMESPACE 1 -*/ - -/* - * Uncomment _STLP_LEAKS_PEDANTIC to force deallocation of ALL allocated - * memory chunks. Normally not required. But if you worry about quazi-leaks - * (may be reported by some leaks detection tools), use - * _STLP_LEAKS_PEDANTIC. It should be used with _STLP_USE_NEWALLOC or - * _STLP_USE_MALLOC (see below), the default node_alloc allocator also clean - * its internal memory pool but only if STLport is used as a dynamic library - * under Win32 (using MSVC like compilers). - */ -/* -#define _STLP_LEAKS_PEDANTIC 1 -*/ - -/* - * Uncomment _STLP_USE_NEWALLOC to force allocator<T> to use plain "new" - * instead of STLport optimized node allocator engine. - */ -/* -#define _STLP_USE_NEWALLOC 1 -*/ - -/* - * Uncomment _STLP_USE_MALLOC to force allocator<T> to use plain "malloc" - * instead of STLport optimized node allocator engine. - */ -/* -#define _STLP_USE_MALLOC 1 -*/ - -/* - * Uncomment _STLP_USE_PERTHREAD_ALLOC to force allocator<T> to use - * a specific implementation targetting the massively multi-threaded - * environment. The implementation is based on the POSIX pthread - * interface. - */ -/* -#define _STLP_USE_PERTHREAD_ALLOC 1 -*/ - -/* - * Set _STLP_DEBUG_ALLOC to use allocators that perform memory debugging, - * such as padding/checking for memory consistency - */ -/* -#define _STLP_DEBUG_ALLOC 1 -*/ - -/* - * For compiler not supporting partial template specialization or ordering of - * template functions STLport implement a workaround based on inheritance - * detection. This inheritance can introduce trouble in client code when - * a user class derived a STL container (which is not advised as STL containers - * do not have virtual destructors). To disable this workaround turn this macro on: - */ -/* -#define _STLP_DONT_USE_PARTIAL_SPEC_WRKD 1 -*/ - -/* - * Uncomment this to force all debug diagnostic to be directed through a - * user-defined global function: - * void __stl_debug_message(const char * format_str, ...) - * instead of predefined STLport routine. - * This allows you to take control of debug message output. - * Default routine calls fprintf(stderr,...) - * Note : If you set this macro, you must supply __stl_debug_message - * function definition somewhere. - */ -/* -#define _STLP_DEBUG_MESSAGE 1 -*/ - -/* - * Uncomment this to force all failed assertions to be executed through - * user-defined global function: - * void __stl_debug_terminate(void). This allows - * you to take control of assertion behaviour for debugging purposes. - * Default routine calls _STLP_ABORT(). - * Note : If you set this macro, you must supply __stl_debug_terminate - * function definition somewhere. - */ -/* -#define _STLP_DEBUG_TERMINATE 1 -*/ - -/* - * Uncomment that to disable exception handling code - */ -/* -#define _STLP_DONT_USE_EXCEPTIONS 1 -*/ - -/* - * _STLP_NO_NAMESPACES: if defined, don't put the library in namespace - * stlport:: or std::, even if the compiler supports namespaces - */ -/* -#define _STLP_NO_NAMESPACES 1 -*/ - -/*========================================================== - * Compatibility section - *==========================================================*/ - -/* - * Use abbreviated class names for linker benefit (don't affect interface). - * This option is obsolete, but should work in this release. - * - */ -/* -#define _STLP_USE_ABBREVS -*/ - -/* - * This definition precludes STLport reverse_iterator to be compatible with - * other parts of MSVC library. (With partial specialization, it just - * has no effect). - * Use it _ONLY_ if you use SGI-style reverse_iterator<> template explicitly - */ -/* -#define _STLP_NO_MSVC50_COMPATIBILITY 1 -*/ - -/* - * _STLP_USE_RAW_SGI_ALLOCATORS is a hook so that users can disable use of - * allocator<T> as default parameter for containers, and use SGI - * raw allocators as default ones, without having to edit library headers. - * Use of this macro is strongly discouraged. - */ -/* -#define _STLP_USE_RAW_SGI_ALLOCATORS 1 -*/ - -/* - * Use obsolete overloaded template functions iterator_category(), value_type(), distance_type() - * for querying iterator properties. Please note those names are non-standard and are not guaranteed - * to be used by every implementation. However, this setting is on by default when partial specialization - * is not implemented in the compiler and cannot be simulated (only if _STLP_NO_ANACHRONISMS is not set). - * Use of those interfaces for user-defined iterators is strongly discouraged: - * please use public inheritance from iterator<> template to achieve desired effect. - * Second form is to disable old-style queries in any case. - */ -/* -#define _STLP_USE_OLD_HP_ITERATOR_QUERIES -#define _STLP_NO_OLD_HP_ITERATOR_QUERIES -*/ - - -/* - * On systems with support of large files (_LARGEFILE_SOURCE, - * _LARGEFILE64_SOURCE defined) we will use 64-bit file offset, even if - * __USE_FILE_OFFSET64 or _FILE_OFFSET_BITS not defined or _FILE_OFFSET_BITS - * less than 64. In the last case sizeof(std::streamoff) may not be equal to - * sizeof(off_t), if you want to force equal size of off_t and streamoff, - * uncomment macro below. But pay attention, this has influence on libstlport - * and in future usage it may cause conflict with defined _FILE_OFFSET_BITS macro. - */ - -/* -#define _STLP_USE_DEFAULT_FILE_OFFSET -*/ - -/*==========================================================================*/ - -/* This section contains swithes which should be off by default, - * but so few compilers would have it undefined, so that we set them here, - * with the option to be turned off later in compiler-specific file - */ - -#define _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -#define _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT - -/* - Local Variables: - mode:C++ - End: -*/ diff --git a/WebKit/android/stlport/stl/config/stl_confix.h b/WebKit/android/stlport/stl/config/stl_confix.h deleted file mode 100644 index a1be1f2..0000000 --- a/WebKit/android/stlport/stl/config/stl_confix.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* - * STLport configuration file - * It is internal STLport header - DO NOT include it directly - * Purpose of this file : to define STLport settings that depend on - * compiler flags or can be otherwise missed - * - */ - -#ifndef _STLP_CONFIX_H -# define _STLP_CONFIX_H - -/* If, by any chance, C compiler gets there, try to help it to pass smoothly */ -# if ! defined (__cplusplus) && ! defined (_STLP_HAS_NO_NAMESPACES) -# define _STLP_HAS_NO_NAMESPACES -# endif - -# if defined(__MINGW32__) -# define _STLP_NO_DRAND48 -# endif - -/* Modena C++ library */ -#if defined (__MWERKS__) && __MWERKS__ <= 0x2303 || (defined (__KCC) && __KCC_VERSION < 3400) -# include <mcompile.h> -# define _STLP_USE_MSIPL 1 -# if defined (__KCC) || (defined(__MSL_CPP__) && \ - ( (__MSL_CPP__ >= 0x5000 && defined( _MSL_NO_MESSAGE_FACET )) || \ - (__MSL_CPP__ < 0x5000 && defined( MSIPL_NL_TYPES ))) \ - ) -# define _STLP_NO_NATIVE_MESSAGE_FACET 1 -# endif -#endif - -/* common switches for EDG front-end */ -# if defined (__EDG_SWITCHES) -# if !(defined(_TYPENAME) || defined (_TYPENAME_IS_KEYWORD)) -# undef _STLP_NEED_TYPENAME -# define _STLP_NEED_TYPENAME 1 -# endif -# if !defined(_WCHAR_T_IS_KEYWORD) -# undef _STLP_NO_WCHAR_T -# define _STLP_NO_WCHAR_T 1 -# endif -# ifndef _PARTIAL_SPECIALIZATION_OF_CLASS_TEMPLATES -# undef _STLP_NO_CLASS_PARTIAL_SPECIALIZATION -# define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 -# endif -# ifndef _MEMBER_TEMPLATES -# undef _STLP_NO_MEMBER_TEMPLATES -# define _STLP_NO_MEMBER_TEMPLATES 1 -# undef _STLP_NO_MEMBER_TEMPLATE_CLASSES -# define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 -# endif -# if !defined(_MEMBER_TEMPLATE_KEYWORD) -# undef _STLP_NO_MEMBER_TEMPLATE_KEYWORD -# define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 -# endif -# if !defined (__EXCEPTIONS) && ! defined (_EXCEPTIONS) -# undef _STLP_HAS_NO_EXCEPTIONS -# define _STLP_HAS_NO_EXCEPTIONS -# endif -# undef __EDG_SWITCHES -# endif /* EDG */ -#endif diff --git a/WebKit/android/stlport/stl/config/stl_gcce.h b/WebKit/android/stlport/stl/config/stl_gcce.h deleted file mode 100644 index e5f7040..0000000 --- a/WebKit/android/stlport/stl/config/stl_gcce.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef _STLP_WINSCW_H -#define _STLP_WINSCW_H - -#define _STLP_COMPILER "GCCE" - -//========================================================== - -# define _STLP_LONG_LONG long long - -#ifdef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -# undef _STLP_NO_UNCAUGHT_EXCEPT_SUPPORT -#endif - -#ifdef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT -# undef _STLP_NO_UNEXPECTED_EXCEPT_SUPPORT -#endif - -//========================================================== - -#endif diff --git a/WebKit/android/stlport/stl/config/stl_mycomp.h b/WebKit/android/stlport/stl/config/stl_mycomp.h deleted file mode 100644 index 710d5fa..0000000 --- a/WebKit/android/stlport/stl/config/stl_mycomp.h +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* - * Purpose of this file : - * - * A list of COMPILER-SPECIFIC portion of STLport settings. - * This file is provided to help in manual configuration - * of STLport. This file is being included by stlcomp.h - * when STLport is unable to identify your compiler. - * Please remove the error diagnostic below before adjusting - * macros. - * - */ -#ifndef _STLP_MYCOMP_H -#define _STLP_MYCOMP_H - -#error "Your compiler version is not recognized by STLport. Please edit <stlport/stl/config/stl_mycomp.h>" - -//========================================================== - -// the values choosen here as defaults try to give -// maximum functionality on the most conservative settings - -// Mostly correct guess, change it for Alpha (and other environments -// that has 64-bit "long") -// # define _STLP_UINT32_T unsigned long - -// Disables wchar_t functionality -// # define _STLP_NO_WCHAR_T 1 - -// Define if wchar_t is not a unique type, and is actually a typedef to unsigned short. -// # define _STLP_WCHAR_T_IS_USHORT 1 - -// Uncomment if long long is available -// # define _STLP_LONG_LONG long long - -// Uncomment if long double is not available -// # define _STLP_NO_LONG_DOUBLE 1 - -// Uncomment this if your compiler does not support "typename" keyword -// # define _STLP_NEED_TYPENAME 1 - -// Uncomment this if your compiler does not support "mutable" keyword -// # define _STLP_NEED_MUTABLE 1 - -// Uncomment this if your compiler does not support "explicit" keyword -// # define _STLP_NEED_EXPLICIT 1 - -// Uncomment if new-style-casts like const_cast<> are not available -// # define _STLP_NO_NEW_STYLE_CASTS 1 - -// Uncomment this if your compiler does not have "bool" type -// # define _STLP_NO_BOOL 1 - -// Uncomment this if your compiler does not have "bool" type, but has "bool" keyword reserved -// # define _STLP_DONT_USE_BOOL_TYPEDEF 1 - -// Uncomment this if your compiler does not have "bool" type, but defines "bool" in <yvals.h> -// # define _STLP_YVALS_H 1 - -// Uncomment this if your compiler has limited or no default template arguments for classes -// # define _STLP_LIMITED_DEFAULT_TEMPLATES 1 - -// Uncomment this if your compiler support only complete (not dependent on other parameters) -// types as default parameters for class templates -// # define _STLP_DEFAULT_TYPE_PARAM 1 - -// Uncomment this if your compiler do not support default parameters in template class methods -// # define _STLP_DONT_SUP_DFLT_PARAM 1 - -// Uncomment this if your compiler has problem with not-type -// default template parameters -// # define _STLP_NO_DEFAULT_NON_TYPE_PARAM 1 - -// Define if compiler has -// trouble with functions getting non-type-parameterized classes as parameters -// # define _STLP_NON_TYPE_TMPL_PARAM_BUG 1 - -// Uncomment this if your compiler lacks static data members. -// Uncomment next line if your compiler supports __attribute__((weak)) -// # define _STLP_NO_STATIC_TEMPLATE_DATA 1 -// # define _STLP_WEAK_ATTRIBUTE 1 - -// Uncomment this if your compiler does not support namespaces -// # define _STLP_HAS_NO_NAMESPACES 1 - -// Uncomment if "using" keyword does not work with template types -// # define _STLP_BROKEN_USING_DIRECTIVE 1 - -// Uncomment this if your compiler does not support exceptions -// # define _STLP_HAS_NO_EXCEPTIONS 1 - -// Uncomment this when you are able to detect that the user do not -// want to use the exceptions feature. -// # define _STLP_DONT_USE_EXCEPTIONS 1 - -// Uncomment this if your compiler does not support exception specifications -// # define _STLP_NO_EXCEPTION_SPEC - -// Define this if your compiler requires return statement after throw() -// # define _STLP_THROW_RETURN_BUG 1 - -// Define this if your compiler do not support return of void -// # define _STLP_DONT_RETURN_VOID 1 - -// Header <new> that comes with the compiler -// does not define bad_alloc exception -// # define _STLP_NO_BAD_ALLOC 1 - -// Define this if your compiler do not throw bad_alloc from the new operator -// # define _STLP_NEW_DONT_THROW_BAD_ALLOC 1 - -// Uncomment if member template methods are not available -// # define _STLP_NO_MEMBER_TEMPLATES 1 - -// Uncomment if member template classes are not available -// # define _STLP_NO_MEMBER_TEMPLATE_CLASSES 1 - -// Uncomment if your compiler do not support the std::allocator rebind technique -// This is a special case of bad member template classes support, it is automatically -// defined if _STLP_NO_MEMBER_TEMPLATE_CLASSES is defined. -// # define _STLP_DONT_SUPPORT_REBIND_MEMBER_TEMPLATE 1 - -// Uncomment if no "template" keyword should be used with member template classes -// # define _STLP_NO_MEMBER_TEMPLATE_KEYWORD 1 - -// Uncomment if friend member templates are not available -// # define _STLP_NO_FRIEND_TEMPLATES 1 - -// Compiler does not accept friend declaration qualified with namespace name. -// # define _STLP_NO_QUALIFIED_FRIENDS 1 - -// Uncomment if partial specialization is not available -// # define _STLP_NO_CLASS_PARTIAL_SPECIALIZATION 1 - -// Define if class being partially specialized require full name (template parameters) -// of itself for method declarations -// # define _STLP_PARTIAL_SPEC_NEEDS_TEMPLATE_ARGS - -// Compiler has problem with qualified specializations (cont int, volatile int...) -// # define _STLP_QUALIFIED_SPECIALIZATION_BUG - -// Compiler has problems specializing members of partially -// specialized class -// # define _STLP_MEMBER_SPECIALIZATION_BUG - -// Uncomment if partial order of template functions is not available -// # define _STLP_NO_FUNCTION_TMPL_PARTIAL_ORDER 1 - -// Uncomment if specialization of methods is not allowed -// # define _STLP_NO_METHOD_SPECIALIZATION 1 - -// Uncomment if full specialization does not use partial spec. syntax : template <> struct .... -// # define _STLP_NO_PARTIAL_SPECIALIZATION_SYNTAX 1 - -// Uncomment if compiler does not support explicit template arguments for functions -// # define _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS - -// Uncomment this if your compiler can't inline while(), for() -// # define _STLP_LOOP_INLINE_PROBLEMS 1 - -// Define if the compiler fails to match a template function argument of base -// # define _STLP_BASE_MATCH_BUG 1 - -// Define if the compiler fails to match a template function argument of base -// (non-template) -//# define _STLP_NONTEMPL_BASE_MATCH_BUG 1 - -// Define if the compiler rejects outline method definition -// explicitly taking nested types/typedefs -// # define _STLP_NESTED_TYPE_PARAM_BUG 1 - -// Compiler requires typename keyword on outline method definition -// explicitly taking nested types/typedefs -// #define _STLP_TYPENAME_ON_RETURN_TYPE - -// Define if the baseclass typedefs not visible from outside -// # define _STLP_BASE_TYPEDEF_OUTSIDE_BUG 1 - -// if your compiler have serious problems with typedefs, try this one -// # define _STLP_BASE_TYPEDEF_BUG 1 - -// Uncomment if getting errors compiling mem_fun* adaptors -// # define _STLP_MEMBER_POINTER_PARAM_BUG 1 - -// * _STLP_STATIC_CONST_INIT_BUG: defined if the compiler can't handle a -// constant-initializer in the declaration of a static const data member -// of integer type. (See section 9.4.2, paragraph 4, of the C++ standard.) -// # define _STLP_STATIC_CONST_INIT_BUG - -// Define if default constructor for builtin integer type fails to initialize it to 0 -// In expression like new(&char) char(): -//# define _STLP_DEF_CONST_PLCT_NEW_BUG 1 -// In default function parameter like _M_method(_Tp __x = _Tp()) -//# define _STLP_DEF_CONST_DEF_PARAM_BUG 1 - -// Defined if constructor -// required to explicitly call member's default constructors for const objects -// # define _STLP_CONST_CONSTRUCTOR_BUG 1 - -// Defined if the compiler has trouble calling POD-types constructors/destructors -// # define _STLP_TRIVIAL_CONSTRUCTOR_BUG 1 -// # define _STLP_TRIVIAL_DESTRUCTOR_BUG 1 - -// Define if having problems specializing maps/sets with -// key type being const -// # define _STLP_MULTI_CONST_TEMPLATE_ARG_BUG - -// Uncomment this to disable -> operators on all iterators -// # define _STLP_NO_ARROW_OPERATOR 1 - -// Uncomment this to disble at() member functions for containers -// # define _STLP_NO_AT_MEMBER_FUNCTION 1 - -// Define this if compiler lacks <exception> header -// # define _STLP_NO_EXCEPTION_HEADER 1 - -// Uncomment this if your C library has lrand48() function -// # define _STLP_RAND48 1 - -// Uncomment if native new-style C library headers lile <cstddef>, etc are not available. -// # define _STLP_HAS_NO_NEW_C_HEADERS 1 - -// uncomment if new-style headers <new> is available -// # define _STLP_HAS_NEW_NEW_HEADER 1 - -// uncomment this if <iostream> and other STD headers put their stuff in ::namespace, -// not std:: -// # define _STLP_VENDOR_GLOBAL_STD - -// uncomment this if <cstdio> and the like put stuff in ::namespace, -// not std:: -// # define _STLP_VENDOR_GLOBAL_CSTD - -// uncomment this if your compiler consider as ambiguous a function imported within -// the stlport namespace and called without scope (:: or std::) -// # define _STLP_NO_USING_FOR_GLOBAL_FUNCTIONS 1 - -// uncomment this if your compiler define all the C math functions C++ additional -// overloads in ::namespace and not only in std::. -// # define _STLP_HAS_GLOBAL_C_MATH_FUNCTIONS 1 - -// uncomment this if your compiler has problem with the import of a namespace in -// an other one with the using namespace directive -// # define _STLP_USING_NAMESPACE_BUG 1 - -// Edit relative path below (or put full path) to get native -// compiler headers included. Default is "../include". -// C headers may reside in different directory, so separate macro is provided. -// Hint : never install STLport in the directory that ends with "include" -// # define _STLP_NATIVE_INCLUDE_PATH ../include -// # define _STLP_NATIVE_C_INCLUDE_PATH ../include -// # define _STLP_NATIVE_CPP_C_INCLUDE_PATH ../include - -// This macro constructs header path from directory and name. -// You may change it if your compiler does not understand "/". -// # define _STLP_MAKE_HEADER(path, header) <path/header> - -// This macro constructs native include header path from include path and name. -// You may have do define it if experimenting problems with preprocessor -// # define _STLP_NATIVE_HEADER(header) _STLP_MAKE_HEADER(_STLP_NATIVE_INCLUDE_PATH,header) - -// Same for C headers -// #define _STLP_NATIVE_C_HEADER(header) - -// uncomment this if your compiler/platform do not fully support the IEC 559 floating point -// numbers specification (also known as IEEE 754 in the US). This specification define the -// infinity and NaN (Not a Number) representation. Unit tests should tell you if your compiler -// support it. -// # define _STLP_NO_IEC559_SUPPORT 1 - - -//========================================================== -#endif diff --git a/WebKit/android/stlport/stl/config/stl_symbian.h b/WebKit/android/stlport/stl/config/stl_symbian.h deleted file mode 100644 index 46ee3c4..0000000 --- a/WebKit/android/stlport/stl/config/stl_symbian.h +++ /dev/null @@ -1,76 +0,0 @@ -#ifndef __stlp_config_symbian_h -#define __stlp_config_symbian_h - -//========================================================== - -#if defined(_WIN32) -# undef _WIN32 -#endif - -//========================================================== - -#ifdef __cplusplus -# include <e32cmn.h> -#endif - -//========================================================== - -#if defined(__MARM__) -# if !defined(_M_ARM) -# define _M_ARM 1 -# endif -#else -# if !defined(_M_IX86) -# define _M_IX86 1 -# endif -#endif - -//========================================================== - -#define __PIPS__ - -//========================================================== - -#define _STLP_HAS_NO_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_EXCEPTION_HEADER 1 -#define _STLP_NO_TYPEINFO 1 -#define _STLP_NO_VENDOR_STDLIB_L 1 -#define _STLP_USE_NOT_INIT_SEGMENT 1 -#define _STLP_NO_LONG_DOUBLE 1 -#define _STLP_NO_OWN_NAMESPACE 1 -#define _STLP_USE_MALLOC 1 -#define _STLP_USE_NO_EXTERN_RANGE_ERRORS 1 -#define _STLP_USE_SIMPLE_NODE_ALLOC 1 -#define _STLP_DONT_THROW_RANGE_ERRORS 1 -#define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION 1 -#define _STLP_USE_NEWALLOC 1 -#define _STLP_INLINE_EXCEPTION_CLASS 1 -#define _STLP_USE_PARTIAL_SPEC_WORKAROUND 1 -#define _STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS 1 -//========================================================== - -#ifdef _STLP_REAL_LOCALE_IMPLEMENTED -# undef _STLP_REAL_LOCALE_IMPLEMENTED -#endif - -//========================================================== - -#define _STLP_NATIVE_C_INCLUDE_PATH stdapis -//========================================================== - -#define _Locale_SPACE _CTYPE_S -#define _Locale_PRINT _CTYPE_R -#define _Locale_CNTRL _CTYPE_C -#define _Locale_UPPER _CTYPE_U -#define _Locale_LOWER _CTYPE_L -#define _Locale_ALPHA _CTYPE_A -#define _Locale_DIGIT _CTYPE_D -#define _Locale_PUNCT _CTYPE_P -#define _Locale_XDIGIT _CTYPE_X - -//========================================================== - -#endif diff --git a/WebKit/android/stlport/stl/config/stl_winscw.h b/WebKit/android/stlport/stl/config/stl_winscw.h deleted file mode 100644 index ca161e9..0000000 --- a/WebKit/android/stlport/stl/config/stl_winscw.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef _STLP_WINSCW_H -#define _STLP_WINSCW_H - -#define _STLP_COMPILER "WINSCW" - -#undef __MWERKS__ - -//========================================================== - -# define _STLP_WCHAR_T_IS_USHORT 1 -# define _STLP_LONG_LONG long long - -//========================================================== - -#endif diff --git a/WebKit/android/stlport/stl/config/user_config.h b/WebKit/android/stlport/stl/config/user_config.h deleted file mode 100644 index 07ac7f9..0000000 --- a/WebKit/android/stlport/stl/config/user_config.h +++ /dev/null @@ -1,311 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -/* - * Purpose of this file : - * - * To hold user-definable portion of STLport settings which may be overridden - * on per-project basis. - * Please note that if you use STLport iostreams (compiled library) then you have - * to use consistent settings when you compile STLport library and your project. - * Those settings are defined in host.h and have to be the same for a given - * STLport installation. - */ - - -/*========================================================== - * User-settable macros that control compilation: - * Features selection - *==========================================================*/ - -/* - * Use this switch for embedded systems where no iostreams are available - * at all. STLport own iostreams will also get disabled automatically then. - * You can either use STLport iostreams, or no iostreams. - * If you want iostreams, you have to compile library in ../build/lib - * and supply resulting library at link time. - */ -/* -#define _STLP_NO_IOSTREAMS 1 -*/ - -/* - * Set _STLP_DEBUG to turn the "Debug Mode" on. - * That gets you checked iterators/ranges in the manner - * of "Safe STL". Very useful for debugging. Thread-safe. - * Please do not forget to link proper STLport library flavor - * (e.g libstlportstlg.so or libstlportstlg.a) when you set this flag - * in STLport iostreams mode, namespace customization guaranty that you - * link to the right library. - */ -/* -#define _STLP_DEBUG 1 -*/ -/* - * You can also choose the debug level: - * STLport debug level: Default value - * Check only what the STLport implementation consider as invalid. - * It also change the iterator invalidation schema. - * Standard debug level: Check for all operations the standard consider as "undefined behavior" - * even if STlport implement it correctly. It also invalidates iterators - * more often. - */ -/* -#define _STLP_DEBUG_LEVEL _STLP_STLPORT_DBG_LEVEL -#define _STLP_DEBUG_LEVEL _STLP_STANDARD_DBG_LEVEL -*/ -/* When an inconsistency is detected by the 'safe STL' the program will abort. - * If you prefer an exception define the following macro. The thrown exception - * will be the Standard runtime_error exception. - */ -/* -#define _STLP_DEBUG_MODE_THROWS - */ - -/* - * _STLP_NO_CUSTOM_IO : define this if you do not instantiate basic_xxx iostream - * classes with custom types (which is most likely the case). Custom means types - * other than char, wchar_t, char_traits<> and allocator<> like - * basic_ostream<my_char_type, my_traits<my_char_type> > or - * basic_string<char, char_traits<char>, my_allocator > - * When this option is on, most non-inline template functions definitions for iostreams - * are not seen by the client which saves a lot of compile time for most compilers, - * also object and executable size for some. - * Default is off, just not to break compilation for those who do use those types. - * That also guarantees that you still use optimized standard i/o when you compile - * your program without optimization. Option does not affect STLport library build; you - * may use the same binary library with and without this option, on per-project basis. - */ -/* -#define _STLP_NO_CUSTOM_IO -*/ - -/* - * _STLP_NO_RELOPS_NAMESPACE: if defined, don't put the relational - * operator templates (>, <=. >=, !=) in namespace std::rel_ops, even - * if the compiler supports namespaces. - * Note : if the compiler do not support namespaces, those operators are not be provided by default, - * to simulate hiding them into rel_ops. This was proved to resolve many compiler bugs with ambiguity. - */ -/* -#define _STLP_NO_RELOPS_NAMESPACE 1 -*/ - -/* - * If _STLP_USE_OWN_NAMESPACE is in effect, STLport by default will try - * to rename std:: for the user to stlport::. If you do not want this feature, - * please define the following switch and then use stlport:: - */ -/* -#define _STLP_DONT_REDEFINE_STD 1 -*/ - -/* - * _STLP_WHOLE_NATIVE_STD : only meaningful in _STLP_USE_OWN_NAMESPACE mode. - * Normally, STLport only imports necessary components from native std:: namespace - - * those not yet provided by STLport (<iostream>, <complex>, etc.) - * and their dependencies (<string>, <stdexcept>). - * You might want everything from std:: being available in std:: namespace when you - * include corresponding STLport header (like STLport <map> provides std::map as well, etc.), - * if you are going to use both stlport:: and std:: components in your code. - * Otherwise this option is not recommended as it increases the size of your object files - * and slows down compilation. - */ -/* -#define _STLP_WHOLE_NATIVE_STD -*/ - -/* - * Use this option to catch uninitialized members in your classes. - * When it is set, construct() and destroy() fill the class storage - * with _STLP_SHRED_BYTE (see below). - * Note : _STLP_DEBUG and _STLP_DEBUG_ALLOC don't set this option automatically. - */ -/* -#define _STLP_DEBUG_UNINITIALIZED 1 -#define _STLP_DEBUG_ALLOC 1 -*/ - -/* - * Uncomment and provide a definition for the byte with which raw memory - * will be filled if _STLP_DEBUG_ALLOC or _STLP_DEBUG_UNINITIALIZED is defined. - * Choose a value which is likely to cause a noticeable problem if dereferenced - * or otherwise abused. A good value may already be defined for your platform. - */ -/* -#define _STLP_SHRED_BYTE 0xA3 -*/ - -/* - * This option is for gcc users only and only affects systems where native linker - * does not let gcc to implement automatic instantiation of static template data members/ - * It is being put in this file as there is no way to check if we are using GNU ld automatically, - * so it becomes user's responsibility. - */ -/* -#define _STLP_GCC_USES_GNU_LD -*/ - -/*========================================================== - * Compatibility section - *==========================================================*/ - -/* - * Define this macro to disable anachronistic constructs (like the ones used in HP STL and - * not included in final standard, etc. - */ -/* -#define _STLP_NO_ANACHRONISMS 1 -*/ - -/* - * Define this macro to disable STLport extensions (for example, to make sure your code will - * compile with some other implementation ) - */ -/* -#define _STLP_NO_EXTENSIONS 1 -*/ - -/* - * You should define this macro if compiling with MFC - STLport <stl/config/_windows.h> - * then include <afx.h> instead of <windows.h> to get synchronisation primitives - */ -/* -#define _STLP_USE_MFC 1 -*/ - -/* - * boris : this setting is here as we cannot detect precense of new Platform SDK automatically - * If you are using new PSDK with VC++ 6.0 or lower, - * please define this to get correct prototypes for InterlockedXXX functions - */ -/* -#define _STLP_NEW_PLATFORM_SDK 1 -*/ - -/* - * For the same reason as the one above we are not able to detect easily use - * of the compiler coming with the Platform SDK instead of the one coming with - * a Microsoft Visual Studio release. This change native C/C++ library location - * and implementation, please define this to get correct STLport configuration. - */ -/* -#define _STLP_USING_PLATFORM_SDK_COMPILER 1 -*/ - -/* - * Some compilers support the automatic linking feature. - * Uncomment the following if you prefer to specify the STLport library - * to link with yourself. - * For the moment, this feature is only supported and implemented within STLport - * by the Microsoft compilers. - */ -/* -#define _STLP_DONT_USE_AUTO_LINK 1 -*/ - -/* - * If you customize the STLport generated library names don't forget to give - * the motif you used during configuration here if you still want the auto link - * to work. (Do not remove double quotes in the macro value) - */ -/* -#define _STLP_LIB_NAME_MOTIF "???" - */ - -/* - * When using automatic linking (see above), output a message that tells the - * user which lib is getting linked via 'pragma message(..)'. - * This setting has no effect if automatic linking is not active. - */ -/* -#define _STLP_VERBOSE_AUTO_LINK 1 -*/ - -/* - * Use minimum set of default arguments on template classes that have more - * than one - for example map<>, set<>. - * This has effect only if _STLP_LIMITED_DEFAULT_TEMPLATES is on. - * If _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS is set, you'll be able to compile - * set<T> with those compilers, but you'll have to use __set__<T, less<T>> - * - * Affects : map<>, multimap<>, set<>, multiset<>, hash_*<>, - * queue<>, priority_queue<>, stack<>, istream_iterator<> - */ -/* -#define _STLP_MINIMUM_DEFAULT_TEMPLATE_PARAMS 1 -*/ - -/* - * The agregation of strings using the + operator is an expensive operation - * as it requires construction of temporary objects that need memory allocation - * and deallocation. The problem can be even more important if you are adding - * several strings together in a single expression. To avoid this problem STLport - * implement expression template. With this technique addition of 2 strings is not - * a string anymore but a temporary object having a reference to each of the - * original strings involved in the expression. This object carry information - * directly to the destination string to set its size correctly and only make - * a single call to the allocator. This technique also works for the addition of - * N elements where elements are basic_string, C string or a single character. - * The drawback can be longer compilation time and bigger executable size. - * STLport rebuild: Yes - */ -/* -#define _STLP_USE_TEMPLATE_EXPRESSION 1 -*/ - -/* - * By default the STLport basic_string implementation use a little static buffer - * (of 16 chars when writing this doc) to avoid systematically memory allocation - * in case of little basic_string. The drawback of such a method is bigger - * basic_string size and some performance penalty for method like swap. If you - * prefer systematical dynamic allocation turn on this macro. - * STLport rebuild: Yes - */ -/* -#define _STLP_DONT_USE_SHORT_STRING_OPTIM 1 -*/ - -/* - * To reduce the famous code bloat trouble due to the use of templates STLport grant - * a specialization of some containers for pointer types. So all instanciations - * of those containers with a pointer type will use the same implementation based on - * a container of void*. This feature has show very good result on object files size - * but after link phase and optimization you will only experiment benefit if you use - * many container with pointer types. - */ -/* -#define _STLP_USE_PTR_SPECIALIZATIONS 1 -*/ - -/* - * To achieve many different optimizations within the template implementations STLport - * uses some type traits technique. With this macro you can ask STLport to use the famous - * boost type traits rather than the internal one. The advantages are more compiler - * integration and a better support. If you only define this macro once the STLport has been - * built you just have to add the boost install path within your include path. If you want - * to use this feature at STLport built time you will have to define the - * STLP_BUILD_BOOST_PATH enrironment variable with the value of the boost library path. - */ -/* -#define _STLP_USE_BOOST_SUPPORT 1 -*/ - -/*==========================================================*/ - -/* - Local Variables: - mode: C++ - End: -*/ diff --git a/WebKit/android/stlport/stl/debug/_debug.c b/WebKit/android/stlport/stl/debug/_debug.c deleted file mode 100644 index f932a62..0000000 --- a/WebKit/android/stlport/stl/debug/_debug.c +++ /dev/null @@ -1,639 +0,0 @@ -/* - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_DEBUG_C -#define _STLP_DEBUG_C - -#if defined (_STLP_DEBUG) -#if defined (_STLP_THREADS) -# if !defined (_STLP_NEED_MUTABLE) -# define _STLP_ACQUIRE_LOCK(_Lock) _Lock._M_acquire_lock(); -# define _STLP_RELEASE_LOCK(_Lock) _Lock._M_release_lock(); -# else -# define _STLP_ACQUIRE_LOCK(_Lock) ((_STLP_mutex&)_Lock)._M_acquire_lock(); -# define _STLP_RELEASE_LOCK(_Lock) ((_STLP_mutex&)_Lock)._M_release_lock(); -# endif /* _STLP_NEED_MUTABLE */ -#else -# define _STLP_ACQUIRE_LOCK(_Lock) -# define _STLP_RELEASE_LOCK(_Lock) -#endif /* _STLP_THREADS */ - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -//========================================================== -// global non-inline functions -//========================================================== -// [ i1, i2) -#if !defined (__DMC__) -template <class _Iterator> -inline bool _STLP_CALL -__in_range_aux(const _Iterator& __it, const _Iterator& __first, - const _Iterator& __last, const random_access_iterator_tag &) { - return ( __it >= __first && - __it < __last); -} -#endif - -template <class _Iterator1, class _Iterator> -#if defined (_STLP_MSVC) && (_STLP_MSVC >= 1100) -inline bool _STLP_CALL __in_range_aux(_Iterator1 __it, const _Iterator& __first, -#else -inline bool _STLP_CALL __in_range_aux(const _Iterator1& __it, const _Iterator& __first, -#endif - const _Iterator& __last, const forward_iterator_tag &) { - _Iterator1 __i(__first); - for (; __i != __last && __i != __it; ++__i); - return (__i != __last); -} - -#if defined (_STLP_NONTEMPL_BASE_MATCH_BUG) -template <class _Iterator1, class _Iterator> -inline bool _STLP_CALL -__in_range_aux(const _Iterator1& __it, const _Iterator& __first, - const _Iterator& __last, const bidirectional_iterator_tag &) { - _Iterator1 __i(__first); - for (; __i != __last && __i != __it; ++__i); - return (__i != __last); -} -#endif - -template <class _Iterator> -bool _STLP_CALL __check_range_aux(const _Iterator& __first, const _Iterator& __last, - const __false_type& /*_IsIntegral*/) { - _STLP_VERBOSE_RETURN(__valid_range(__first,__last), _StlMsg_INVALID_RANGE ) - return true; -} - -template <class _Integral> -bool _STLP_CALL __check_range_aux(_Integral /*__first*/, _Integral /*__last*/, - const __true_type& /*_IsIntegral*/) -{ return true; } - -template <class _Iterator> -bool _STLP_CALL __check_range(const _Iterator& __first, const _Iterator& __last) { - typedef typename _IsIntegral<_Iterator>::_Ret _Integral; - return __check_range_aux(__first, __last, _Integral()); -} - -template <class _Iterator> -bool _STLP_CALL __check_range(const _Iterator& __it, - const _Iterator& __start, const _Iterator& __finish) { - _STLP_VERBOSE_RETURN(__in_range(__it, __start, __finish), - _StlMsg_NOT_IN_RANGE_1) - return true; -} - -template <class _Iterator> -bool _STLP_CALL __check_range(const _Iterator& __first, const _Iterator& __last, - const _Iterator& __start, const _Iterator& __finish) { - _STLP_VERBOSE_RETURN(__in_range(__first, __last, __start, __finish), - _StlMsg_NOT_IN_RANGE_2) - return true; -} - -template <class _Tp> -bool _STLP_CALL __check_ptr_range(const _Tp* __first, const _Tp* __last) { - _STLP_VERBOSE_RETURN((__first != 0 || __last == 0), _StlMsg_INVALID_ARGUMENT) - _STLP_VERBOSE_RETURN(__valid_range(__first, __last, random_access_iterator_tag()), - _StlMsg_INVALID_RANGE) - return true; -} - -//=============================================================== -template <class _Iterator> -void _STLP_CALL __invalidate_range(const __owned_list* __base, - const _Iterator& __first, - const _Iterator& __last) { - typedef __owned_link _L_type; - _STLP_ACQUIRE_LOCK(__base->_M_lock) - _L_type* __prev = __CONST_CAST(_L_type*, &__base->_M_node); - _L_type* __pos = __prev->_M_next; - - while (__pos != 0) { - if (!(&__first == __STATIC_CAST(_Iterator*, __pos) || &__last == __STATIC_CAST(_Iterator*, __pos)) && - __in_range_aux(__STATIC_CAST(_Iterator*, __pos)->_M_iterator, - __first._M_iterator, __last._M_iterator, - _STLP_ITERATOR_CATEGORY(__first, _Iterator))) { - __pos->_M_owner = 0; - __prev->_M_next = __pos->_M_next; - } - else { - __prev = __pos; - } - __pos = __prev->_M_next; - } - _STLP_RELEASE_LOCK(__base->_M_lock) -} - -template <class _Iterator> -void _STLP_CALL __invalidate_iterator(const __owned_list* __base, - const _Iterator& __it) { - typedef __owned_link _L_type; - _STLP_ACQUIRE_LOCK(__base->_M_lock) - _L_type* __prev = __CONST_CAST(_L_type*, &__base->_M_node); - _L_type* __pos = __prev->_M_next; - while (__pos != 0) { - // this requires safe iterators to be derived from __owned_link - if ((__pos != __STATIC_CAST(const _L_type*, &__it)) && - (__STATIC_CAST(_Iterator*, __pos)->_M_iterator == __it._M_iterator)) { - __pos->_M_owner = 0; - __prev->_M_next = __pos->_M_next; - } - else { - __prev = __pos; - } - __pos = __prev->_M_next; - } - _STLP_RELEASE_LOCK(__base->_M_lock) -} - -template <class _Iterator> -void _STLP_CALL __change_range_owner(const _Iterator& __first, - const _Iterator& __last, - const __owned_list* __dst) { - if (__first._Owner() == __dst) - return; - - typedef __owned_link _L_type; - // Check __stl_debug_engine<_Dummy>::_Swap_owners comments to see why there is no lock here - //_STLP_ACQUIRE_LOCK(__base->_M_lock) - __owned_list *__base = __CONST_CAST(__owned_list*, __first._Owner()); - _L_type* __src_prev = &__base->_M_node; - _L_type* __pos = __src_prev->_M_next; - _L_type* __dst_prev = __CONST_CAST(_L_type*, &__dst->_M_node); - - while (__pos != 0) { - if (!(&__first == __STATIC_CAST(_Iterator*, __pos) || &__last == __STATIC_CAST(_Iterator*, __pos)) && - __in_range_aux(__STATIC_CAST(_Iterator*, __pos)->_M_iterator, - __first._M_iterator, __last._M_iterator, - _STLP_ITERATOR_CATEGORY(__first, _Iterator))) { - __pos->_M_owner = __CONST_CAST(__owned_list*, __dst); - //remove __pos from __base: - __src_prev->_M_next = __pos->_M_next; - //add __pos to __dst: - __pos->_M_next = __dst_prev->_M_next; - __dst_prev->_M_next = __pos; - } - else { - __src_prev = __pos; - } - __pos = __src_prev->_M_next; - } - //_STLP_RELEASE_LOCK(__base->_M_lock) -} - -template <class _Iterator> -void _STLP_CALL __change_ite_owner(const _Iterator& __it, - const __owned_list* __dst) { - if (__it._Owner() == __dst) - return; - - typedef __owned_link _L_type; - // Check __stl_debug_engine<_Dummy>::_Swap_owners comments to see why there is no lock here - //_STLP_ACQUIRE_LOCK(__base->_M_lock) - __owned_list *__base = __CONST_CAST(__owned_list*, __it._Owner()); - _L_type* __prev = &__base->_M_node; - _L_type* __pos = __prev->_M_next; - _L_type* __dst_prev = __CONST_CAST(_L_type*, &__dst->_M_node); - - while (__pos != 0) { - // this requires safe iterators to be derived from __owned_link - if ((__pos != __STATIC_CAST(const _L_type*, &__it)) && - (__STATIC_CAST(_Iterator*, __pos)->_M_iterator == __it._M_iterator)) { - __pos->_M_owner = __CONST_CAST(__owned_list*, __dst); - //remove __pos from __base: - __prev->_M_next = __pos->_M_next; - //add __pos to __dst: - __pos->_M_next = __dst_prev->_M_next; - __dst_prev->_M_next = __pos; - } - else { - __prev = __pos; - } - __pos = __prev->_M_next; - } - //_STLP_RELEASE_LOCK(__base->_M_lock) -} - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -#endif /* _STLP_DEBUG */ - -#if defined (_STLP_EXPOSE_GLOBALS_IMPLEMENTATION) - -# ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -# endif - -//========================================================== -// .c section -// owned_list non-inline methods and global functions -//========================================================== - -# if defined (_STLP_ASSERTIONS) - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -# if !defined (_STLP_STRING_LITERAL) -# define _STLP_STRING_LITERAL(__x) __x -# endif - -# if defined (_STLP_USE_WIDE_INTERFACE) -// note: WinCE needs this to format single-byte strings in __stl_debug_engine::_Message -# define _STLP_PERCENT_S "%hs" -# else -# define _STLP_PERCENT_S "%s" -# endif /* _STLP_USE_WIDE_INTERFACE */ - -# define _STLP_MESSAGE_TABLE_BODY = { \ -_STLP_STRING_LITERAL("\n" _STLP_PERCENT_S "(%d): STL error: " _STLP_PERCENT_S "\n"), \ -_STLP_STRING_LITERAL(_STLP_PERCENT_S "(%d): STL assertion failure : " _STLP_PERCENT_S "\n" _STLP_ASSERT_MSG_TRAILER), \ -_STLP_STRING_LITERAL("\n" _STLP_PERCENT_S "(%d): STL error : " _STLP_PERCENT_S "\n" _STLP_PERCENT_S "(%d): STL assertion failure: " _STLP_PERCENT_S " \n" _STLP_ASSERT_MSG_TRAILER), \ -_STLP_STRING_LITERAL("Invalid argument to operation (see operation documentation)"), \ -_STLP_STRING_LITERAL("Taking an iterator out of destroyed (or otherwise corrupted) container"), \ -_STLP_STRING_LITERAL("Trying to extract an object out from empty container"),\ -_STLP_STRING_LITERAL("Past-the-end iterator could not be erased"), \ -_STLP_STRING_LITERAL("Index out of bounds"), \ -_STLP_STRING_LITERAL("Container doesn't own the iterator"), \ -_STLP_STRING_LITERAL("Container is owner of the iterator, but should not"), \ -_STLP_STRING_LITERAL("Uninitialized or invalidated (by mutating operation) iterator used"), \ -_STLP_STRING_LITERAL("Uninitialized or invalidated (by mutating operation) lefthand iterator in expression"), \ -_STLP_STRING_LITERAL("Uninitialized or invalidated (by mutating operation) righthand iterator in expression"), \ -_STLP_STRING_LITERAL("Iterators used in expression are from different owners"), \ -_STLP_STRING_LITERAL("Iterator could not be dereferenced (past-the-end ?)"), \ -_STLP_STRING_LITERAL("Range [first,last) is invalid"), \ -_STLP_STRING_LITERAL("Iterator is not in range [first,last)"), \ -_STLP_STRING_LITERAL("Range [first,last) is not in range [start,finish)"), \ -_STLP_STRING_LITERAL("The advance would produce invalid iterator"), \ -_STLP_STRING_LITERAL("Iterator is singular (advanced beyond the bounds ?)"), \ -_STLP_STRING_LITERAL("Invalid strict weak ordering predicate, if pred(a, b) then we should have !pred(b, a)"), \ -_STLP_STRING_LITERAL("Invalid equivalent predicate, if pred(a, b) then we should have pred(b, a)"), \ -_STLP_STRING_LITERAL("Memory block deallocated twice"), \ -_STLP_STRING_LITERAL("Deallocating a block that was never allocated"), \ -_STLP_STRING_LITERAL("Deallocating a memory block allocated for another type"), \ -_STLP_STRING_LITERAL("Size of block passed to deallocate() doesn't match block size"), \ -_STLP_STRING_LITERAL("Pointer underrun - safety margin at front of memory block overwritten"), \ -_STLP_STRING_LITERAL("Pointer overrrun - safety margin at back of memory block overwritten"), \ -_STLP_STRING_LITERAL("Attempt to dereference null pointer returned by auto_ptr::get()"), \ -_STLP_STRING_LITERAL("Memory allocation function returned a wrongly align memory block"), \ -_STLP_STRING_LITERAL("Unknown problem") \ - } - -# if (_STLP_STATIC_TEMPLATE_DATA > 0) -template <class _Dummy> -const char* __stl_debug_engine<_Dummy>::_Message_table[_StlMsg_MAX] _STLP_MESSAGE_TABLE_BODY; - -# if (defined (__CYGWIN__) || defined (__MINGW32__)) && \ - defined (_STLP_USE_DYNAMIC_LIB) && !defined (__BUILDING_STLPORT) -/* - * Under cygwin, when STLport is used as a shared library, the id needs - * to be specified as imported otherwise they will be duplicated in the - * calling executable. - */ -_STLP_TEMPLATE_NULL -_STLP_DECLSPEC const char* __stl_debug_engine<bool>::_Message_table[_StlMsg_MAX]; -# endif - -# else -__DECLARE_INSTANCE(const char*, __stl_debug_engine<bool>::_Message_table[_StlMsg_MAX], - _STLP_MESSAGE_TABLE_BODY); -# endif - -# undef _STLP_STRING_LITERAL -# undef _STLP_PERCENT_S - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -// abort() -# ifndef _STLP_INTERNAL_CSTDLIB -# include <stl/_cstdlib.h> -# endif - -# if !defined (_STLP_DEBUG_MESSAGE) -# ifndef _STLP_INTERNAL_CSTDARG -# include <stl/_cstdarg.h> -# endif -# ifndef _STLP_INTERNAL_CSTDIO -# include <stl/_cstdio.h> -# endif -# if defined (_STLP_DEBUG_MODE_THROWS) && !defined (_STLP_RANGE_ERRORS_H) -# include <stl/_range_errors.h> -# endif - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Message(const char * __format_str, ...) { - STLPORT_CSTD::va_list __args; - va_start( __args, __format_str ); - -# if !defined (_STLP_DEBUG_MODE_THROWS) -# if defined (_STLP_USE_WIDE_INTERFACE) - TCHAR __buffer[512]; - int _convert = strlen(__format_str) + 1; - LPWSTR _lpw = (LPWSTR)alloca(_convert * sizeof(wchar_t)); - _lpw[0] = '\0'; - MultiByteToWideChar(GetACP(), 0, __format_str, -1, _lpw, _convert); - wvsprintf(__buffer, _lpw, __args); - _STLP_WINCE_TRACE(__buffer); -# elif defined (_STLP_WIN32) && (defined(_STLP_MSVC) || defined (__ICL)) - char __buffer [4096]; - -# if !defined (_STLP_USE_SAFE_STRING_FUNCTIONS) - vsnprintf(__buffer, _STLP_ARRAY_SIZE(__buffer), __format_str, __args); -# else - vsnprintf_s(__buffer, _STLP_ARRAY_SIZE(__buffer), _TRUNCATE, __format_str, __args); -# endif - - OutputDebugStringA(__buffer); - -# elif defined (__amigaos__) - STLPORT_CSTD::vfprintf(stderr, __format_str, (char *)__args); -# else - STLPORT_CSTD::vfprintf(stderr, __format_str, __args); -# endif -# else - char __buffer[4096]; - -# if defined (_STLP_USE_SAFE_STRING_FUNCTIONS) - vsnprintf_s(__buffer, _STLP_ARRAY_SIZE(__buffer), _TRUNCATE, __format_str, __args); -# elif defined (_STLP_WIN32) && (defined(_STLP_MSVC) || defined (__ICL)) - vsnprintf(__buffer, _STLP_ARRAY_SIZE(__buffer), __format_str, __args); -# else - vsprintf(__buffer, __format_str, __args); -# endif -# endif - -# ifdef _STLP_DEBUG_MESSAGE_POST - _STLP_DEBUG_MESSAGE_POST -# endif - - va_end(__args); - -# if defined (_STLP_DEBUG_MODE_THROWS) - __stl_throw_runtime_error(__buffer); -# endif -} - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -# else -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Message(const char * __format_str, ...) -{} -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE -# endif /* _STLP_DEBUG_MESSAGE */ - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_IndexedError(int __error_ind, const char* __f, int __l) { - __stl_debug_message(_Message_table[_StlFormat_ERROR_RETURN], - __f, __l, _Message_table[__error_ind]); -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_VerboseAssert(const char* __expr, int __error_ind, const char* __f, int __l) { - __stl_debug_message(_Message_table[_StlFormat_VERBOSE_ASSERTION_FAILURE], - __f, __l, _Message_table[__error_ind], __f, __l, __expr); - __stl_debug_terminate(); -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Assert(const char* __expr, const char* __f, int __l) { - __stl_debug_message(_Message_table[_StlFormat_ASSERTION_FAILURE],__f, __l, __expr); - __stl_debug_terminate(); -} - -// if exceptions are present, sends unique exception -// if not, calls abort() to terminate -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Terminate() -{ _STLP_ABORT(); } - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -# endif /* _STLP_ASSERTIONS */ - -# if defined (_STLP_DEBUG) - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -//========================================================== -// owned_list non-inline methods -//========================================================== - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Invalidate_all(__owned_list* __l) { - _STLP_ACQUIRE_LOCK(__l->_M_lock); - _Stamp_all(__l, 0); - __l->_M_node._M_next =0; - _STLP_RELEASE_LOCK(__l->_M_lock); -} - -// boris : this is unasafe routine; should be used from within critical section only ! -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Stamp_all(__owned_list* __l, __owned_list* __o) { - // crucial - if (__l->_M_node._M_owner) { - for (__owned_link* __pos = (__owned_link*)__l->_M_node._M_next; - __pos != 0; __pos = (__owned_link*)__pos->_M_next) { - _STLP_ASSERT(__pos->_Owner()== __l) - __pos->_M_owner=__o; - } - } -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Verify(const __owned_list* __l) { - _STLP_ACQUIRE_LOCK(__l->_M_lock); - if (__l) { - _STLP_ASSERT(__l->_M_node._Owner() != 0) - for (__owned_link* __pos = (__owned_link*)__l->_M_node._M_next; - __pos != 0; __pos = (__owned_link*)__pos->_M_next) { - _STLP_ASSERT(__pos->_Owner()== __l) - } - } - _STLP_RELEASE_LOCK(__l->_M_lock); -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Swap_owners(__owned_list& __x, __owned_list& __y) { - /* - * according to the standard : --no swap() function invalidates any references, - * pointers, or iterators referring to the elements of the containers being swapped. - */ - - __owned_link* __tmp; - - /* - * boris : there is a deadlock potential situation here if we lock two containers sequentially. - * As user is supposed to provide its own synchronization around swap() ( it is unsafe to do any container/iterator access - * in parallel with swap()), we just do not use any locking at all -- that behaviour is closer to non-debug version - */ - - __tmp = __x._M_node._M_next; - - _Stamp_all(&__x, &__y); - _Stamp_all(&__y, &__x); - - __x._M_node._M_next = __y._M_node._M_next; - __y._M_node._M_next = __tmp; -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_Set_owner(__owned_list& __src, __owned_list& __dst) { - if (&__src == &__dst) - return; - - // Check __stl_debug_engine<_Dummy>::_Swap_owners comments to see why there is no lock here - typedef __owned_link _L_type; - _L_type* __prev = &__src._M_node; - _L_type* __pos = __prev->_M_next; - - while (__pos != 0) { - __pos->_M_owner = &__dst; - __prev = __pos; - __pos = __prev->_M_next; - } - __prev->_M_next = __dst._M_node._M_next; - __dst._M_node._M_next = __src._M_node._M_next; - __src._M_node._M_next = 0; -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_M_detach(__owned_list* __l, __owned_link* __c_node) { - if (__l != 0) { - - _STLP_VERBOSE_ASSERT(__l->_Owner()!=0, _StlMsg_INVALID_CONTAINER) - - _STLP_ACQUIRE_LOCK(__l->_M_lock) - // boris : re-test the condition in case someone else already deleted us - if(__c_node->_M_owner != 0) { - __owned_link* __prev, *__next; - - for (__prev = &__l->_M_node; (__next = __prev->_M_next) != __c_node; - __prev = __next) { - _STLP_ASSERT(__next && __next->_Owner() == __l) - } - - __prev->_M_next = __c_node->_M_next; - __c_node->_M_owner=0; - } - _STLP_RELEASE_LOCK(__l->_M_lock) - } -} - -template <class _Dummy> -void _STLP_CALL -__stl_debug_engine<_Dummy>::_M_attach(__owned_list* __l, __owned_link* __c_node) { - if (__l ==0) { - (__c_node)->_M_owner = 0; - } else { - _STLP_VERBOSE_ASSERT(__l->_Owner()!=0, _StlMsg_INVALID_CONTAINER) - _STLP_ACQUIRE_LOCK(__l->_M_lock) - __c_node->_M_owner = __l; - __c_node->_M_next = __l->_M_node._M_next; - __l->_M_node._M_next = __c_node; - _STLP_RELEASE_LOCK(__l->_M_lock) - } -} - -template <class _Dummy> -void* _STLP_CALL -__stl_debug_engine<_Dummy>::_Get_container_ptr(const __owned_link* __l) { - const __owned_list* __owner = __l->_Owner(); - _STLP_VERBOSE_RETURN_0(__owner != 0, _StlMsg_INVALID_ITERATOR) - void* __ret = __CONST_CAST(void*,__owner->_Owner()); - _STLP_VERBOSE_RETURN_0(__ret !=0, _StlMsg_INVALID_CONTAINER) - return __ret; -} - -template <class _Dummy> -bool _STLP_CALL -__stl_debug_engine<_Dummy>::_Check_same_owner(const __owned_link& __i1, - const __owned_link& __i2) { - _STLP_VERBOSE_RETURN(__i1._Valid(), _StlMsg_INVALID_LEFTHAND_ITERATOR) - _STLP_VERBOSE_RETURN(__i2._Valid(), _StlMsg_INVALID_RIGHTHAND_ITERATOR) - _STLP_VERBOSE_RETURN((__i1._Owner() == __i2._Owner()), _StlMsg_DIFFERENT_OWNERS) - return true; -} - -template <class _Dummy> -bool _STLP_CALL -__stl_debug_engine<_Dummy>::_Check_same_or_null_owner(const __owned_link& __i1, - const __owned_link& __i2) { - _STLP_VERBOSE_RETURN(__i1._Owner() == __i2._Owner(), _StlMsg_DIFFERENT_OWNERS) - return true; -} - -template <class _Dummy> -bool _STLP_CALL -__stl_debug_engine<_Dummy>::_Check_if_owner( const __owned_list * __l, const __owned_link& __it) { - const __owned_list* __owner_ptr = __it._Owner(); - _STLP_VERBOSE_RETURN(__owner_ptr != 0, _StlMsg_INVALID_ITERATOR) - _STLP_VERBOSE_RETURN(__l == __owner_ptr, _StlMsg_NOT_OWNER) - return true; -} - -template <class _Dummy> -bool _STLP_CALL -__stl_debug_engine<_Dummy>::_Check_if_not_owner( const __owned_list * __l, const __owned_link& __it) { - const __owned_list* __owner_ptr = __it._Owner(); - _STLP_VERBOSE_RETURN(__owner_ptr != 0, _StlMsg_INVALID_ITERATOR) - _STLP_VERBOSE_RETURN(__l != __owner_ptr, _StlMsg_SHOULD_NOT_OWNER) - return true; -} - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -# endif /* _STLP_DEBUG */ - -#endif /* if defined (EXPOSE_GLOBALS_IMPLEMENTATION) */ - -#endif /* header guard */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_debug.h b/WebKit/android/stlport/stl/debug/_debug.h deleted file mode 100644 index 90e6218..0000000 --- a/WebKit/android/stlport/stl/debug/_debug.h +++ /dev/null @@ -1,460 +0,0 @@ -/* - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_DEBUG_H -#define _STLP_DEBUG_H - -#if defined (_STLP_ASSERTIONS) || defined (_STLP_DEBUG) - -# ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -# endif - -# if !defined (_STLP_EXTRA_OPERATORS_FOR_DEBUG) && \ - (defined (_STLP_BASE_MATCH_BUG) || (defined (_STLP_MSVC) && _STLP_MSVC < 1100)) -# define _STLP_EXTRA_OPERATORS_FOR_DEBUG -# endif - -# if !defined (_STLP_FILE__) -# define _STLP_FILE__ __FILE__ -# endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -enum { - //General errors - _StlFormat_ERROR_RETURN, - _StlFormat_ASSERTION_FAILURE, - _StlFormat_VERBOSE_ASSERTION_FAILURE, - _StlMsg_INVALID_ARGUMENT, - //Container/Iterator related errors - _StlMsg_INVALID_CONTAINER, - _StlMsg_EMPTY_CONTAINER, - _StlMsg_ERASE_PAST_THE_END, - _StlMsg_OUT_OF_BOUNDS, - _StlMsg_NOT_OWNER, - _StlMsg_SHOULD_NOT_OWNER, - _StlMsg_INVALID_ITERATOR, - _StlMsg_INVALID_LEFTHAND_ITERATOR, - _StlMsg_INVALID_RIGHTHAND_ITERATOR, - _StlMsg_DIFFERENT_OWNERS , - _StlMsg_NOT_DEREFERENCEABLE , - _StlMsg_INVALID_RANGE , - _StlMsg_NOT_IN_RANGE_1 , - _StlMsg_NOT_IN_RANGE_2 , - _StlMsg_INVALID_ADVANCE , - _StlMsg_SINGULAR_ITERATOR , - //Bad predicate for sorting - _StlMsg_INVALID_STRICT_WEAK_PREDICATE, - _StlMsg_INVALID_EQUIVALENT_PREDICATE, - // debug alloc messages - _StlMsg_DBA_DELETED_TWICE , - _StlMsg_DBA_NEVER_ALLOCATED , - _StlMsg_DBA_TYPE_MISMATCH , - _StlMsg_DBA_SIZE_MISMATCH , - _StlMsg_DBA_UNDERRUN , - _StlMsg_DBA_OVERRUN , - // auto_ptr messages - _StlMsg_AUTO_PTR_NULL , - //Memory alignent message - _StlMsg_WRONG_MEMORY_ALIGNMENT, - _StlMsg_UNKNOWN - /* _StlMsg_MAX */ -}; - -/* have to hardcode that ;() */ -# define _StlMsg_MAX 31 - -// This class is unique (not inherited from exception), -// to disallow catch in anything but (...) -struct __stl_debug_exception { - // no members -}; - -class _STLP_CLASS_DECLSPEC __owned_link; -class _STLP_CLASS_DECLSPEC __owned_list; - -#if defined (_STLP_DEBUG_MODE_THROWS) -# define _STLP_MESSAGE_NORETURN _STLP_FUNCTION_THROWS -#else -# define _STLP_MESSAGE_NORETURN -#endif - -template <class _Dummy> -struct __stl_debug_engine { - - // Basic routine to report any debug message - // Use _STLP_DEBUG_MESSAGE to override - static void _STLP_MESSAGE_NORETURN _STLP_CALL _Message(const char * format_str, ...); - - // Micsellanous function to report indexed error message - static void _STLP_CALL _IndexedError(int __ind, const char* __f, int __l); - - // Basic assertion report mechanism. - // Reports failed assertion via __stl_debug_message and calls _Terminate - // if _STLP_DEBUG_TERMINATE is specified, calls __stl_debug_terminate instead - static void _STLP_CALL _Assert(const char* __expr, const char* __f, int __l); - - // The same, with additional diagnostics - static void _STLP_CALL _VerboseAssert(const char* __expr, int __error_ind, const char* __f, int __l); - - // If exceptions are present, sends unique exception - // If not, calls _STLP_ABORT() to terminate - // Use _STLP_DEBUG_TERMINATE to override - static void _STLP_CALL _Terminate(); - -# if defined (_STLP_DEBUG) - // owned_list/link delegate non-inline functions here - - static bool _STLP_CALL _Check_same_owner( const __owned_link& __i1, - const __owned_link& __i2); - static bool _STLP_CALL _Check_same_or_null_owner( const __owned_link& __i1, - const __owned_link& __i2); - static bool _STLP_CALL _Check_if_owner( const __owned_list*, const __owned_link&); - - static bool _STLP_CALL _Check_if_not_owner( const __owned_list*, const __owned_link&); - - static void _STLP_CALL _Verify(const __owned_list*); - - static void _STLP_CALL _Swap_owners(__owned_list&, __owned_list&); - - static void _STLP_CALL _Invalidate_all(__owned_list*); - - static void _STLP_CALL _Set_owner(__owned_list& /*src*/, __owned_list& /*dst*/); - - static void _STLP_CALL _Stamp_all(__owned_list*, __owned_list*); - - static void _STLP_CALL _M_detach(__owned_list*, __owned_link*); - - static void _STLP_CALL _M_attach(__owned_list*, __owned_link*); - - // accessor : check and get pointer to the container - static void* _STLP_CALL _Get_container_ptr(const __owned_link*); -# endif - - // debug messages and formats - static _STLP_STATIC_MEMBER_DECLSPEC const char* _Message_table[_StlMsg_MAX]; -}; - -#undef _STLP_MESSAGE_NORETURN - -# if defined (_STLP_USE_TEMPLATE_EXPORT) -_STLP_EXPORT_TEMPLATE struct _STLP_CLASS_DECLSPEC __stl_debug_engine<bool>; -# endif /* _STLP_USE_TEMPLATE_EXPORT */ - -typedef __stl_debug_engine<bool> __stl_debugger; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -# if !defined (_STLP_ASSERT) -# define _STLP_ASSERT(expr) \ - if (!(expr)) { _STLP_PRIV __stl_debugger::_Assert( # expr, _STLP_FILE__, __LINE__); } -# endif - -#endif /* _STLP_ASSERTIONS || _STLP_DEBUG */ - -// this section is for _STLP_DEBUG only -#if defined (_STLP_DEBUG) - -# if !defined (_STLP_VERBOSE_ASSERT) -// fbp : new form not requiring ";" -# define _STLP_VERBOSE_ASSERT(expr, __diag_num) \ - if (!(expr)) { _STLP_PRIV __stl_debugger::_VerboseAssert\ - ( # expr, _STLP_PRIV __diag_num, _STLP_FILE__, __LINE__ ); \ - } -# endif - -# define _STLP_DEBUG_CHECK(expr) _STLP_ASSERT(expr) -# define _STLP_DEBUG_DO(expr) expr; - -# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) -# define _STLP_STD_DEBUG_CHECK(expr) _STLP_DEBUG_CHECK(expr) -# define _STLP_STD_DEBUG_DO(expr) _STLP_DEBUG_DO(expr) -# else -# define _STLP_STD_DEBUG_CHECK(expr) -# define _STLP_STD_DEBUG_DO(expr) -# endif - -# if !defined (_STLP_VERBOSE_RETURN) -# define _STLP_VERBOSE_RETURN(__expr,__diag_num) if (!(__expr)) { \ - _STLP_PRIV __stl_debugger::_IndexedError(__diag_num, _STLP_FILE__ , __LINE__); \ - return false; } -# endif - -# if !defined (_STLP_VERBOSE_RETURN_0) -# define _STLP_VERBOSE_RETURN_0(__expr,__diag_num) if (!(__expr)) { \ - _STLP_PRIV __stl_debugger::_IndexedError(__diag_num, _STLP_FILE__, __LINE__); \ - return 0; } -# endif - -# ifndef _STLP_INTERNAL_THREADS_H -# include <stl/_threads.h> -# endif - -# ifndef _STLP_INTERNAL_ITERATOR_BASE_H -# include <stl/_iterator_base.h> -# endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -/* - * Special debug iterator traits having an additionnal static member - * method _Check. It is used by the slit debug implementation to check - * the special before_begin iterator. - */ -template <class _Traits> -struct _DbgTraits : _Traits { - typedef _DbgTraits<typename _Traits::_ConstTraits> _ConstTraits; - typedef _DbgTraits<typename _Traits::_NonConstTraits> _NonConstTraits; - - template <class _Iterator> - static bool _Check(const _Iterator&) {return true;} -}; - -//============================================================= -template <class _Iterator> -inline bool _STLP_CALL __valid_range(const _Iterator& __i1 ,const _Iterator& __i2, - const random_access_iterator_tag&) -{ return (__i1 < __i2) || (__i1 == __i2); } - -template <class _Iterator> -inline bool _STLP_CALL __valid_range(const _Iterator& __i1 ,const _Iterator& __i2, - const bidirectional_iterator_tag&) { - // check if comparable - bool __dummy(__i1==__i2); - return (__dummy==__dummy); -} - -template <class _Iterator> -inline bool _STLP_CALL __valid_range(const _Iterator& __i1 ,const _Iterator& __i2, - const forward_iterator_tag&) { - // check if comparable - bool __dummy(__i1==__i2); - return (__dummy==__dummy); -} - -template <class _Iterator> -inline bool _STLP_CALL __valid_range(const _Iterator&,const _Iterator&, - const input_iterator_tag&) -{ return true; } - -template <class _Iterator> -inline bool _STLP_CALL __valid_range(const _Iterator&,const _Iterator&, - const output_iterator_tag&) -{ return true; } - -template <class _Iterator> -inline bool _STLP_CALL __valid_range(const _Iterator& __i1, const _Iterator& __i2) -{ return __valid_range(__i1,__i2,_STLP_ITERATOR_CATEGORY(__i1, _Iterator)); } - -// Note : that means in range [i1, i2]. -template <class _Iterator> -inline bool _STLP_CALL __in_range(const _Iterator& _It, - const _Iterator& __i1, const _Iterator& __i2) -{ return __valid_range(__i1,_It) && __valid_range(_It,__i2); } - -template <class _Iterator> -inline bool _STLP_CALL __in_range(const _Iterator& __first, const _Iterator& __last, - const _Iterator& __start, const _Iterator& __finish) -{ return __valid_range(__first,__last) && __valid_range(__start,__first) && __valid_range(__last,__finish); } - -//========================================================== -class _STLP_CLASS_DECLSPEC __owned_link { -public: - __owned_link() : _M_owner(0) {} - __owned_link(const __owned_list* __c) : _M_owner(0), _M_next(0) - { __stl_debugger::_M_attach(__CONST_CAST(__owned_list*,__c), this); } - __owned_link(const __owned_link& __rhs): _M_owner(0) - { __stl_debugger::_M_attach(__CONST_CAST(__owned_list*,__rhs._M_owner), this); } - __owned_link& operator=(const __owned_link& __rhs) { - __owned_list* __new_owner = __CONST_CAST(__owned_list*,__rhs._M_owner); - __owned_list* __old_owner = _M_owner; - if ( __old_owner != __new_owner ) { - __stl_debugger::_M_detach(__old_owner, this); - __stl_debugger::_M_attach(__new_owner, this); - } - return *this; - } - ~__owned_link() { - __stl_debugger::_M_detach(_M_owner, this); - _Invalidate(); - } - - const __owned_list* _Owner() const { return _M_owner; } - __owned_list* _Owner() { return _M_owner; } - void _Set_owner(const __owned_list* __o) { _M_owner= __CONST_CAST(__owned_list*,__o); } - bool _Valid() const { return _M_owner != 0; } - void _Invalidate() { _M_owner = 0; _M_next = 0; } - void _Link_to_self() { _M_next = 0; } - - __owned_link* _Next() { return _M_next; } - const __owned_link* _Next() const { return _M_next; } - -public: - __owned_list* _M_owner; - __owned_link* _M_next; -}; - - -class _STLP_CLASS_DECLSPEC __owned_list { -public: - __owned_list(void* __o) { - // fprintf(stderr, "__owned_list(): %p\n",(void*)this); - _M_node._M_owner = __REINTERPRET_CAST(__owned_list*,__o); - _M_node._M_next = 0; - } - ~__owned_list() { - // fprintf(stderr, "~__owned_list(): %p\n",(void*)this); - _Invalidate_all(); - // that prevents detach - _M_node._Invalidate(); - } - const void* _Owner() const { return (const void*)_M_node._M_owner; } - void* _Owner() { return (void*)_M_node._M_owner; } - bool _Valid() const { return _M_node._M_owner != 0; } - void _Invalidate() { _M_node._M_owner = 0; } - - __owned_link* _First() { return _M_node._Next(); } - __owned_link* _Last() { return 0 ; } - - const __owned_link* _First() const { return (__owned_link*)_M_node._M_next; } - const __owned_link* _Last() const { return 0 ;} - - void _Verify() const { __stl_debugger::_Verify(this); } - void _Swap_owners(__owned_list& __y) { __stl_debugger::_Swap_owners(*this, __y); } - void _Invalidate_all() { __stl_debugger::_Invalidate_all(this); } - void _Set_owner(__owned_list& __y) { __stl_debugger::_Set_owner(*this, __y); } - - mutable __owned_link _M_node; - mutable _STLP_mutex _M_lock; - -private: - // should never be called, should be left not implemented, - // but some compilers complain about it ;( - __owned_list(const __owned_list&){} - __owned_list& operator = (const __owned_list&) { return *this; } - - friend class __owned_link; - friend struct __stl_debug_engine<bool>; -}; - - -//========================================================== - -// forward declaratioins - -template <class _Iterator> -bool _STLP_CALL __check_range(const _Iterator&, const _Iterator&); -template <class _Iterator> -bool _STLP_CALL __check_range(const _Iterator&, - const _Iterator&, const _Iterator&); -template <class _Iterator> -bool _STLP_CALL __check_range(const _Iterator&, const _Iterator& , - const _Iterator&, const _Iterator& ); -template <class _Tp> -bool _STLP_CALL __check_ptr_range(const _Tp*, const _Tp*); - - -template <class _Iterator> -void _STLP_CALL __invalidate_range(const __owned_list* __base, - const _Iterator& __first, - const _Iterator& __last); - -template <class _Iterator> -void _STLP_CALL __invalidate_iterator(const __owned_list* __base, - const _Iterator& __it); - -template <class _Iterator> -void _STLP_CALL __change_range_owner(const _Iterator& __first, - const _Iterator& __last, - const __owned_list* __dst); - -template <class _Iterator> -void _STLP_CALL __change_ite_owner(const _Iterator& __it, - const __owned_list* __dst); - -//============================================================ -inline bool _STLP_CALL -__check_same_owner(const __owned_link& __i1, const __owned_link& __i2) -{ return __stl_debugger::_Check_same_owner(__i1,__i2); } - -inline bool _STLP_CALL -__check_same_or_null_owner(const __owned_link& __i1, const __owned_link& __i2) -{ return __stl_debugger::_Check_same_or_null_owner(__i1,__i2); } - -template <class _Iterator> -inline bool _STLP_CALL __check_if_owner( const __owned_list* __owner, - const _Iterator& __it) -{ return __stl_debugger::_Check_if_owner(__owner, (const __owned_link&)__it); } - -template <class _Iterator> -inline bool _STLP_CALL __check_if_not_owner( const __owned_list* /*__owner*/, - const _Iterator& /*__it*/, - const __false_type&) -{ return true; } - -template <class _Iterator> -inline bool _STLP_CALL __check_if_not_owner( const __owned_list* __owner, - const _Iterator& __it, - const __true_type&) -{ return __stl_debugger::_Check_if_not_owner(__owner, (const __owned_link&)__it); } - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_DEBUG */ - -#if defined (_STLP_ASSERTIONS) - -# if !defined (_STLP_ASSERT_MSG_TRAILER) -# define _STLP_ASSERT_MSG_TRAILER -# endif - -// dwa 12/30/98 - if _STLP_DEBUG_MESSAGE is defined, the user can supply own definition. -# if !defined (_STLP_DEBUG_MESSAGE) -# define __stl_debug_message __stl_debugger::_Message -# else -extern void __stl_debug_message(const char * format_str, ...); -# endif - -// fbp: if _STLP_DEBUG_TERMINATE is defined, the user can supply own definition. -# if !defined (_STLP_DEBUG_TERMINATE) -# define __stl_debug_terminate __stl_debugger::_Terminate -# else -extern void __stl_debug_terminate(); -# endif - -#endif - -#if !defined (_STLP_LINK_TIME_INSTANTIATION) -# include <stl/debug/_debug.c> -#endif - -#endif /* DEBUG_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_deque.h b/WebKit/android/stlport/stl/debug/_deque.h deleted file mode 100644 index 45595a0..0000000 --- a/WebKit/android/stlport/stl/debug/_deque.h +++ /dev/null @@ -1,400 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DBG_DEQUE_H -#define _STLP_INTERNAL_DBG_DEQUE_H - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -#define _STLP_NON_DBG_DEQUE _STLP_PRIV _STLP_NON_DBG_NAME(deque) <_Tp,_Alloc> - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _Tp, class _Alloc> -inline _Tp* value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_DEQUE >&) -{ return (_Tp*)0; } -template <class _Tp, class _Alloc> -inline random_access_iterator_tag iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_DEQUE >&) -{ return random_access_iterator_tag(); } -#endif - -template <class _Tp, _STLP_DBG_ALLOCATOR_SELECT(_Tp) > -class deque : -#if !defined (__DMC__) - private -#endif - _STLP_PRIV __construct_checker<_STLP_NON_DBG_DEQUE > -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - , public __stlport_class<deque<_Tp, _Alloc> > -#endif -{ - typedef deque<_Tp,_Alloc> _Self; - typedef _STLP_NON_DBG_DEQUE _Base; - typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_DEQUE > _ConstructCheck; - -public: - // Basic types - __IMPORT_CONTAINER_TYPEDEFS(_Base) - - // Iterators - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Nonconst_traits<value_type> > > iterator; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Const_traits<value_type> > > const_iterator; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -protected: - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - - void _Invalidate_all() - { _M_iter_list._Invalidate_all(); } - void _Invalidate_iterator(const iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list,__it); } - void _Invalidate_iterators(const iterator& __first, const iterator& __last) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } - -public: - // Basic accessors - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } - - iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - reference operator[](size_type __n) { - _STLP_VERBOSE_ASSERT(__n < size(), _StlMsg_OUT_OF_BOUNDS) - return _M_non_dbg_impl[__n]; - } - const_reference operator[](size_type __n) const { - _STLP_VERBOSE_ASSERT(__n < size(), _StlMsg_OUT_OF_BOUNDS) - return _M_non_dbg_impl[__n]; - } - - reference at(size_type __n) { return _M_non_dbg_impl.at(__n); } - const_reference at(size_type __n) const { return _M_non_dbg_impl.at(__n); } - - reference front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *begin(); - } - const_reference front() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *begin(); - } - reference back() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *(--end()); - } - const_reference back() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *(--end()); - } - - // Constructor, destructor. - explicit deque(const allocator_type& __a = allocator_type()) : - _M_non_dbg_impl(__a), _M_iter_list(&_M_non_dbg_impl) {} - deque(const _Self& __x) : - _ConstructCheck(__x), _M_non_dbg_impl(__x._M_non_dbg_impl), - _M_iter_list(&_M_non_dbg_impl) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit deque(size_type __n, const value_type& __x = _Tp(), -#else - deque(size_type __n, param_type __x, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) : - _M_non_dbg_impl(__n, __x, __a), _M_iter_list(&_M_non_dbg_impl) {} -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit deque(size_type __n) : - _M_non_dbg_impl(__n), _M_iter_list(&_M_non_dbg_impl) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - deque(__move_source<_Self> src) - : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - deque(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last), __a), - _M_iter_list(&_M_non_dbg_impl) { - } -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - deque(_InputIterator __first, _InputIterator __last) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)), - _M_iter_list(&_M_non_dbg_impl) { - } -# endif -#else - deque(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first, __last, __a), - _M_iter_list(&_M_non_dbg_impl) { - } - - deque(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first._M_iterator, __last._M_iterator, __a), - _M_iter_list(&_M_non_dbg_impl) { - } -#endif - - _Self& operator=(const _Self& __x) { - if (this != &__x) { - _Invalidate_all(); - _M_non_dbg_impl = __x._M_non_dbg_impl; - } - return *this; - } - - bool empty() const { return _M_non_dbg_impl.empty(); } - size_type size() const { return _M_non_dbg_impl.size(); } - size_type max_size() const { return _M_non_dbg_impl.max_size(); } - - void swap(_Self& __x) { - _M_iter_list._Swap_owners(__x._M_iter_list); - _M_non_dbg_impl.swap(__x._M_non_dbg_impl); - } - -public: - void assign(size_type __n, const _Tp& __val) { - _Invalidate_all(); - _M_non_dbg_impl.assign(__n, __val); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _Invalidate_all(); - _M_non_dbg_impl.assign(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } -#else - void assign(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _Invalidate_all(); - _M_non_dbg_impl.assign(__first._M_iterator, __last._M_iterator); - } - void assign(const value_type *__first, const value_type *__last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _Invalidate_all(); - _M_non_dbg_impl.assign(__first, __last); - } -#endif - -public: // push_* and pop_* - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back(const value_type& __t = _Tp()) { -#else - void push_back(const value_type& __t) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - _Invalidate_all(); - _M_non_dbg_impl.push_back(__t); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back() { - _Invalidate_all(); - _M_non_dbg_impl.push_back(); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_front(const value_type& __t = _Tp()) { -#else - void push_front(const value_type& __t) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - _Invalidate_all(); - _M_non_dbg_impl.push_front(__t); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_front() { - _Invalidate_all(); - _M_non_dbg_impl.push_front(); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void pop_back() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - _Invalidate_iterator(end()); - _M_non_dbg_impl.pop_back(); - } - - void pop_front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - _Invalidate_iterator(begin()); - _M_non_dbg_impl.pop_front(); - } - -public: // Insert - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const value_type& __x = _Tp()) { -#else - iterator insert(iterator __pos, const value_type& __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _Invalidate_all(); - return iterator(&_M_iter_list, _M_non_dbg_impl.insert(__pos._M_iterator, __x)); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _Invalidate_all(); - return iterator(&_M_iter_list, _M_non_dbg_impl.insert(__pos._M_iterator)); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void insert(iterator __pos, size_type __n, const value_type& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - if (__n != 0) _Invalidate_all(); - _M_non_dbg_impl.insert(__pos._M_iterator, __n, __x); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { - typedef typename _AreSameUnCVTypes<_InputIterator, iterator>::_Ret _IsNonConstIterator; - typedef typename _AreSameUnCVTypes<_InputIterator, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsNonConstIterator, _IsConstIterator>::_Ret _DoCheck; - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - //Sequence requirements 23.1.1 Table 67: - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_not_owner(&_M_iter_list, __first, _DoCheck())); - _M_non_dbg_impl.insert(__pos._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - //dums: because of self insertion iterators must be invalidated after insertion. - if (__first != __last) _Invalidate_all(); - } -#else - void insert(iterator __pos, - const value_type* __first, const value_type* __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _M_non_dbg_impl.insert(__pos._M_iterator, __first, __last); - //dums: because of self insertion iterators must be invalidated after insertion. - if (__first != __last) _Invalidate_all(); - } - void insert(iterator __pos, - const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - //Sequence requirements 23.1.1 Table 67: - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_not_owner(&_M_iter_list, __first, __true_type())); - _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator); - //dums: because of self insertion iterators must be invalidated after insertion. - if (__first != __last) _Invalidate_all(); - } -#endif - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const value_type& __x = _Tp()) { -#else - void resize(size_type __new_size, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - if (__new_size != size()) { - if ((__new_size > size()) || (__new_size < size() - 1)) - _Invalidate_all(); - else - _Invalidate_iterator(end()); - } - _M_non_dbg_impl.resize(__new_size, __x); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type new_size) { resize(new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - // Erase - iterator erase(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - if (__pos._M_iterator == _M_non_dbg_impl.begin()) - _Invalidate_iterator(__pos); - else { - typename _Base::iterator __tmp = --(_M_non_dbg_impl.end()); - if (__pos._M_iterator == __tmp) - _Invalidate_iterator(__pos); - else - _Invalidate_all(); - } - return iterator (&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator)); - } - - iterator erase(iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - if (!empty()) { - if (__first._M_iterator == _M_non_dbg_impl.begin() || - __last._M_iterator == _M_non_dbg_impl.end()) - _Invalidate_iterators(__first, __last); - else - _Invalidate_all(); - } - return iterator (&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator)); - } - - void clear() { - _Invalidate_all(); - _M_non_dbg_impl.clear(); - } -}; - -_STLP_END_NAMESPACE - -#undef _STLP_NON_DBG_DEQUE - -#endif /* _STLP_INTERNAL_DEQUE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_hashtable.h b/WebKit/android/stlport/stl/debug/_hashtable.h deleted file mode 100644 index b0d6411..0000000 --- a/WebKit/android/stlport/stl/debug/_hashtable.h +++ /dev/null @@ -1,338 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DBG_HASHTABLE_H -#define _STLP_INTERNAL_DBG_HASHTABLE_H - -// Hashtable class, used to implement the hashed associative containers -// hash_set, hash_map, hash_multiset, and hash_multimap, -// unordered_set, unordered_map, unordered_multiset, unordered_multimap - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Key, class _Equal> -class _DbgEqual { -public: - _DbgEqual() {} - _DbgEqual(const _Equal& __eq) : _M_non_dbg_eq(__eq) {} - _DbgEqual(const _DbgEqual& __eq) : _M_non_dbg_eq(__eq._M_non_dbg_eq) {} - -#if !defined (_STLP_USE_CONTAINERS_EXTENSION) - bool operator () (const _Key& __lhs, const _Key& __rhs) const -#else - template <class _Kp1, class _Kp2> - bool operator () (const _Kp1& __lhs, const _Kp2& __rhs) const -#endif - { -#if !defined (_STLP_USE_CONTAINERS_EXTENSION) - _STLP_VERBOSE_ASSERT(_M_non_dbg_eq(__rhs, __lhs) == _M_non_dbg_eq(__lhs, __rhs), _StlMsg_INVALID_EQUIVALENT_PREDICATE) -#endif - return _M_non_dbg_eq(__lhs, __rhs) ? true : false; - } - - _Equal non_dbg_key_eq() const { return _M_non_dbg_eq; } -private: - _Equal _M_non_dbg_eq; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -#define _STLP_NON_DBG_HT \ -_STLP_PRIV _STLP_NON_DBG_NAME(hashtable) <_Val, _Key, _HF, _Traits, _ExK, _STLP_PRIV _DbgEqual<_Key, _EqK>, _All> - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _Val, class _Key, class _HF, - class _ExK, class _EqK, class _All> -inline _Val* -value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_HT >&) -{ return (_Val*)0; } - -template <class _Val, class _Key, class _HF, - class _ExK, class _EqK, class _All> -inline forward_iterator_tag -iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_HT >&) -{ return forward_iterator_tag(); } -#endif - -template <class _Val, class _Key, class _HF, - class _Traits, class _ExK, class _EqK, class _All> -class hashtable { - typedef hashtable<_Val, _Key, _HF, _Traits, _ExK, _EqK, _All> _Self; - typedef _STLP_NON_DBG_HT _Base; - - typedef typename _Traits::_NonConstTraits _NonConstTraits; - typedef typename _Traits::_ConstTraits _ConstTraits; - typedef typename _Traits::_NonConstLocalTraits _NonConstLocalTraits; - typedef typename _Traits::_ConstLocalTraits _ConstLocalTraits; - - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - -public: - typedef _Key key_type; - typedef _HF hasher; - typedef _EqK key_equal; - - __IMPORT_CONTAINER_TYPEDEFS(_Base) - - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_NonConstTraits> > iterator; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_ConstTraits> > const_iterator; - //typedef _STLP_PRIV _DBG_iter<_Base, _DbgTraits<_NonConstLocalTraits> > local_iterator; - typedef iterator local_iterator; - //typedef _STLP_PRIV _DBG_iter<_Base, _DbgTraits<_ConstLocalTraits> > const_local_iterator; - typedef const_iterator const_local_iterator; - - typedef typename _Base::iterator _Base_iterator; - typedef typename _Base::const_iterator _Base_const_iterator; - - hasher hash_funct() const { return _M_non_dbg_impl.hash_funct(); } - key_equal key_eq() const { return _M_non_dbg_impl.key_eq().non_dbg_key_eq(); } - -private: - void _Invalidate_iterator(const const_iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); } - void _Invalidate_iterators(const const_iterator& __first, const const_iterator& __last) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } - - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -public: - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } - - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const _ExK& __ext, - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__n, __hf, __eql, __ext, __a), - _M_iter_list(&_M_non_dbg_impl) {} - - hashtable(size_type __n, - const _HF& __hf, - const _EqK& __eql, - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__n, __hf, __eql, __a), - _M_iter_list(&_M_non_dbg_impl) {} - - hashtable(const _Self& __ht) - : _M_non_dbg_impl(__ht._M_non_dbg_impl), - _M_iter_list(&_M_non_dbg_impl) {} - - hashtable(__move_source<_Self> src) - : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - - size_type size() const { return _M_non_dbg_impl.size(); } - size_type max_size() const { return _M_non_dbg_impl.max_size(); } - bool empty() const { return _M_non_dbg_impl.empty(); } - - _Self& operator=(const _Self& __ht) { - if (this != &__ht) { - //Should not invalidate end iterator - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl = __ht._M_non_dbg_impl; - } - return *this; - } - - void swap(_Self& __ht) { - _M_iter_list._Swap_owners(__ht._M_iter_list); - _M_non_dbg_impl.swap(__ht._M_non_dbg_impl); - } - - iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - local_iterator begin(size_type __n) { - //TODO: Add checks for iterator locality -> avoids comparison between different bucket iterators - _STLP_VERBOSE_ASSERT((__n < bucket_count()), _StlMsg_INVALID_ARGUMENT) - return local_iterator(&_M_iter_list, _M_non_dbg_impl.begin(__n)); - } - local_iterator end(size_type __n) { - //TODO: Add checks for iterator locality -> avoids comparison between different bucket iterators - _STLP_VERBOSE_ASSERT((__n < bucket_count()), _StlMsg_INVALID_ARGUMENT) - return local_iterator(&_M_iter_list, _M_non_dbg_impl.end(__n)); - } - - const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_local_iterator begin(size_type __n) const { - //TODO: Add checks for iterator locality -> avoids comparison between different bucket iterators - _STLP_VERBOSE_ASSERT((__n < bucket_count()), _StlMsg_INVALID_ARGUMENT) - return const_local_iterator(&_M_iter_list, _M_non_dbg_impl.begin(__n)); - } - const_local_iterator end(size_type __n) const { - //TODO: Add checks for iterator locality -> avoids comparison between different bucket iterators - _STLP_VERBOSE_ASSERT((__n < bucket_count()), _StlMsg_INVALID_ARGUMENT) - return const_local_iterator(&_M_iter_list, _M_non_dbg_impl.end(__n)); - } - - pair<iterator, bool> insert_unique(const value_type& __obj) { - pair<_Base_iterator, bool> __res = _M_non_dbg_impl.insert_unique(__obj); - return pair<iterator, bool>(iterator(&_M_iter_list, __res.first), __res.second); - } - - iterator insert_equal(const value_type& __obj) - { return iterator(&_M_iter_list, _M_non_dbg_impl.insert_equal(__obj)); } - - pair<iterator, bool> insert_unique_noresize(const value_type& __obj) { - pair<_Base_iterator, bool> __res = _M_non_dbg_impl.insert_unique_noresize(__obj); - return pair<iterator, bool>(iterator(&_M_iter_list, __res.first), __res.second); - } - - iterator insert_equal_noresize(const value_type& __obj) - { return iterator(&_M_iter_list, _M_non_dbg_impl.insert_equal_noresize(__obj)); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert_unique(_InputIterator __f, _InputIterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - _M_non_dbg_impl.insert_unique(_STLP_PRIV _Non_Dbg_iter(__f), _STLP_PRIV _Non_Dbg_iter(__l)); - } - - template <class _InputIterator> - void insert_equal(_InputIterator __f, _InputIterator __l){ - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - _M_non_dbg_impl.insert_equal(_STLP_PRIV _Non_Dbg_iter(__f), _STLP_PRIV _Non_Dbg_iter(__l)); - } - -#else - void insert_unique(const value_type* __f, const value_type* __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l)) - _M_non_dbg_impl.insert_unique(__f, __l); - } - - void insert_equal(const value_type* __f, const value_type* __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l)) - _M_non_dbg_impl.insert_equal(__f, __l); - } - - void insert_unique(const_iterator __f, const_iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - _M_non_dbg_impl.insert_unique(__f._M_iterator, __l._M_iterator); - } - - void insert_equal(const_iterator __f, const_iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - _M_non_dbg_impl.insert_equal(__f._M_iterator, __l._M_iterator); - } -#endif - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __key) - { return iterator(&_M_iter_list, _M_non_dbg_impl.find(__key)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __key) const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.find(__key)); } - - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __key) const { return _M_non_dbg_impl.count(__key); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __key) { - pair<_Base_iterator, _Base_iterator> __res = _M_non_dbg_impl.equal_range(__key); - return pair<iterator,iterator> (iterator(&_M_iter_list,__res.first), - iterator(&_M_iter_list,__res.second)); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __key) const { - pair <_Base_const_iterator, _Base_const_iterator> __res = _M_non_dbg_impl.equal_range(__key); - return pair<const_iterator,const_iterator> (const_iterator(&_M_iter_list,__res.first), - const_iterator(&_M_iter_list,__res.second)); - } - - size_type erase(const key_type& __key) { - pair<_Base_iterator, _Base_iterator> __p = _M_non_dbg_impl.equal_range(__key); - size_type __n = _STLP_STD::distance(__p.first, __p.second); - _Invalidate_iterators(const_iterator(&_M_iter_list, __p.first), const_iterator(&_M_iter_list, __p.second)); - _M_non_dbg_impl.erase(__p.first, __p.second); - return __n; - } - - void erase(const const_iterator& __it) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__it)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __it)) - _Invalidate_iterator(__it); - _M_non_dbg_impl.erase(__it._M_iterator); - } - void erase(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, - const_iterator(begin()), const_iterator(end()))) - _Invalidate_iterators(__first, __last); - _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator); - } - - void rehash(size_type __num_buckets_hint) { _M_non_dbg_impl.rehash(__num_buckets_hint); } - void resize(size_type __num_elements_hint) { _M_non_dbg_impl.resize(__num_elements_hint); } - - void clear() { - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.clear(); - } - - reference _M_insert(const value_type& __obj) { return _M_non_dbg_impl._M_insert(__obj); } - - size_type bucket_count() const { return _M_non_dbg_impl.bucket_count(); } - size_type max_bucket_count() const { return _M_non_dbg_impl.max_bucket_count(); } - size_type elems_in_bucket(size_type __n) const { - _STLP_VERBOSE_ASSERT((__n < bucket_count()), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.elems_in_bucket(__n); - } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type bucket(const _KT& __k) const { return _M_non_dbg_impl.bucket(__k); } - - float load_factor() const { return _M_non_dbg_impl.load_factor(); } - float max_load_factor() const { return _M_non_dbg_impl.max_load_factor(); } - void max_load_factor(float __z) { - _STLP_VERBOSE_ASSERT((__z > 0.0f), _StlMsg_INVALID_ARGUMENT) - _M_non_dbg_impl.max_load_factor(__z); - } -}; - -_STLP_END_NAMESPACE - -#undef _STLP_NON_DBG_HT - -#endif /* _STLP_INTERNAL_HASHTABLE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_iterator.h b/WebKit/android/stlport/stl/debug/_iterator.h deleted file mode 100644 index 2faaa9f..0000000 --- a/WebKit/android/stlport/stl/debug/_iterator.h +++ /dev/null @@ -1,458 +0,0 @@ -/* - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_DBG_ITERATOR_H -#define _STLP_DBG_ITERATOR_H - -#ifndef _STLP_INTERNAL_PAIR_H -# include <stl/_pair.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -#define _STLP_DBG_ALLOCATOR_SELECT( _Tp ) _STLP_DEFAULT_ALLOCATOR_SELECT( _Tp ) - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -//============================================================ - -template <class _Iterator> -void _Decrement(_Iterator& __it, const bidirectional_iterator_tag &) -{ --__it; } - -template <class _Iterator> -void _Decrement(_Iterator& __it, const random_access_iterator_tag &) -{ --__it; } - -template <class _Iterator> -void _Decrement(_Iterator& __it, const forward_iterator_tag &) -{ _STLP_ASSERT(0) } - -template <class _Iterator> -void _Advance(_Iterator&, ptrdiff_t, const forward_iterator_tag &) -{ _STLP_ASSERT(0) } - -template <class _Iterator> -void _Advance(_Iterator& __it, ptrdiff_t, const bidirectional_iterator_tag &) -{ _STLP_ASSERT(0) } - -template <class _Iterator> -void _Advance(_Iterator& __it, ptrdiff_t __n, const random_access_iterator_tag &) -{ __it += __n; } - -template <class _Iterator> -ptrdiff_t _DBG_distance(const _Iterator& __x, const _Iterator& __y, const random_access_iterator_tag &) -{ return __x - __y; } - -template <class _Iterator> -ptrdiff_t _DBG_distance(const _Iterator&, const _Iterator&, const forward_iterator_tag &) { - _STLP_ASSERT(0) - return 0; -} - -template <class _Iterator> -ptrdiff_t _DBG_distance(const _Iterator&, const _Iterator&, const bidirectional_iterator_tag &) { - _STLP_ASSERT(0) - return 0; -} - -template <class _Iterator> -bool _CompareIt(const _Iterator&, const _Iterator&, const forward_iterator_tag &) { - _STLP_ASSERT(0) - return false; -} - -template <class _Iterator> -bool _CompareIt(const _Iterator&, const _Iterator&, const bidirectional_iterator_tag &) { - _STLP_ASSERT(0) - return false; -} - -template <class _Iterator> -bool _CompareIt(const _Iterator& __x, const _Iterator& __y, const random_access_iterator_tag &) -{ return __x < __y; } - -template <class _Iterator> -bool _Dereferenceable(const _Iterator& __it) -{ return (__it._Get_container_ptr() != 0) && !(__it._M_iterator == (__it._Get_container_ptr())->end()); } - -template <class _Iterator> -bool _Incrementable(const _Iterator& __it, ptrdiff_t __n, const forward_iterator_tag &) -{ return (__n == 1) && _Dereferenceable(__it); } - -template <class _Iterator> -bool _Incrementable(const _Iterator& __it, ptrdiff_t __n, const bidirectional_iterator_tag &) { - typedef typename _Iterator::_Container_type __container_type; - __container_type* __c = __it._Get_container_ptr(); - return (__c != 0) && ((__n == 1 && __it._M_iterator != __c->end() ) || - (__n == -1 && __it._M_iterator != __c->begin())); -} - -template <class _Iterator> -bool _Incrementable(const _Iterator& __it, ptrdiff_t __n, const random_access_iterator_tag &) { - typedef typename _Iterator::_Container_type __container_type; - __container_type* __c = __it._Get_container_ptr(); - if (__c == 0) return false; - ptrdiff_t __new_pos = (__it._M_iterator - __c->begin()) + __n; - return (__new_pos >= 0) && (__STATIC_CAST(typename __container_type::size_type, __new_pos) <= __c->size()); -} - - -template <class _Container> -struct _DBG_iter_base : public __owned_link { -public: - typedef typename _Container::value_type value_type; - typedef typename _Container::reference reference; - typedef typename _Container::pointer pointer; - typedef ptrdiff_t difference_type; - //private: - typedef typename _Container::iterator _Nonconst_iterator; - typedef typename _Container::const_iterator _Const_iterator; - typedef _Container _Container_type; - -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - typedef typename iterator_traits<_Const_iterator>::iterator_category _Iterator_category; -#else - typedef typename _Container::_Iterator_category _Iterator_category; -#endif - typedef _Iterator_category iterator_category; - - _DBG_iter_base() : __owned_link(0) {} - _DBG_iter_base(const __owned_list* __c, const _Const_iterator& __it) : -#if defined(__HP_aCC) && (__HP_aCC < 60000) - __owned_link(__c), _M_iterator(*__REINTERPRET_CAST(const _Nonconst_iterator *, &__it)) {} -#else - __owned_link(__c), _M_iterator(*(const _Nonconst_iterator*)&__it) {} -#endif - _Container* _Get_container_ptr() const { - return (_Container*)__stl_debugger::_Get_container_ptr(this); - } - - void __increment(); - void __decrement(); - void __advance(ptrdiff_t __n); - -// protected: - _Nonconst_iterator _M_iterator; -}; - -template <class _Container> -inline void _DBG_iter_base<_Container>::__increment() { - _STLP_DEBUG_CHECK(_Incrementable(*this, 1, _Iterator_category())) - ++_M_iterator; -} - -template <class _Container> -inline void _DBG_iter_base<_Container>::__decrement() { - _STLP_DEBUG_CHECK(_Incrementable(*this, -1, _Iterator_category())) - _Decrement(_M_iterator, _Iterator_category()); -} - -template <class _Container> -inline void _DBG_iter_base<_Container>::__advance(ptrdiff_t __n) { - _STLP_DEBUG_CHECK(_Incrementable(*this, __n, _Iterator_category())) - _Advance(_M_iterator, __n, _Iterator_category()); -} - -template <class _Container> -ptrdiff_t operator-(const _DBG_iter_base<_Container>& __x, - const _DBG_iter_base<_Container>& __y ) { - typedef typename _DBG_iter_base<_Container>::_Iterator_category _Iterator_category; - _STLP_DEBUG_CHECK(__check_same_owner(__x, __y)) - return _DBG_distance(__x._M_iterator,__y._M_iterator, _Iterator_category()); -} - -template <class _Container, class _Traits> -struct _DBG_iter_mid : public _DBG_iter_base<_Container> { - typedef _DBG_iter_mid<_Container, typename _Traits::_NonConstTraits> _Nonconst_self; - typedef typename _Container::iterator _Nonconst_iterator; - typedef typename _Container::const_iterator _Const_iterator; - - _DBG_iter_mid() {} - - explicit _DBG_iter_mid(const _Nonconst_self& __it) : - _DBG_iter_base<_Container>(__it) {} - - _DBG_iter_mid(const __owned_list* __c, const _Const_iterator& __it) : - _DBG_iter_base<_Container>(__c, __it) {} -}; - -template <class _Container, class _Traits> -struct _DBG_iter : public _DBG_iter_mid<_Container, _Traits> { - typedef _DBG_iter_base<_Container> _Base; -public: - typedef typename _Base::value_type value_type; - typedef typename _Base::difference_type difference_type; - typedef typename _Traits::reference reference; - typedef typename _Traits::pointer pointer; - - typedef typename _Base::_Nonconst_iterator _Nonconst_iterator; - typedef typename _Base::_Const_iterator _Const_iterator; - -private: - typedef _DBG_iter<_Container, _Traits> _Self; - typedef _DBG_iter_mid<_Container, typename _Traits::_NonConstTraits> _Nonconst_mid; - -public: - -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION - typedef typename _Base::iterator_category iterator_category; -#endif - typedef typename _Base::_Iterator_category _Iterator_category; - -public: - _DBG_iter() {} - // boris : real type of iter would be nice - _DBG_iter(const __owned_list* __c, const _Const_iterator& __it) : - _DBG_iter_mid<_Container, _Traits>(__c, __it) {} - - // This allows conversions from iterator to const_iterator without being - // redundant with the copy constructor below. - _DBG_iter(const _Nonconst_mid& __rhs) : - _DBG_iter_mid<_Container, _Traits>(__rhs) {} - - _DBG_iter(const _Self& __rhs) : - _DBG_iter_mid<_Container, _Traits>(__rhs) {} - - // This allows conversions from iterator to const_iterator without being - // redundant with the copy assignment operator below. - _Self& operator=(const _Nonconst_mid& __rhs) { - (_Base&)*this = __rhs; - return *this; - } - - _Self& operator=(const _Self& __rhs) { - (_Base&)*this = __rhs; - return *this; - } - - reference operator*() const; - - _STLP_DEFINE_ARROW_OPERATOR - - _Self& operator++() { - this->__increment(); - return *this; - } - _Self operator++(int) { - _Self __tmp = *this; - this->__increment(); - return __tmp; - } - _Self& operator--() { - this->__decrement(); - return *this; - } - _Self operator--(int) { - _Self __tmp = *this; - this->__decrement(); - return __tmp; - } - - _Self& operator+=(difference_type __n) { - this->__advance(__n); - return *this; - } - - _Self& operator-=(difference_type __n) { - this->__advance(-__n); - return *this; - } - _Self operator+(difference_type __n) const { - _Self __tmp(*this); - __tmp.__advance(__n); - return __tmp; - } - _Self operator-(difference_type __n) const { - _Self __tmp(*this); - __tmp.__advance(-__n); - return __tmp; - } - reference operator[](difference_type __n) const { return *(*this + __n); } -}; - -template <class _Container, class _Traits> -inline -#if defined (_STLP_NESTED_TYPE_PARAM_BUG) -_STLP_TYPENAME_ON_RETURN_TYPE _Traits::reference -#else -_STLP_TYPENAME_ON_RETURN_TYPE _DBG_iter<_Container, _Traits>::reference -#endif -_DBG_iter<_Container, _Traits>::operator*() const { - _STLP_DEBUG_CHECK(_Dereferenceable(*this)) - _STLP_DEBUG_CHECK(_Traits::_Check(*this)) - return *this->_M_iterator; -} - -template <class _Container> -inline bool -operator==(const _DBG_iter_base<_Container>& __x, const _DBG_iter_base<_Container>& __y) { - _STLP_DEBUG_CHECK(__check_same_or_null_owner(__x, __y)) - return __x._M_iterator == __y._M_iterator; -} - -template <class _Container> -inline bool -operator<(const _DBG_iter_base<_Container>& __x, const _DBG_iter_base<_Container>& __y) { - _STLP_DEBUG_CHECK(__check_same_or_null_owner(__x, __y)) - typedef typename _DBG_iter_base<_Container>::_Iterator_category _Category; - return _CompareIt(__x._M_iterator , __y._M_iterator, _Category()); -} - -template <class _Container> -inline bool -operator>(const _DBG_iter_base<_Container>& __x, - const _DBG_iter_base<_Container>& __y) { - typedef typename _DBG_iter_base<_Container>::_Iterator_category _Category; - return _CompareIt(__y._M_iterator , __x._M_iterator, _Category()); -} - -template <class _Container> -inline bool -operator>=(const _DBG_iter_base<_Container>& __x, const _DBG_iter_base<_Container>& __y) { - _STLP_DEBUG_CHECK(__check_same_or_null_owner(__x, __y)) - typedef typename _DBG_iter_base<_Container>::_Iterator_category _Category; - return !_CompareIt(__x._M_iterator , __y._M_iterator, _Category()); -} - -template <class _Container> -inline bool -operator<=(const _DBG_iter_base<_Container>& __x, - const _DBG_iter_base<_Container>& __y) { - typedef typename _DBG_iter_base<_Container>::_Iterator_category _Category; - return !_CompareIt(__y._M_iterator , __x._M_iterator, _Category()); -} - -template <class _Container> -inline bool -operator!=(const _DBG_iter_base<_Container>& __x, - const _DBG_iter_base<_Container>& __y) { - _STLP_DEBUG_CHECK(__check_same_or_null_owner(__x, __y)) - return __x._M_iterator != __y._M_iterator; -} - -//------------------------------------------ - -template <class _Container, class _Traits> -inline _DBG_iter<_Container, _Traits> -operator+(ptrdiff_t __n, const _DBG_iter<_Container, _Traits>& __it) { - _DBG_iter<_Container, _Traits> __tmp(__it); - return __tmp += __n; -} - - -template <class _Iterator> -inline _Iterator _Non_Dbg_iter(_Iterator __it) -{ return __it; } - -#if defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -template <class _Container, class _Traits> -inline typename _DBG_iter<_Container, _Traits>::_Nonconst_iterator -_Non_Dbg_iter(_DBG_iter<_Container, _Traits> __it) -{ return __it._M_iterator; } -#endif - -/* - * Helper classes to check iterator range or pointer validity - * at construction time. - */ -template <class _Container> -class __construct_checker { - typedef typename _Container::value_type value_type; -protected: - __construct_checker() {} - - __construct_checker(const value_type* __p) { - _STLP_VERBOSE_ASSERT((__p != 0), _StlMsg_INVALID_ARGUMENT) - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIter> - __construct_checker(const _InputIter& __f, const _InputIter& __l) { - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - _M_check_dispatch(__f, __l, _Integral()); - } - - template <class _Integer> - void _M_check_dispatch(_Integer , _Integer, const __true_type& /*IsIntegral*/) {} - - template <class _InputIter> - void _M_check_dispatch(const _InputIter& __f, const _InputIter& __l, const __false_type& /*IsIntegral*/) { - _STLP_DEBUG_CHECK(__check_range(__f,__l)) - } -#endif - -#if !defined (_STLP_MEMBER_TEMPLATES) || !defined (_STLP_NO_METHOD_SPECIALIZATION) - __construct_checker(const value_type* __f, const value_type* __l) { - _STLP_DEBUG_CHECK(__check_ptr_range(__f,__l)) - } - - typedef _DBG_iter_base<_Container> _IteType; - __construct_checker(const _IteType& __f, const _IteType& __l) { - _STLP_DEBUG_CHECK(__check_range(__f,__l)) - } -#endif -}; - -#if defined (_STLP_USE_OLD_HP_ITERATOR_QUERIES) -# if defined (_STLP_NESTED_TYPE_PARAM_BUG) ||\ - (defined (__SUNPRO_CC) && __SUNPRO_CC < 0x600) ||\ - (defined (_STLP_MSVC) && (_STLP_MSVC < 1100)) -# define _STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS 1 -# endif - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Container> -inline ptrdiff_t* -distance_type(const _STLP_PRIV _DBG_iter_base<_Container>&) { return (ptrdiff_t*) 0; } - -# if !defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _Container> -inline _STLP_TYPENAME_ON_RETURN_TYPE _STLP_PRIV _DBG_iter_base<_Container>::value_type* -value_type(const _STLP_PRIV _DBG_iter_base<_Container>&) { - typedef typename _STLP_PRIV _DBG_iter_base<_Container>::value_type _Val; - return (_Val*)0; -} - -template <class _Container> -inline _STLP_TYPENAME_ON_RETURN_TYPE _STLP_PRIV _DBG_iter_base<_Container>::_Iterator_category -iterator_category(const _STLP_PRIV _DBG_iter_base<_Container>&) { - typedef typename _STLP_PRIV _DBG_iter_base<_Container>::_Iterator_category _Category; - return _Category(); -} -# endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -#endif /* _STLP_USE_OLD_HP_ITERATOR_QUERIES */ - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* INTERNAL_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_list.h b/WebKit/android/stlport/stl/debug/_list.h deleted file mode 100644 index 322ec1c..0000000 --- a/WebKit/android/stlport/stl/debug/_list.h +++ /dev/null @@ -1,502 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DBG_LIST_H -#define _STLP_INTERNAL_DBG_LIST_H - -#ifndef _STLP_INTERNAL_ALGO_H -# include <stl/_algo.h> -#endif - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -#define _STLP_NON_DBG_LIST _STLP_PRIV _STLP_NON_DBG_NAME(list) <_Tp, _Alloc> - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _Tp, class _Alloc> -inline _Tp* -value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_LIST >&) -{ return (_Tp*)0; } -template <class _Tp, class _Alloc> -inline bidirectional_iterator_tag -iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_LIST >&) -{ return bidirectional_iterator_tag(); } -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class list : -#if !defined (__DMC__) - private -#endif - _STLP_PRIV __construct_checker<_STLP_NON_DBG_LIST > -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - , public __stlport_class<list<_Tp, _Alloc> > -#endif -{ - typedef _STLP_NON_DBG_LIST _Base; - typedef list<_Tp, _Alloc> _Self; - typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_LIST > _ConstructCheck; - -public: - __IMPORT_CONTAINER_TYPEDEFS(_Base) - -public: - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Nonconst_traits<value_type> > > iterator; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Const_traits<value_type> > > const_iterator; - - _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS; - -private: - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - - void _Invalidate_iterator(const iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); } - void _Invalidate_iterators(const iterator& __first, const iterator& __last) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } - - typedef typename _Base::iterator _Base_iterator; - -public: - explicit list(const allocator_type& __a = allocator_type()) : - _M_non_dbg_impl(__a), _M_iter_list(&_M_non_dbg_impl) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit list(size_type __n, const _Tp& __x = _Tp(), -#else - list(size_type __n, const _Tp& __x, -#endif /*!_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__n, __x, __a), _M_iter_list(&_M_non_dbg_impl) {} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit list(size_type __n) - : _M_non_dbg_impl(__n), _M_iter_list(&_M_non_dbg_impl) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - list(__move_source<_Self> src) - : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because insert does all of - // that anyway. - template <class _InputIterator> - list(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last), __a), - _M_iter_list(&_M_non_dbg_impl) {} -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - list(_InputIterator __first, _InputIterator __last) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)), - _M_iter_list(&_M_non_dbg_impl) {} -# endif -#else - - list(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first, __last, __a), - _M_iter_list(&_M_non_dbg_impl) {} - list(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first._M_iterator, __last._M_iterator, __a), - _M_iter_list(&_M_non_dbg_impl) {} - -#endif - - list(const _Self& __x) : - _ConstructCheck(__x), - _M_non_dbg_impl(__x._M_non_dbg_impl) , _M_iter_list(&_M_non_dbg_impl) {} - - _Self& operator=(const _Self& __x) { - if (this != &__x) { - //Should not invalidate end iterator - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl = __x._M_non_dbg_impl; - } - return *this; - } - - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } - - iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - - iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - size_type size() const { return _M_non_dbg_impl.size(); } - size_type max_size() const { return _M_non_dbg_impl.max_size(); } - bool empty() const { return _M_non_dbg_impl.empty(); } - - // those are here to enforce checking - reference front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *begin(); - } - const_reference front() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *begin(); - } - reference back() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *(--end()); - } - const_reference back() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *(--end()); - } - - void swap(_Self& __x) { - _M_iter_list._Swap_owners(__x._M_iter_list); - _M_non_dbg_impl.swap(__x._M_non_dbg_impl); - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const _Tp& __x = _Tp()) { -#else - iterator insert(iterator __pos, const _Tp& __x) { -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - return iterator(&_M_iter_list,_M_non_dbg_impl.insert(__pos._M_iterator, __x) ); - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos) { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { -# if (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - typedef typename _AreSameUnCVTypes<_InputIterator, iterator>::_Ret _IsListIterator; - typedef typename _AreSameUnCVTypes<_InputIterator, const_iterator>::_Ret _IsListConstIterator; - typedef typename _Lor2<_IsListIterator, _IsListConstIterator>::_Ret _DoCheck; -# endif - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_STD_DEBUG_CHECK(__check_if_not_owner(&_M_iter_list, __first, _DoCheck())) - _M_non_dbg_impl.insert(__pos._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } -#else - void insert(iterator __pos, const _Tp* __first, const _Tp* __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _M_non_dbg_impl.insert(__pos._M_iterator, __first, __last); - } - - void insert(iterator __pos, - const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_STD_DEBUG_CHECK(__check_if_not_owner(&_M_iter_list, __first, _DoCheck())) - _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator); - } -#endif - - void insert(iterator __pos, size_type __n, const _Tp& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _M_non_dbg_impl.insert(__pos._M_iterator, __n, __x); - } - - void push_back(const_reference __x) { _M_non_dbg_impl.push_back(__x); } - void pop_back() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - _Invalidate_iterator(end()); - _M_non_dbg_impl.pop_back(); - } - - void push_front(const_reference __x) { _M_non_dbg_impl.push_front(__x); } - void pop_front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - _Invalidate_iterator(begin()); - _M_non_dbg_impl.pop_front(); - } - - iterator erase(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _Invalidate_iterator(__pos); - return iterator(&_M_iter_list,_M_non_dbg_impl.erase(__pos._M_iterator)); - } - iterator erase(iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - _Invalidate_iterators(__first, __last); - return iterator (&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator)); - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const _Tp& __x = _Tp()) { -#else - void resize(size_type __new_size, const _Tp& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - _Base_iterator __i = _M_non_dbg_impl.begin(); - size_type __len = 0; - for ( ; __i != _M_non_dbg_impl.end() && __len < __new_size; ++__i, ++__len); - - if (__len == __new_size) - erase(iterator(&_M_iter_list, __i), end()); - else // __i == end() - _M_non_dbg_impl.insert(_M_non_dbg_impl.end(), __new_size - __len, __x); - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_MEMBER_TEMPLATES) -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) { - _M_check_assign(__n); - _M_non_dbg_impl.assign(__n, __val); - } - - template <class _InputIter> - void _M_assign_dispatch(_InputIter __first, _InputIter __last, - const __false_type& /*_IsIntegral*/) { - size_type __len = distance(__first, __last); - _M_check_assign(__len); - _M_non_dbg_impl.assign(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } - -public: - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } -#else - void assign(const _Tp* __first, const _Tp* __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _M_non_dbg_impl.assign(__first, __last); - } - - void assign(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _M_non_dbg_impl.assign(__first._M_iterator, __last._M_iterator); - } -#endif - -private: - void _M_check_assign(size_type __n) { - size_type __size = size(); - if (__n < __size) { - iterator __it = begin(); - advance(__it, __n + 1); - _Invalidate_iterators(__it, end()); - } - } - -public: - void assign(size_type __n, const _Tp& __val) { - _M_check_assign(__n); - _M_non_dbg_impl.assign(__n, __val); - } - - void remove(const _Tp& __x) { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - while (__first != __last) { - _Base_iterator __next = __first; - ++__next; - if (__x == *__first) { - _Invalidate_iterator(iterator(&_M_iter_list, __first)); - _M_non_dbg_impl.erase(__first); - } - __first = __next; - } - } - - void clear() { - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.clear(); - } - -public: - void splice(iterator __pos, _Self& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl); -#if (_STLP_DEBUG_LEVEL != _STLP_STANDARD_DBG_LEVEL) - if (get_allocator() == __x.get_allocator()) - __x._M_iter_list._Set_owner(_M_iter_list); - else -#endif - // Std: 23.2.2.4:4 - // end iterator is not invalidated: - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - - void splice(iterator __pos, _Self& __x, iterator __i) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__i)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&(__x._M_iter_list),__i)) - _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl, __i._M_iterator); -#if (_STLP_DEBUG_LEVEL != _STLP_STANDARD_DBG_LEVEL) - if (get_allocator() == __x.get_allocator()) - _STLP_PRIV __change_ite_owner(__i, &_M_iter_list); - else -#endif - // Std: 23.2.2.4:7 - __x._Invalidate_iterator(__i); - } - - void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, __x.begin(), __x.end())) - _STLP_DEBUG_CHECK(this == &__x ? !_STLP_PRIV __check_range(__pos, __first, __last) : true) -#if (_STLP_DEBUG_LEVEL != _STLP_STANDARD_DBG_LEVEL) - if (this->get_allocator() == __x.get_allocator()) - _STLP_PRIV __change_range_owner(__first, __last, &_M_iter_list); - else -#endif - // Std: 23.2.2.4:12 - __x._Invalidate_iterators(__first, __last); - _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl, __first._M_iterator, __last._M_iterator); - } - - void merge(_Self& __x) { -#if !defined (_STLP_NO_EXTENSIONS) - _STLP_DEBUG_CHECK(_STLP_STD::is_sorted(begin()._M_iterator, end()._M_iterator)) - _STLP_DEBUG_CHECK(_STLP_STD::is_sorted(__x.begin()._M_iterator, __x.end()._M_iterator)) -#endif - _M_non_dbg_impl.merge(__x._M_non_dbg_impl); - if (this->get_allocator() == __x.get_allocator()) { - __x._M_iter_list._Set_owner(_M_iter_list); - } - else { - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - } - void reverse() { - _M_non_dbg_impl.reverse(); - } - void unique() { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - if (__first == __last) return; - _Base_iterator __next = __first; - while (++__next != __last) { - if (*__first == *__next) { - _Invalidate_iterator(iterator(&_M_iter_list, __next)); - _M_non_dbg_impl.erase(__next); - } - else - __first = __next; - __next = __first; - } - } - void sort() { - _M_non_dbg_impl.sort(); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Predicate> - void remove_if(_Predicate __pred) { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - while (__first != __last) { - _Base_iterator __next = __first; - ++__next; - if (__pred(*__first)) { - _Invalidate_iterator(iterator(&_M_iter_list, __first)); - _M_non_dbg_impl.erase(__first); - } - __first = __next; - } - } - - template <class _BinaryPredicate> - void unique(_BinaryPredicate __binary_pred) { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - if (__first == __last) return; - _Base_iterator __next = __first; - while (++__next != __last) { - if (__binary_pred(*__first, *__next)) { - _Invalidate_iterator(iterator(&_M_iter_list, __next)); - _M_non_dbg_impl.erase(__next); - } - else - __first = __next; - __next = __first; - } - } - - template <class _StrictWeakOrdering> - void merge(_Self& __x, _StrictWeakOrdering __comp) { -#if !defined (_STLP_NO_EXTENSIONS) - _STLP_DEBUG_CHECK(_STLP_STD::is_sorted(_M_non_dbg_impl.begin(), _M_non_dbg_impl.end(), __comp)) - _STLP_DEBUG_CHECK(_STLP_STD::is_sorted(__x.begin()._M_iterator, __x.end()._M_iterator, __comp)) -#endif - _M_non_dbg_impl.merge(__x._M_non_dbg_impl, __comp); - if (this->get_allocator() == __x.get_allocator()) { - __x._M_iter_list._Set_owner(_M_iter_list); - } - else { - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - } - - template <class _StrictWeakOrdering> - void sort(_StrictWeakOrdering __comp) { - _M_non_dbg_impl.sort(__comp); - } -#endif -}; - - -_STLP_END_NAMESPACE - -#undef _STLP_NON_DBG_LIST - -#endif /* _STLP_INTERNAL_LIST_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_slist.h b/WebKit/android/stlport/stl/debug/_slist.h deleted file mode 100644 index ef57066..0000000 --- a/WebKit/android/stlport/stl/debug/_slist.h +++ /dev/null @@ -1,612 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DBG_SLIST_H -#define _STLP_INTERNAL_DBG_SLIST_H - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -#define _STLP_NON_DBG_SLIST _STLP_PRIV _STLP_NON_DBG_NAME(slist) <_Tp, _Alloc> - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _Tp, class _Alloc> -inline _Tp* -value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_SLIST >&) -{ return (_Tp*)0; } - -template <class _Tp, class _Alloc> -inline forward_iterator_tag -iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_SLIST >&) -{ return forward_iterator_tag(); } -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -/* - * slist special debug traits version. - */ -template <class _Traits> -struct _SlistDbgTraits : _Traits { - typedef _SlistDbgTraits<typename _Traits::_ConstTraits> _ConstTraits; - typedef _SlistDbgTraits<typename _Traits::_NonConstTraits> _NonConstTraits; - - /* - * We don't want the before_begin iterator to return false at _Dereferenceable - * call to do not break the current debug framework but calling * operator should - * fail. - */ - template <class _Iterator> - static bool _Check(const _Iterator& __it) - { return !(__it._M_iterator == (__it._Get_container_ptr())->before_begin()); } -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class slist : -#if !defined (__DMC__) - private -#endif - _STLP_PRIV __construct_checker<_STLP_NON_DBG_SLIST > -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - , public __stlport_class<slist<_Tp, _Alloc> > -#endif -{ -private: - typedef _STLP_NON_DBG_SLIST _Base; - typedef slist<_Tp,_Alloc> _Self; - typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_SLIST > _ConstructCheck; - -public: - - __IMPORT_CONTAINER_TYPEDEFS(_Base) - - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _SlistDbgTraits<_Nonconst_traits<value_type> > > iterator; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _SlistDbgTraits<_Const_traits<value_type> > > const_iterator; - - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } -private: - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - - void _Invalidate_iterator(const iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); } - void _Invalidate_iterators(const iterator& __first, const iterator& __last) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } - - typedef typename _Base::iterator _Base_iterator; - -public: - explicit slist(const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__a) , _M_iter_list(&_M_non_dbg_impl) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit slist(size_type __n, const value_type& __x = _Tp(), -#else - slist(size_type __n, const value_type& __x, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__n, __x, __a), _M_iter_list(&_M_non_dbg_impl) {} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit slist(size_type __n) : _M_non_dbg_impl(__n) , _M_iter_list(&_M_non_dbg_impl) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - slist(__move_source<_Self> src) - : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because _M_insert_after_range - // already does them. - template <class _InputIterator> - slist(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last), __a), - _M_iter_list(&_M_non_dbg_impl) {} -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - slist(_InputIterator __first, _InputIterator __last) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)), - _M_iter_list(&_M_non_dbg_impl) {} -# endif -#else - - slist(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first, __last, __a), - _M_iter_list(&_M_non_dbg_impl) {} - - slist(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type() ) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first._M_iterator, __last._M_iterator, __a), - _M_iter_list(&_M_non_dbg_impl) {} -#endif - - slist(const _Self& __x) : - _ConstructCheck(__x), - _M_non_dbg_impl(__x._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {} - - _Self& operator= (const _Self& __x) { - if (this != &__x) { - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl = __x._M_non_dbg_impl; - } - return *this; - } - - ~slist() {} - - void assign(size_type __n, const value_type& __val) { - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.assign(__n, __val); - } - - iterator before_begin() - { return iterator(&_M_iter_list, _M_non_dbg_impl.before_begin()); } - const_iterator before_begin() const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.before_begin()); } - - iterator begin() - { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator begin() const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin());} - - iterator end() - { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_iterator end() const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - - bool empty() const { return _M_non_dbg_impl.empty(); } - size_type size() const { return _M_non_dbg_impl.size(); } - size_type max_size() const { return _M_non_dbg_impl.max_size(); } - - void swap(_Self& __x) { - _M_iter_list._Swap_owners(__x._M_iter_list); - _M_non_dbg_impl.swap(__x._M_non_dbg_impl); - } - - reference front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return _M_non_dbg_impl.front(); - } - const_reference front() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return _M_non_dbg_impl.front(); - } - void push_front(const_reference __x) { _M_non_dbg_impl.push_front(__x); } - void pop_front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - _M_non_dbg_impl.pop_front(); - } - iterator previous(const_iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - return iterator(&_M_iter_list, _M_non_dbg_impl.previous(__pos._M_iterator)); - } - const_iterator previous(const_iterator __pos) const { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - return const_iterator(&_M_iter_list, _M_non_dbg_impl.previous(__pos._M_iterator)); - } - -public: - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert_after(iterator __pos, const value_type& __x = _Tp()) { -#else - iterator insert_after(iterator __pos, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - return iterator(&_M_iter_list,_M_non_dbg_impl.insert_after(__pos._M_iterator, __x)); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert_after(iterator __pos) { - return insert_after(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void insert_after(iterator __pos, size_type __n, const value_type& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _M_non_dbg_impl.insert_after(__pos._M_iterator, __n, __x); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.assign(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } -#else - void assign(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.assign(__first._M_iterator, __last._M_iterator); - } - void assign(const value_type *__first, const value_type *__last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.assign(__first, __last); - } -#endif - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InIter> - void insert_after(iterator __pos, _InIter __first, _InIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _M_non_dbg_impl.insert_after(__pos._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } - - template <class _InIter> - void insert(iterator __pos, _InIter __first, _InIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _M_non_dbg_impl.insert(__pos._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } -#else - void insert_after(iterator __pos, - const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _M_non_dbg_impl.insert_after(__pos._M_iterator, __first._M_iterator, __last._M_iterator); - } - void insert_after(iterator __pos, - const value_type* __first, const value_type* __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _M_non_dbg_impl.insert_after(__pos._M_iterator, __first, __last); - } - - void insert(iterator __pos, const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator); - } - void insert(iterator __pos, const value_type* __first, - const value_type* __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first, __last)) - _M_non_dbg_impl.insert(__pos._M_iterator, __first, __last); - } -#endif - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos, const value_type& __x = _Tp()) { -#else - iterator insert(iterator __pos, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - return iterator(&_M_iter_list, _M_non_dbg_impl.insert(__pos._M_iterator, __x)); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos) { - return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); - } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void insert(iterator __pos, size_type __n, const value_type& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - _M_non_dbg_impl.insert(__pos._M_iterator, __n, __x); - } - -public: - iterator erase_after(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - iterator __tmp = __pos; ++__tmp; - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__tmp)) - _Invalidate_iterator(__tmp); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase_after(__pos._M_iterator)); - } - iterator erase_after(iterator __before_first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__before_first)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__before_first, __last, begin(), end())) - iterator __tmp = __before_first; ++__tmp; - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__tmp)) - _Invalidate_iterators(__tmp, __last); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase_after(__before_first._M_iterator, __last._M_iterator)); - } - - iterator erase(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_VERBOSE_ASSERT(__pos._M_iterator != _M_non_dbg_impl.before_begin(), _StlMsg_INVALID_ARGUMENT) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _Invalidate_iterator(__pos); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator)); - } - iterator erase(iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - _Invalidate_iterators(__first, __last); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator)); - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const value_type& __x = _Tp()) { -#else - void resize(size_type __new_size, const value_type& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - _M_non_dbg_impl.resize(__new_size, __x); - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void clear() { - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.clear(); - } - -public: - // Removes all of the elements from the list __x to *this, inserting - // them immediately after __pos. __x must not be *this. Complexity: - // linear in __x.size(). - void splice_after(iterator __pos, _Self& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_VERBOSE_ASSERT(!(&__x == this), _StlMsg_INVALID_ARGUMENT) - _M_non_dbg_impl.splice_after(__pos._M_iterator, __x._M_non_dbg_impl); - if (get_allocator() == __x.get_allocator()) { - __x._M_iter_list._Set_owner(_M_iter_list); - } - else { - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - } - - // Moves the element that follows __prev to *this, inserting it immediately - // after __pos. This is constant time. - void splice_after(iterator __pos, _Self& __x, iterator __prev) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__prev)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&__x._M_iter_list, __prev)) - iterator __elem = __prev; ++__elem; - _M_non_dbg_impl.splice_after(__pos._M_iterator, __x._M_non_dbg_impl, __prev._M_iterator); - if (get_allocator() == __x.get_allocator()) { - _STLP_PRIV __change_ite_owner(__elem, &_M_iter_list); - } - else { - __x._Invalidate_iterator(__elem); - } - } - - // Moves the range [__before_first + 1, __before_last + 1) to *this, - // inserting it immediately after __pos. This is constant time. - void splice_after(iterator __pos, _Self& __x, - iterator __before_first, iterator __before_last) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__before_first, __before_last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&__x._M_iter_list, __before_first)) - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__before_first)) - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__before_last)) - iterator __first = __before_first; ++__first; - iterator __last = __before_last; ++__last; - if (get_allocator() == __x.get_allocator()) { - _STLP_PRIV __change_range_owner(__first, __last, &_M_iter_list); - } - else { - __x._Invalidate_iterators(__first, __last); - } - _M_non_dbg_impl.splice_after(__pos._M_iterator, __x._M_non_dbg_impl, - __before_first._M_iterator, __before_last._M_iterator); - } - - // Linear in distance(begin(), __pos), and linear in __x.size(). - void splice(iterator __pos, _Self& __x) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - _STLP_VERBOSE_ASSERT(!(&__x == this), _StlMsg_INVALID_ARGUMENT) - _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl); - if (get_allocator() == __x.get_allocator()) { - __x._M_iter_list._Set_owner(_M_iter_list); - } - else { - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - } - - // Linear in distance(begin(), __pos), and in distance(__x.begin(), __i). - void splice(iterator __pos, _Self& __x, iterator __i) { - //__pos should be owned by *this and not be the before_begin iterator - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - //__i should be dereferenceable, not before_begin and be owned by __x - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__i)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&__x._M_iter_list ,__i)) - _STLP_VERBOSE_ASSERT(!(__i == __x.before_begin()), _StlMsg_INVALID_ARGUMENT) - if (get_allocator() == __x.get_allocator()) { - _STLP_PRIV __change_ite_owner(__i, &_M_iter_list); - } - else { - __x._Invalidate_iterator(__i); - } - _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl, __i._M_iterator); - } - - // Linear in distance(begin(), __pos), in distance(__x.begin(), __first), - // and in distance(__first, __last). - void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _STLP_VERBOSE_ASSERT(!(__pos._M_iterator == _M_non_dbg_impl.before_begin()), _StlMsg_INVALID_ARGUMENT) - //_STLP_VERBOSE_ASSERT(&__x != this, _StlMsg_INVALID_ARGUMENT) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, __x.begin(), __x.end())) - if (get_allocator() == __x.get_allocator()) { - _STLP_PRIV __change_range_owner(__first, __last, &_M_iter_list); - } - else { - __x._Invalidate_iterators(__first, __last); - } - _M_non_dbg_impl.splice(__pos._M_iterator, __x._M_non_dbg_impl, - __first._M_iterator, __last._M_iterator); - } - - void reverse() - { _M_non_dbg_impl.reverse(); } - - void remove(const value_type& __val) { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - while (__first != __last) { - _Base_iterator __next = __first; - ++__next; - if (__val == *__first) { - _Invalidate_iterator(iterator(&_M_iter_list, __first)); - _M_non_dbg_impl.erase(__first); - } - __first = __next; - } - } - void unique() { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - if (__first == __last) return; - _Base_iterator __next = __first; - while (++__next != __last) { - if (*__first == *__next) { - _Invalidate_iterator(iterator(&_M_iter_list, __next)); - _M_non_dbg_impl.erase(__next); - } - else - __first = __next; - __next = __first; - } - } - void merge(_Self& __x) { - _STLP_VERBOSE_ASSERT(&__x != this, _StlMsg_INVALID_ARGUMENT) -#if !defined (_STLP_NO_EXTENSIONS) - /* comments below due to bug in GCC compilers: ones eat all memory and die if see - * something like namespace_name::func_name() - ptr - */ - _STLP_DEBUG_CHECK( /* _STLP_STD:: */ is_sorted(_M_non_dbg_impl.begin(), _M_non_dbg_impl.end())) - _STLP_DEBUG_CHECK( /* _STLP_STD:: */ is_sorted(__x.begin()._M_iterator, __x.end()._M_iterator)) -#endif - _M_non_dbg_impl.merge(__x._M_non_dbg_impl); - if (get_allocator() == __x.get_allocator()) { - __x._M_iter_list._Set_owner(_M_iter_list); - } - else { - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - } - void sort() { - _M_non_dbg_impl.sort(); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Predicate> - void remove_if(_Predicate __pred) { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - while (__first != __last) { - _Base_iterator __next = __first; - ++__next; - if (__pred(*__first)) { - _Invalidate_iterator(iterator(&_M_iter_list, __first)); - _M_non_dbg_impl.erase(__first); - } - __first = __next; - } - } - - template <class _BinaryPredicate> - void unique(_BinaryPredicate __pred) { - _Base_iterator __first = _M_non_dbg_impl.begin(), __last = _M_non_dbg_impl.end(); - if (__first == __last) return; - _Base_iterator __next = __first; - while (++__next != __last) { - if (__binary_pred(*__first, *__next)) { - _Invalidate_iterator(iterator(&_M_iter_list, __next)); - _M_non_dbg_impl.erase(__next); - } - else - __first = __next; - __next = __first; - } - } - - template <class _StrictWeakOrdering> - void merge(_Self& __x, _StrictWeakOrdering __ord) { - _STLP_VERBOSE_ASSERT(&__x != this, _StlMsg_INVALID_ARGUMENT) -#if !defined (_STLP_NO_EXTENSIONS) - /* comments below due to bug in GCC compilers: ones eat all memory and die if see - * something like namespace_name::func_name() - ptr - */ - _STLP_DEBUG_CHECK( /* _STLP_STD:: */ is_sorted(_M_non_dbg_impl.begin(), _M_non_dbg_impl.end(), __ord)) - _STLP_DEBUG_CHECK( /* _STLP_STD:: */ is_sorted(__x.begin()._M_iterator, __x.end()._M_iterator, __ord)) -#endif - _M_non_dbg_impl.merge(__x._M_non_dbg_impl, __ord); - if (get_allocator() == __x.get_allocator()) { - __x._M_iter_list._Set_owner(_M_iter_list); - } - else { - __x._Invalidate_iterators(__x.begin(), __x.end()); - } - } - - template <class _StrictWeakOrdering> - void sort(_StrictWeakOrdering __comp) - { _M_non_dbg_impl.sort(__comp); } -#endif -}; - -_STLP_END_NAMESPACE - -#undef _STLP_NON_DBG_SLIST - -#endif /* _STLP_INTERNAL_DBG_SLIST_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_string.h b/WebKit/android/stlport/stl/debug/_string.h deleted file mode 100644 index 62adc63..0000000 --- a/WebKit/android/stlport/stl/debug/_string.h +++ /dev/null @@ -1,866 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -#ifndef _STLP_DBG_STRING_H -#define _STLP_DBG_STRING_H - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define _STLP_NON_DBG_STRING_NAME _STLP_NON_DBG_NAME(str) -#define _STLP_NON_DBG_STRING _STLP_PRIV _STLP_NON_DBG_STRING_NAME <_CharT, _Traits, _Alloc> - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _CharT,class _Traits, class _Alloc> -inline _CharT* -value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_STRING >&) -{ return (_CharT*)0; } -template <class _CharT, class _Traits, class _Alloc> -inline random_access_iterator_tag -iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_STRING >&) -{ return random_access_iterator_tag(); } -#endif - -template <class _CharT, class _Traits, class _Alloc> -class basic_string : -#if !defined (__DMC__) - private -#else - public -#endif - _STLP_PRIV __construct_checker<_STLP_NON_DBG_STRING > -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (basic_string) - , public __stlport_class<basic_string<_CharT, _Traits, _Alloc> > -#endif -{ -protected: - typedef _STLP_NON_DBG_STRING _Base; - typedef basic_string<_CharT, _Traits, _Alloc> _Self; - typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_STRING > _ConstructCheck; - typedef typename _IsPOD<_CharT>::_Type _Char_Is_POD; - -public: - __IMPORT_CONTAINER_TYPEDEFS(_Base) - typedef typename _Base::traits_type traits_type; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Nonconst_traits<value_type> > > iterator; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_Const_traits<value_type> > > const_iterator; - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -public: // Constructor, destructor, assignment. - typedef typename _Base::_Reserve_t _Reserve_t; - -private: - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - - void _Invalidate_all() - { _M_iter_list._Invalidate_all(); } - void _Compare_Capacity (size_type __old_capacity) { - if (this->capacity() > __old_capacity) { - _Invalidate_all(); - } - } - void _Invalidate_iterator(const iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); } - void _Invalidate_iterators(const iterator& __f, const iterator& __l) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __f, __l); } - -public: -#include <stl/_string_npos.h> - - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } - - explicit basic_string(const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__a), _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(_Reserve_t __r, size_t __n, - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__r, __n, __a), _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(const _Self& __s) - : _ConstructCheck(__s), - _M_non_dbg_impl(__s._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(const _Self& __s, size_type __pos, size_type __n = npos, - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__s._M_non_dbg_impl, __pos, __n, __a), - _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(const _CharT* __s, size_type __n, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__s), _M_non_dbg_impl(__s, __n, __a), - _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(const _CharT* __s, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__s), - _M_non_dbg_impl(__s, __a), _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(size_type __n, _CharT __c, - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__n, __c, __a), _M_iter_list(&_M_non_dbg_impl) {} - - basic_string(__move_source<_Self> src) - : _M_non_dbg_impl(__move_source<_Base >(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - -#if !defined (_STLP_MEMBER_TEMPLATES) || defined(__MRC__) || defined(__SC__) - basic_string(const _CharT* __f, const _CharT* __l, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__f, __l), - _M_non_dbg_impl(__f, __l, __a), _M_iter_list(&_M_non_dbg_impl) { - } - basic_string(const_iterator __f, const_iterator __l, - const allocator_type & __a = allocator_type()) - : _ConstructCheck(__f, __l), - _M_non_dbg_impl(__f._M_iterator, __l._M_iterator, __a), _M_iter_list(&_M_non_dbg_impl) { - } -#else - template <class _InputIterator> - basic_string(_InputIterator __f, _InputIterator __l, - const allocator_type & __a _STLP_ALLOCATOR_TYPE_DFL) - : _ConstructCheck(__f, __l), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__f), _STLP_PRIV _Non_Dbg_iter(__l), __a), - _M_iter_list(&_M_non_dbg_impl) {} -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - basic_string(_InputIterator __f, _InputIterator __l) - : _ConstructCheck(__f, __l), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__f), _STLP_PRIV _Non_Dbg_iter(__l)), - _M_iter_list(&_M_non_dbg_impl) {} -# endif -#endif - -private: - // constructor from non-debug version for substr - basic_string (const _Base& __x) - : _M_non_dbg_impl(__x), _M_iter_list(&_M_non_dbg_impl) {} - -public: - _Self& operator=(const _Self& __s) { - if (this != &__s) { - assign(__s); - } - return *this; - } - - _Self& operator=(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return assign(__s); - } - - _Self& operator=(_CharT __c) { - return assign(1, __c); - } - - // Iterators. - iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - // Size, capacity, etc. - size_type size() const { return _M_non_dbg_impl.size(); } - size_type length() const { return _M_non_dbg_impl.length(); } - size_t max_size() const { return _M_non_dbg_impl.max_size(); } - - void resize(size_type __n, _CharT __c) { - if (__n > capacity()) - _Invalidate_all(); - else if (__n < size()) - _Invalidate_iterators(begin() + __n, end()); - _M_non_dbg_impl.resize(__n, __c); - } - void resize(size_type __n) { resize(__n, _STLP_DEFAULT_CONSTRUCTED(_CharT)); } - size_type capacity() const { return _M_non_dbg_impl.capacity(); } - - void reserve(size_type __s = 0) { - if (__s > capacity()) _Invalidate_all(); - _M_non_dbg_impl.reserve(__s); - } - - void clear() { - _Invalidate_all(); - _M_non_dbg_impl.clear(); - } - - bool empty() const { return _M_non_dbg_impl.empty(); } - - const_reference operator[](size_type __n) const { - _STLP_VERBOSE_ASSERT(__n <= this->size(), _StlMsg_OUT_OF_BOUNDS); - return _M_non_dbg_impl[__n]; - } - - reference operator[](size_type __n) { - _STLP_VERBOSE_ASSERT(__n < this->size(), _StlMsg_OUT_OF_BOUNDS) - return _M_non_dbg_impl[__n]; - } - - const_reference at(size_type __n) const { return _M_non_dbg_impl.at(__n); } - reference at(size_type __n) { return _M_non_dbg_impl.at(__n); } - - // Append, operator+=, push_back. - _Self& operator+=(const _Self& __s) { return append(__s); } - _Self& operator+=(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return append(__s); - } - _Self& operator+=(_CharT __c) { return append(1, __c); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIter> - _Self& append(_InputIter __first, _InputIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - _Compare_Capacity(__old_capacity); - return *this; - } -#endif - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - _Self& append(const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(__f, __l); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& append(const_iterator __f, const_iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(__f._M_iterator, __l._M_iterator); - _Compare_Capacity(__old_capacity); - return *this; - } -#endif - - _Self& append(const _Self& __s) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(__s._M_non_dbg_impl); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& append(const _Self& __s, size_type __pos, size_type __n) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(__s._M_non_dbg_impl, __pos, __n); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& append(const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(__s, __n); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& append(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.append(__s); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& append(size_type __n, _CharT __c) { - size_type __old_capacity = this->capacity(); - _M_non_dbg_impl.append(__n, __c); - _Compare_Capacity(__old_capacity); - return *this; - } - - void push_back(_CharT __c) { - size_type __old_capacity = this->capacity(); - _M_non_dbg_impl.push_back(__c); - _Compare_Capacity(__old_capacity); - } - - void pop_back() { - _Invalidate_iterator(this->end()); - _M_non_dbg_impl.pop_back(); - } - - // Assign -private: - void _M_check_assign(size_type __n) { - if (__n > capacity()) { - _Invalidate_all(); - } - else if (__n < size()) { - _Invalidate_iterators(begin() + __n, end()); - } - } - -public: - _Self& assign(const _Self& __s) { - _M_check_assign(__s.size()); - _M_non_dbg_impl.assign(__s._M_non_dbg_impl); - return *this; - } - - _Self& assign(const _Self& __s, size_type __pos, size_type __n) { - if (__pos < __s.size()) { - _M_check_assign((min) (__n, __s.size() - __pos)); - } - _M_non_dbg_impl.assign(__s._M_non_dbg_impl, __pos, __n); - return *this; - } - - _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_non_dbg_impl.assign(__s, __s + __n); - return *this; - } - - _Self& assign(const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - _M_check_assign(_Traits::length(__s)); - _M_non_dbg_impl.assign(__s); - return *this; - } - - _Self& assign(size_type __n, _CharT __c) { - _M_check_assign(__n); - _M_non_dbg_impl.assign(__n, __c); - return *this; - } - -#if defined(_STLP_MEMBER_TEMPLATES) -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __x, const __true_type& /*_Integral*/) { - _M_check_assign(__n); - _M_non_dbg_impl.assign((size_type)__n, (_CharT)__x); - } - - template <class _InputIter> - void _M_assign_dispatch(_InputIter __f, _InputIter __l, const __false_type& /*_Integral*/) { - _M_check_assign(distance(__f, __l)); - _M_non_dbg_impl.assign(_STLP_PRIV _Non_Dbg_iter(__f), _STLP_PRIV _Non_Dbg_iter(__l)); - } -public: - template <class _InputIter> - inline _Self& assign(_InputIter __first, _InputIter __last) { - _STLP_FIX_LITERAL_BUG(__first) _STLP_FIX_LITERAL_BUG(__last) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - typedef typename _IsIntegral<_InputIter>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - return *this; - } -#endif - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - _Self& assign(const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f) _STLP_FIX_LITERAL_BUG(__l) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l)) - _M_check_assign(distance(__f, __l)); - _M_non_dbg_impl.assign(__f, __l); - return *this; - } - _Self& assign(const_iterator __f, const_iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - _M_check_assign(distance(__f, __l)); - _M_non_dbg_impl.assign(__f._M_iterator, __l._M_iterator); - return *this; - } -#endif - - // Insert - _Self& insert(size_type __pos, const _Self& __s) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos, __s._M_non_dbg_impl); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& insert(size_type __pos, const _Self& __s, - size_type __beg, size_type __n) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos, __s._M_non_dbg_impl, __beg, __n); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& insert(size_type __pos, const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos, __s, __n); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& insert(size_type __pos, const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return insert(__pos, __s, _Traits::length(__s)); - } - - _Self& insert(size_type __pos, size_type __n, _CharT __c) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos, __n, __c); - _Compare_Capacity(__old_capacity); - return *this; - } - - iterator insert(iterator __p, _CharT __c) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p)) - size_type __old_capacity = capacity(); - typename _Base::iterator __ret = _M_non_dbg_impl.insert(__p._M_iterator, __c); - _Compare_Capacity(__old_capacity); - return iterator(&_M_iter_list, __ret); - } - - void insert(iterator __p, size_t __n, _CharT __c) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__p._M_iterator, __n, __c); - _Compare_Capacity(__old_capacity); - } - -#if defined (_STLP_MEMBER_TEMPLATES) -private: - template <class _RandomIter> - void _M_insert_aux (iterator __p, _RandomIter __first, _RandomIter __last, - const __true_type& /*_IsIterator*/) - { _M_non_dbg_impl.insert(__p._M_iterator, __first._M_iterator, __last._M_iterator); } - - template<class _InputIter> - void _M_insert_aux (iterator __p, _InputIter __first, _InputIter __last, - const __false_type& /*_IsIterator*/) { - _M_non_dbg_impl.insert(__p._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } - -public: - template <class _InputIter> - void insert(iterator __p, _InputIter __first, _InputIter __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) - - /* In debug mode we are encapsulating non debug string iterators in debug one. - * Doing so the non debug implementation will not check for self insertion - * (x.insert(x.begin(), x.begin(), x.end()). To avoid this problem we try to - * guess when _InputIter is iterator or const_iterator and in this case call - * the non debug insert method with non debug string iterator. - */ - typedef typename _AreSameUnCVTypes<_InputIter, iterator>::_Ret _IsNonConstIterator; - typedef typename _AreSameUnCVTypes<_InputIter, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsNonConstIterator, _IsConstIterator>::_Ret _IsIterator; - - size_type __old_capacity = this->capacity(); - _M_insert_aux(__p, __first, __last, _IsIterator()); - _Compare_Capacity(__old_capacity); - } -#endif - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - void insert(iterator __p, const_iterator __f, const_iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f,__l)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__p._M_iterator, __f._M_iterator, __l._M_iterator); - _Compare_Capacity(__old_capacity); - } - void insert(iterator __p, const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f)_STLP_FIX_LITERAL_BUG(__l) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__p)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f,__l)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__p._M_iterator, __f, __l); - _Compare_Capacity(__old_capacity); - } -#endif - - // Erase. - _Self& erase(size_type __pos = 0, size_type __n = npos) { - if (__pos < size()) { - _Invalidate_iterators(begin() + __pos, end()); - } - _M_non_dbg_impl.erase(__pos, __n); - return *this; - } - iterator erase(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list,__pos)) - _Invalidate_iterators(__pos, end()); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator)); - } - iterator erase(iterator __f, iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end())) - _Invalidate_iterators(__f, end()); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__f._M_iterator, __l._M_iterator)); - } - - // Substring. - _Self substr(size_type __pos = 0, size_type __n = npos) const - { return _M_non_dbg_impl.substr(__pos, __n); } - - // Replace. (Conceptually equivalent to erase followed by insert.) - _Self& replace(size_type __pos, size_type __n, const _Self& __s) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__pos, __n, __s._M_non_dbg_impl); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(size_type __pos1, size_type __n1, const _Self& __s, - size_type __pos2, size_type __n2) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__pos1, __n1, __s._M_non_dbg_impl, __pos2, __n2); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(size_type __pos, size_type __n1, const _CharT* __s, size_type __n2) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__pos, __n1, __s, __n2); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(size_type __pos, size_type __n1, const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__pos, __n1, __s); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(size_type __pos, size_type __n1, size_type __n2, _CharT __c) { - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__pos, __n1, __n2, __c); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(iterator __f, iterator __l, const _Self& __s) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end())) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __s._M_non_dbg_impl); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(iterator __f, iterator __l, const _CharT* __s, size_type __n) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end())) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __s, __n); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(iterator __f, iterator __l, const _CharT* __s) { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end())) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __s); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(iterator __f, iterator __l, size_type __n, _CharT __c) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l, begin(), end())) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__f._M_iterator, __l._M_iterator, __n, __c); - _Compare_Capacity(__old_capacity); - return *this; - } - -#if defined (_STLP_MEMBER_TEMPLATES) -private: - template <class _RandomIter> - void _M_replace_aux(iterator __first, iterator __last, - _RandomIter __f, _RandomIter __l, __true_type const& /*_IsIterator*/) - { _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator, __f._M_iterator, __l._M_iterator); } - - template <class _InputIter> - void _M_replace_aux(iterator __first, iterator __last, - _InputIter __f, _InputIter __l, __false_type const& /*_IsIterator*/) { - _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__f), _STLP_PRIV _Non_Dbg_iter(__l)); - } - -public: - template <class _InputIter> - _Self& replace(iterator __first, iterator __last, - _InputIter __f, _InputIter __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - - /* See insert comment for reson of iterator detection. - */ - typedef typename _AreSameUnCVTypes<_InputIter, iterator>::_Ret _IsNonConstIterator; - typedef typename _AreSameUnCVTypes<_InputIter, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsNonConstIterator, _IsConstIterator>::_Ret _IsIterator; - - size_type __old_capacity = capacity(); - _M_replace_aux(__first, __last, __f, __l, _IsIterator()); - _Compare_Capacity(__old_capacity); - return *this; - } -#endif - -#if !defined (_STLP_MEMBER_TEMPLATES) || \ - !defined (_STLP_NO_METHOD_SPECIALIZATION) && !defined (_STLP_NO_EXTENSIONS) - _Self& replace(iterator __first, iterator __last, - const_iterator __f, const_iterator __l) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__f, __l)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator, - __f._M_iterator, __l._M_iterator); - _Compare_Capacity(__old_capacity); - return *this; - } - - _Self& replace(iterator __first, iterator __last, - const _CharT* __f, const _CharT* __l) { - _STLP_FIX_LITERAL_BUG(__f)_STLP_FIX_LITERAL_BUG(__l) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__f, __l)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.replace(__first._M_iterator, __last._M_iterator, __f, __l); - _Compare_Capacity(__old_capacity); - return *this; - } -#endif - - // Other modifier member functions. - void swap(_Self& __s) { - _M_iter_list._Swap_owners(__s._M_iter_list); - _M_non_dbg_impl.swap(__s._M_non_dbg_impl); - } - - int compare(const _Self& __s) const - { return _M_non_dbg_impl.compare(__s._M_non_dbg_impl); } - int compare(size_type __pos, size_type __n, const _Self& __s) const - { return _M_non_dbg_impl.compare(__pos, __n, __s._M_non_dbg_impl); } - int compare(size_type __pos1, size_type __n1, const _Self& __s, - size_type __pos2, size_type __n2) const - { return _M_non_dbg_impl.compare(__pos1, __n1, __s._M_non_dbg_impl, __pos2, __n2); } - int compare(const _CharT* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - return _M_non_dbg_impl.compare(__s); - } - int compare(size_type __pos, size_type __n, const _CharT* __s) const { - _STLP_FIX_LITERAL_BUG(__s) - return _M_non_dbg_impl.compare(__pos, __n, __s); - } - int compare(size_type __pos1, size_type __n1, const _CharT* __s, - size_type __n2) const { - _STLP_FIX_LITERAL_BUG(__s) - return _M_non_dbg_impl.compare(__pos1, __n1, __s, __n2); - } - - // Helper functions for compare. - static int _STLP_CALL _M_compare(const _CharT* __f1, const _CharT* __l1, - const _CharT* __f2, const _CharT* __l2) - { return _Base::_M_compare(__f1, __l1, __f2, __l2); } - static int _STLP_CALL _M_compare(const_iterator __f1, const_iterator __l1, - const _CharT* __f2, const _CharT* __l2) - { return _Base::_M_compare(__f1._M_iterator, __l1._M_iterator, __f2, __l2); } - static int _STLP_CALL _M_compare(const _CharT* __f1, const _CharT* __l1, - const_iterator __f2, const_iterator __l2) - { return _Base::_M_compare(__f1, __l1, __f2._M_iterator, __l2._M_iterator); } - static int _STLP_CALL _M_compare(const_iterator __f1, const_iterator __l1, - const_iterator __f2, const_iterator __l2) - { return _Base::_M_compare(__f1._M_iterator, __l1._M_iterator, __f2._M_iterator, __l2._M_iterator); } - - const _CharT* c_str() const { return _M_non_dbg_impl.c_str(); } - const _CharT* data() const { return _M_non_dbg_impl.data(); } - - size_type copy(_CharT* __s, size_type __n, size_type __pos = 0) const - { return _M_non_dbg_impl.copy(__s, __n, __pos); } - - // find. - size_type find(const _Self& __s, size_type __pos = 0) const - { return _M_non_dbg_impl.find(__s._M_non_dbg_impl, __pos); } - size_type find(const _CharT* __s, size_type __pos = 0) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find(__s, __pos); - } - size_type find(const _CharT* __s, size_type __pos, size_type __n) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find(__s, __pos, __n); - } - // WIE: Versant schema compiler 5.2.2 ICE workaround - size_type find(_CharT __c) const { return find(__c, 0); } - size_type find(_CharT __c, size_type __pos /* = 0 */) const - { return _M_non_dbg_impl.find(__c, __pos); } - - // rfind. - size_type rfind(const _Self& __s, size_type __pos = npos) const - { return _M_non_dbg_impl.rfind(__s._M_non_dbg_impl, __pos); } - size_type rfind(const _CharT* __s, size_type __pos = npos) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.rfind(__s, __pos); - } - size_type rfind(const _CharT* __s, size_type __pos, size_type __n) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.rfind(__s, __pos, __n); - } - size_type rfind(_CharT __c, size_type __pos = npos) const - { return _M_non_dbg_impl.rfind(__c, __pos); } - - // find_first_of - size_type find_first_of(const _Self& __s, size_type __pos = 0) const - { return _M_non_dbg_impl.find_first_of(__s._M_non_dbg_impl, __pos); } - size_type find_first_of(const _CharT* __s, size_type __pos = 0) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_first_of(__s, __pos); - } - size_type find_first_of(const _CharT* __s, size_type __pos, size_type __n) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_first_of(__s, __pos, __n); - } - size_type find_first_of(_CharT __c, size_type __pos = 0) const - { return _M_non_dbg_impl.find_first_of(__c, __pos); } - - // find_last_of - size_type find_last_of(const _Self& __s, size_type __pos = npos) const - { return _M_non_dbg_impl.find_last_of(__s._M_non_dbg_impl, __pos); } - size_type find_last_of(const _CharT* __s, size_type __pos = npos) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_last_of(__s, __pos); - } - size_type find_last_of(const _CharT* __s, size_type __pos, size_type __n) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_last_of(__s, __pos, __n); - } - size_type find_last_of(_CharT __c, size_type __pos = npos) const - { return _M_non_dbg_impl.rfind(__c, __pos); } - - // find_first_not_of - size_type find_first_not_of(const _Self& __s, size_type __pos = 0) const - { return _M_non_dbg_impl.find_first_not_of(__s._M_non_dbg_impl, __pos); } - size_type find_first_not_of(const _CharT* __s, size_type __pos = 0) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_first_not_of(__s, __pos); - } - size_type find_first_not_of(const _CharT* __s, size_type __pos, size_type __n) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_first_not_of(__s, __pos, __n); - } - size_type find_first_not_of(_CharT __c, size_type __pos = 0) const - { return _M_non_dbg_impl.find_first_not_of(__c, __pos); } - - // find_last_not_of - size_type find_last_not_of(const _Self& __s, size_type __pos = npos) const - { return _M_non_dbg_impl.find_last_not_of(__s._M_non_dbg_impl, __pos); } - size_type find_last_not_of(const _CharT* __s, size_type __pos = npos) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_last_not_of(__s, __pos); - } - size_type find_last_not_of(const _CharT* __s, size_type __pos, size_type __n) const { - _STLP_FIX_LITERAL_BUG(__s) - _STLP_VERBOSE_ASSERT((__s != 0), _StlMsg_INVALID_ARGUMENT) - return _M_non_dbg_impl.find_last_not_of(__s, __pos, __n); - } - size_type find_last_not_of(_CharT __c, size_type __pos = npos) const - { return _M_non_dbg_impl.find_last_not_of(__c, __pos); } - -#if defined (_STLP_USE_TEMPLATE_EXPRESSION) -# include <stl/debug/_string_sum_methods.h> -#endif /* _STLP_USE_TEMPLATE_EXPRESSION */ -}; - -// This is a hook to instantiate STLport exports in a designated DLL -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -_STLP_MOVE_TO_PRIV_NAMESPACE -_STLP_EXPORT_TEMPLATE_CLASS __construct_checker<_STLP_NON_DBG_STRING_NAME <char, char_traits<char>, allocator<char> > >; -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_EXPORT_TEMPLATE_CLASS basic_string<char, char_traits<char>, allocator<char> >; -# if defined (_STLP_HAS_WCHAR_T) -_STLP_MOVE_TO_PRIV_NAMESPACE -_STLP_EXPORT_TEMPLATE_CLASS __construct_checker<_STLP_NON_DBG_STRING_NAME <wchar_t, char_traits<wchar_t>, allocator<wchar_t> > >; -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_EXPORT_TEMPLATE_CLASS basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >; -# endif -#endif /* _STLP_USE_TEMPLATE_EXPORT */ - -#undef _STLP_NON_DBG_STRING -#undef _STLP_NON_DBG_STRING_NAME - -#if !defined (_STLP_STATIC_CONST_INIT_BUG) -# if defined (__GNUC__) && (__GNUC__ == 2) && (__GNUC_MINOR__ == 96) -template <class _CharT, class _Traits, class _Alloc> -const size_t basic_string<_CharT, _Traits, _Alloc>::npos = ~(size_t) 0; -# else -template <class _CharT, class _Traits, class _Alloc> -const size_t basic_string<_CharT, _Traits, _Alloc>::npos; -# endif -#endif - -#if defined (basic_string) -_STLP_MOVE_TO_STD_NAMESPACE -#undef basic_string -#endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_DBG_STRING */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_string_sum_methods.h b/WebKit/android/stlport/stl/debug/_string_sum_methods.h deleted file mode 100644 index 3fca194..0000000 --- a/WebKit/android/stlport/stl/debug/_string_sum_methods.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* - * All the necessary methods used for template expressions with basic_string - * This file do not have to be macro guarded as it is only used in the _string.h - * file and it is a part of the basic_string definition. - */ - - template <class _Left, class _Right, class _StorageDir> - basic_string(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s) - : _M_non_dbg_impl(_Reserve_t(), __s.size(), __s.get_allocator()), - _M_iter_list(&_M_non_dbg_impl) - { _M_append_sum(__s, _M_non_dbg_impl); } - - template <class _Left, class _Right, class _StorageDir> - 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_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); - } - -private: - _Base& _M_append_fast(_STLP_PRIV __char_wrapper<_CharT> __c, _Base &__str) - { return __str += __c.getValue(); } - _Base& _M_append_fast(_CharT const* __s, size_type __s_size, _Base &__str) - { return __str.append(__s, __s_size); } - _Base& _M_append_fast(_STLP_PRIV __cstr_wrapper<_CharT> const& __s, _Base &__str) - { return _M_append_fast(__s.c_str(), __s.size(), __str); } - _Base& _M_append_fast(_STLP_PRIV __bstr_wrapper<_CharT, _Traits, _Alloc> __s, _Base &__str) - { return _M_append_fast(__s.b_str(), __str); } - _Base& _M_append_fast(_Self const& __s, _Base &__str) - { return _M_append_fast(__s.data(), __s.size(), __str); } - _Base& _M_append_fast(_STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc> const&, _Base &__str) - { return __str; } - template <class _Left, class _Right, class _StorageDir> - _Base& _M_append_fast(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s, _Base &__str) - { return _M_append_fast(__s.getRhs(), _M_append_fast(__s.getLhs(), __str)); } - - _Base& _M_append_fast_pos(_STLP_PRIV __char_wrapper<_CharT> __c, _Base &__str, size_type /*__pos*/, size_type __n) { - if (__n == 0) - return __str; - return __str += __c.getValue(); - } - _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)); } - _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); } - _Base& _M_append_fast_pos(_STLP_PRIV __bstr_wrapper<_CharT, _Traits, _Alloc> __s, _Base &__str, - size_type __pos, size_type __n) - { return _M_append_fast_pos(__s.b_str(), __str, __pos, __n); } - _Base& _M_append_fast_pos(_Self const& __s, _Base &__str, size_type __pos, size_type __n) - { return _M_append_fast_pos(__s.data(), __s.size(), __str, __pos, __n); } - _Base& _M_append_fast_pos(_STLP_PRIV __sum_storage_elem<_CharT, _Traits, _Alloc> const&, _Base &__str, - size_type /*__pos*/, size_type /*__n*/) - { return __str; } - - template <class _Left, class _Right, class _StorageDir> - _Base& _M_append_fast_pos(_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s, - _Base &__str, size_type __pos, size_type __n) { - if (__n == 0) { - return __str; - } - size_type __lhs_size = __s.getLhs().size(); - if (__pos < __lhs_size) { - if (__n < (__lhs_size - __pos)) { - return _M_append_fast_pos(__s.getLhs(), __str, __pos, __n); - } else { - return _M_append_fast_pos(__s.getRhs(), _M_append_fast_pos(__s.getLhs(), __str, __pos, __n), - 0, __n - (__lhs_size - __pos)); - } - } else { - return _M_append_fast_pos(__s.getRhs(), __str, __pos - __lhs_size, __n); - } - } - - template <class _Left, class _Right, class _StorageDir> - _Self& _M_append_sum (_STLP_PRIV __bstr_sum<_CharT, _Traits, _Alloc, _Left, _Right, _StorageDir> const& __s, - _Base &__impl) { - _M_append_fast(__s, __impl); - return *this; - } - - 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_append_fast_pos(__s, __impl, __pos, __n); - return *this; - } diff --git a/WebKit/android/stlport/stl/debug/_tree.h b/WebKit/android/stlport/stl/debug/_tree.h deleted file mode 100644 index 3ebb410..0000000 --- a/WebKit/android/stlport/stl/debug/_tree.h +++ /dev/null @@ -1,316 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DBG_TREE_H -#define _STLP_INTERNAL_DBG_TREE_H - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -#ifndef _STLP_INTERNAL_FUNCTION_BASE_H -# include <stl/_function_base.h> -#endif - -#ifndef _STLP_INTERNAL_ALLOC_H -# include <stl/_alloc.h> -#endif - -_STLP_BEGIN_NAMESPACE - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Key, class _Compare> -class _DbgCompare { -public: - _DbgCompare() {} - _DbgCompare(const _Compare& __cmp) : _M_non_dbg_cmp(__cmp) {} - _DbgCompare(const _DbgCompare& __cmp) : _M_non_dbg_cmp(__cmp._M_non_dbg_cmp) {} - -#if !defined (_STLP_USE_CONTAINERS_EXTENSION) - bool operator () (const _Key& __lhs, const _Key& __rhs) const { -#else - template <class _Kp1, class _Kp2> - bool operator () (const _Kp1& __lhs, const _Kp2& __rhs) const { -#endif - if (_M_non_dbg_cmp(__lhs, __rhs)) { - _STLP_VERBOSE_ASSERT(!_M_non_dbg_cmp(__rhs, __lhs), _StlMsg_INVALID_STRICT_WEAK_PREDICATE) - return true; - } - return false; - } - - _Compare non_dbg_key_comp() const { return _M_non_dbg_cmp; } -private: - _Compare _M_non_dbg_cmp; -}; - -#define _STLP_NON_DBG_TREE _STLP_PRIV _STLP_NON_DBG_NAME(Rb_tree) <_Key, _STLP_PRIV _DbgCompare<_Key, _Compare>, _Value, _KeyOfValue, _Traits, _Alloc> - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -_STLP_MOVE_TO_STD_NAMESPACE -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc > -inline _Value* -value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_TREE >&) -{ return (_Value*)0; } -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, class _Alloc > -inline bidirectional_iterator_tag -iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_TREE >&) -{ return bidirectional_iterator_tag(); } -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _Key, class _Compare, - class _Value, class _KeyOfValue, class _Traits, - _STLP_DBG_ALLOCATOR_SELECT(_Value) > -class _Rb_tree { - typedef _STLP_NON_DBG_TREE _Base; - typedef _Rb_tree<_Key, _Compare, _Value, _KeyOfValue, _Traits, _Alloc> _Self; - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - -public: - __IMPORT_CONTAINER_TYPEDEFS(_Base) - typedef typename _Base::key_type key_type; - - typedef typename _Traits::_NonConstTraits _NonConstIteTraits; - typedef typename _Traits::_ConstTraits _ConstIteTraits; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_NonConstIteTraits> > iterator; - typedef _STLP_PRIV _DBG_iter<_Base, _STLP_PRIV _DbgTraits<_ConstIteTraits> > const_iterator; - - _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS; - -private: - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - void _Invalidate_iterator(const iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list,__it); } - void _Invalidate_iterators(const iterator& __first, const iterator& __last) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } - - typedef typename _Base::iterator _Base_iterator; - typedef typename _Base::const_iterator _Base_const_iterator; - -public: - _Rb_tree() - : _M_non_dbg_impl(), _M_iter_list(&_M_non_dbg_impl) {} - _Rb_tree(const _Compare& __comp) - : _M_non_dbg_impl(__comp), _M_iter_list(&_M_non_dbg_impl) {} - _Rb_tree(const _Compare& __comp, const allocator_type& __a) - : _M_non_dbg_impl(__comp, __a), _M_iter_list(&_M_non_dbg_impl) {} - _Rb_tree(const _Self& __x) - : _M_non_dbg_impl(__x._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {} - - _Rb_tree(__move_source<_Self> src): - _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - - ~_Rb_tree() {} - - _Self& operator=(const _Self& __x) { - if (this != &__x) { - //Should not invalidate end iterator: - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl = __x._M_non_dbg_impl; - } - return *this; - } - - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } - _Compare key_comp() const { return _M_non_dbg_impl.key_comp().non_dbg_key_comp(); } - - iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - bool empty() const { return _M_non_dbg_impl.empty(); } - size_type size() const { return _M_non_dbg_impl.size(); } - size_type max_size() const { return _M_non_dbg_impl.max_size(); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const { return _M_non_dbg_impl.count(__x); } - - void swap(_Self& __t) { - _M_non_dbg_impl.swap(__t._M_non_dbg_impl); - _M_iter_list._Swap_owners(__t._M_iter_list); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __k) - { return iterator(&_M_iter_list, _M_non_dbg_impl.find(__k)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __k) const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.find(__k)); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) - { return iterator(&_M_iter_list, _M_non_dbg_impl.lower_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.lower_bound(__x)); } - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) - { return iterator(&_M_iter_list, _M_non_dbg_impl.upper_bound(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const - { return const_iterator(&_M_iter_list, _M_non_dbg_impl.upper_bound(__x)); } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator,iterator> equal_range(const _KT& __x) { - return pair<iterator, iterator>(iterator(&_M_iter_list, _M_non_dbg_impl.lower_bound(__x)), - iterator(&_M_iter_list, _M_non_dbg_impl.upper_bound(__x))); - } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __x) const { - return pair<const_iterator,const_iterator>(const_iterator(&_M_iter_list, _M_non_dbg_impl.lower_bound(__x)), - const_iterator(&_M_iter_list, _M_non_dbg_impl.upper_bound(__x))); - } - - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator,iterator> equal_range_unique(const _KT& __x) { - _STLP_STD::pair<_Base_iterator, _Base_iterator> __p; - __p = _M_non_dbg_impl.equal_range_unique(__x); - return pair<iterator, iterator>(iterator(&_M_iter_list, __p.first), iterator(&_M_iter_list, __p.second)); - } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range_unique(const _KT& __x) const { - _STLP_STD::pair<_Base_const_iterator, _Base_const_iterator> __p; - __p = _M_non_dbg_impl.equal_range_unique(__x); - return pair<const_iterator, const_iterator>(const_iterator(&_M_iter_list, __p.first), - const_iterator(&_M_iter_list, __p.second)); - } - - pair<iterator,bool> insert_unique(const value_type& __x) { - _STLP_STD::pair<_Base_iterator, bool> __res = _M_non_dbg_impl.insert_unique(__x); - return pair<iterator, bool>(iterator(&_M_iter_list, __res.first), __res.second); - } - iterator insert_equal(const value_type& __x) - { return iterator(&_M_iter_list, _M_non_dbg_impl.insert_equal(__x)); } - - iterator insert_unique(iterator __pos, const value_type& __x) { - _STLP_DEBUG_CHECK(__check_if_owner(&_M_iter_list,__pos)) - return iterator(&_M_iter_list, _M_non_dbg_impl.insert_unique(__pos._M_iterator, __x)); - } - iterator insert_equal(iterator __pos, const value_type& __x) { - _STLP_DEBUG_CHECK(__check_if_owner(&_M_iter_list, __pos)) - return iterator(&_M_iter_list, _M_non_dbg_impl.insert_equal(__pos._M_iterator, __x)); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template<class _InputIterator> - void insert_equal(_InputIterator __first, _InputIterator __last) { - _STLP_DEBUG_CHECK(__check_range(__first,__last)) - _M_non_dbg_impl.insert_equal(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } - template<class _InputIterator> - void insert_unique(_InputIterator __first, _InputIterator __last) { - _STLP_DEBUG_CHECK(__check_range(__first,__last)) - _M_non_dbg_impl.insert_unique(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - } -#else - void insert_unique(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(__check_range(__first,__last)) - _M_non_dbg_impl.insert_unique(__first._M_iterator, __last._M_iterator); - } - void insert_unique(const value_type* __first, const value_type* __last) { - _STLP_DEBUG_CHECK(__check_ptr_range(__first,__last)) - _M_non_dbg_impl.insert_unique(__first, __last); - } - void insert_equal(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(__check_range(__first,__last)) - _M_non_dbg_impl.insert_equal(__first._M_iterator, __last._M_iterator); - } - void insert_equal(const value_type* __first, const value_type* __last) { - _STLP_DEBUG_CHECK(__check_ptr_range(__first,__last)) - _M_non_dbg_impl.insert_equal(__first, __last); - } -#endif - - void erase(iterator __pos) { - _STLP_DEBUG_CHECK(__check_if_owner(&_M_iter_list,__pos)) - _STLP_DEBUG_CHECK(_Dereferenceable(__pos)) - _Invalidate_iterator(__pos); - _M_non_dbg_impl.erase(__pos._M_iterator); - } - size_type erase(const key_type& __x) { - pair<_Base_iterator,_Base_iterator> __p = _M_non_dbg_impl.equal_range(__x); - size_type __n = distance(__p.first, __p.second); - _Invalidate_iterators(iterator(&_M_iter_list, __p.first), iterator(&_M_iter_list, __p.second)); - _M_non_dbg_impl.erase(__p.first, __p.second); - return __n; - } - size_type erase_unique(const key_type& __x) { - _Base_iterator __i = _M_non_dbg_impl.find(__x); - if (__i != _M_non_dbg_impl.end()) { - _Invalidate_iterator(iterator(&_M_iter_list, __i)); - _M_non_dbg_impl.erase(__i); - return 1; - } - return 0; - } - - void erase(iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(__check_range(__first, __last, begin(), end())) - _Invalidate_iterators(__first, __last); - _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator); - } - void erase(const key_type* __first, const key_type* __last) { - while (__first != __last) erase(*__first++); - } - - void clear() { - //should not invalidate end: - _Invalidate_iterators(begin(), end()); - _M_non_dbg_impl.clear(); - } -}; - -_STLP_MOVE_TO_STD_NAMESPACE -_STLP_END_NAMESPACE - -#undef _STLP_NON_DBG_TREE - -#endif /* _STLP_INTERNAL_DBG_TREE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/debug/_vector.h b/WebKit/android/stlport/stl/debug/_vector.h deleted file mode 100644 index 171b764..0000000 --- a/WebKit/android/stlport/stl/debug/_vector.h +++ /dev/null @@ -1,449 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_INTERNAL_DBG_VECTOR_H -#define _STLP_INTERNAL_DBG_VECTOR_H - -#ifndef _STLP_DBG_ITERATOR_H -# include <stl/debug/_iterator.h> -#endif - -#define _STLP_NON_DBG_VECTOR _STLP_PRIV _STLP_NON_DBG_NAME(vector) <_Tp, _Alloc> - -_STLP_BEGIN_NAMESPACE - -#if defined (_STLP_DEBUG_USE_DISTINCT_VALUE_TYPE_HELPERS) -template <class _Tp, class _Alloc> -inline _Tp* -value_type(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_VECTOR >&) -{ return (_Tp*)0; } -template <class _Tp, class _Alloc> -inline random_access_iterator_tag -iterator_category(const _STLP_PRIV _DBG_iter_base< _STLP_NON_DBG_VECTOR >&) -{ return random_access_iterator_tag(); } -#endif - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _Tp, class _NcIt> -struct _Vector_const_traits; - -template <class _Tp, class _NcIt> -struct _Vector_nonconst_traits { - typedef _Nonconst_traits<_Tp> _BaseT; - typedef _Tp value_type; - typedef _Tp& reference; - typedef _Tp* pointer; - typedef _Vector_const_traits<_Tp, _NcIt> _ConstTraits; - typedef _Vector_nonconst_traits<_Tp, _NcIt> _NonConstTraits; -}; - -template <class _Tp, class _NcIt> -struct _Vector_const_traits { - typedef _Const_traits<_Tp> _BaseT; - typedef _Tp value_type; - typedef const _Tp& reference; - typedef const _Tp* pointer; - typedef _Vector_const_traits<_Tp, _NcIt> _ConstTraits; - typedef _Vector_nonconst_traits<_Tp, _NcIt> _NonConstTraits; -}; - -_STLP_TEMPLATE_NULL -struct _Vector_nonconst_traits<bool, _Bit_iterator> { - typedef _Bit_iterator::value_type value_type; - typedef _Bit_iterator::reference reference; - typedef _Bit_iterator::pointer pointer; - typedef _Vector_const_traits<bool, _Bit_iterator> _ConstTraits; - typedef _Vector_nonconst_traits<bool, _Bit_iterator> _NonConstTraits; -}; - -_STLP_TEMPLATE_NULL -struct _Vector_const_traits<bool, _Bit_iterator> { - typedef _Bit_const_iterator::value_type value_type; - typedef _Bit_const_iterator::reference reference; - typedef _Bit_const_iterator::pointer pointer; - typedef _Vector_const_traits<bool, _Bit_iterator> _ConstTraits; - typedef _Vector_nonconst_traits<bool, _Bit_iterator> _NonConstTraits; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -template <class _Tp, _STLP_DBG_ALLOCATOR_SELECT(_Tp) > -class vector : -#if !defined (__DMC__) - private -#endif - _STLP_PRIV __construct_checker< _STLP_NON_DBG_VECTOR > -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - , public __stlport_class<vector<_Tp, _Alloc> > -#endif -{ -private: - typedef _STLP_NON_DBG_VECTOR _Base; - typedef vector<_Tp, _Alloc> _Self; - typedef _STLP_PRIV __construct_checker<_STLP_NON_DBG_VECTOR > _ConstructCheck; - _Base _M_non_dbg_impl; - _STLP_PRIV __owned_list _M_iter_list; - -public: - __IMPORT_CONTAINER_TYPEDEFS(_Base) - - typedef _STLP_PRIV _DBG_iter<_Base, - _STLP_PRIV _DbgTraits<_STLP_PRIV _Vector_nonconst_traits<value_type, typename _Base::iterator> > > iterator; - - typedef _STLP_PRIV _DBG_iter<_Base, - _STLP_PRIV _DbgTraits<_STLP_PRIV _Vector_const_traits<value_type, typename _Base::iterator> > > const_iterator; - -private: - void _Invalidate_all() - { _M_iter_list._Invalidate_all(); } - void _Invalidate_iterator(const iterator& __it) - { _STLP_PRIV __invalidate_iterator(&_M_iter_list, __it); } - void _Invalidate_iterators(const iterator& __first, const iterator& __last) - { _STLP_PRIV __invalidate_range(&_M_iter_list, __first, __last); } - - void _Check_Overflow(size_type __nb) { - if (size() + __nb > capacity()) - _Invalidate_all(); - } - void _Compare_Capacity (size_type __old_capacity) { - if (capacity() > __old_capacity) { - _Invalidate_all(); - } - } - -public: - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - - allocator_type get_allocator() const { return _M_non_dbg_impl.get_allocator(); } - - iterator begin() { return iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - const_iterator begin() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.begin()); } - iterator end() { return iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - const_iterator end() const { return const_iterator(&_M_iter_list, _M_non_dbg_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - size_type size() const { return _M_non_dbg_impl.size(); } - size_type max_size() const { return _M_non_dbg_impl.max_size(); } - size_type capacity() const { return _M_non_dbg_impl.capacity(); } - bool empty() const { return _M_non_dbg_impl.empty(); } - - reference operator[](size_type __n) { - _STLP_VERBOSE_ASSERT(__n < size(), _StlMsg_OUT_OF_BOUNDS) - return _M_non_dbg_impl[__n]; - } - - const_reference operator[](size_type __n) const { - _STLP_VERBOSE_ASSERT(__n < size(), _StlMsg_OUT_OF_BOUNDS) - return _M_non_dbg_impl[__n]; - } - - reference at(size_type __n) { return _M_non_dbg_impl.at(__n); } - const_reference at(size_type __n) const { return _M_non_dbg_impl.at(__n); } - - explicit vector(const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__a), _M_iter_list(&_M_non_dbg_impl) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit vector(size_type __n, const _Tp& __x = _Tp(), -#else - vector(size_type __n, const _Tp& __x, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_non_dbg_impl(__n, __x, __a), _M_iter_list(&_M_non_dbg_impl) {} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit vector(size_type __n) - : _M_non_dbg_impl(__n), _M_iter_list(&_M_non_dbg_impl) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - vector(const _Self& __x) - : _ConstructCheck(__x), _M_non_dbg_impl(__x._M_non_dbg_impl), _M_iter_list(&_M_non_dbg_impl) {} - - vector(__move_source<_Self> src) - : _M_non_dbg_impl(__move_source<_Base>(src.get()._M_non_dbg_impl)), - _M_iter_list(&_M_non_dbg_impl) { -#if defined (_STLP_NO_EXTENSIONS) || (_STLP_DEBUG_LEVEL == _STLP_STANDARD_DBG_LEVEL) - src.get()._M_iter_list._Invalidate_all(); -#else - src.get()._M_iter_list._Set_owner(_M_iter_list); -#endif - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - vector(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last), __a), - _M_iter_list(&_M_non_dbg_impl) {} - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - vector(_InputIterator __first, _InputIterator __last) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)), - _M_iter_list(&_M_non_dbg_impl) {} -# endif -#else - vector(const _Tp* __first, const _Tp* __last, - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), _M_non_dbg_impl(__first, __last, __a), - _M_iter_list(&_M_non_dbg_impl) {} - - // mysterious VC++ bug ? - vector(const_iterator __first, const_iterator __last , - const allocator_type& __a = allocator_type()) - : _ConstructCheck(__first, __last), - _M_non_dbg_impl(__first._M_iterator, __last._M_iterator, __a), - _M_iter_list(&_M_non_dbg_impl) {} -#endif /* _STLP_MEMBER_TEMPLATES */ - - _Self& operator=(const _Self& __x) { - if (this != &__x) { - _Invalidate_all(); - _M_non_dbg_impl = __x._M_non_dbg_impl; - } - return *this; - } - - void reserve(size_type __n) { - if (capacity() < __n) - _Invalidate_all(); - _M_non_dbg_impl.reserve(__n); - } - - reference front() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *begin(); - } - const_reference front() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *begin(); - } - reference back() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *(--end()); - } - const_reference back() const { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - return *(--end()); - } - - void swap(_Self& __x) { - _M_iter_list._Swap_owners(__x._M_iter_list); - _M_non_dbg_impl.swap(__x._M_non_dbg_impl); - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos, const _Tp& __x = _Tp()) { -#else - iterator insert(iterator __pos, const _Tp& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _Check_Overflow(1); - return iterator(&_M_iter_list, _M_non_dbg_impl.insert(__pos._M_iterator, __x)); - } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos) - { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_MEMBER_TEMPLATES) - // Check whether it's an integral type. If so, it's not an iterator. - template <class _InputIterator> - void insert(iterator __pos, - _InputIterator __first, _InputIterator __last) { - typedef typename _AreSameUnCVTypes<_InputIterator, iterator>::_Ret _IsNonConstIterator; - typedef typename _AreSameUnCVTypes<_InputIterator, const_iterator>::_Ret _IsConstIterator; - typedef typename _Lor2<_IsNonConstIterator, _IsConstIterator>::_Ret _DoCheck; - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - //Sequence requirements 23.1.1 Table 67: - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_not_owner(&_M_iter_list, __first, _DoCheck())); - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos._M_iterator, - _STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - _Compare_Capacity(__old_capacity); - } -#else - void insert (iterator __pos, - const value_type *__first, const value_type *__last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first,__last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos._M_iterator, __first, __last); - _Compare_Capacity(__old_capacity); - } - - void insert(iterator __pos, - const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - //Sequence requirements 23.1.1 Table 67: - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_not_owner(&_M_iter_list, __first, __true_type())); - size_type __old_capacity = capacity(); - _M_non_dbg_impl.insert(__pos._M_iterator, __first._M_iterator, __last._M_iterator); - _Compare_Capacity(__old_capacity); -} -#endif - - void insert (iterator __pos, size_type __n, const _Tp& __x){ - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _Check_Overflow(__n); - _M_non_dbg_impl.insert(__pos._M_iterator, __n, __x); - } - - void pop_back() { - _STLP_VERBOSE_ASSERT(!empty(), _StlMsg_EMPTY_CONTAINER) - _Invalidate_iterator(end()); - _M_non_dbg_impl.pop_back(); - } - iterator erase(iterator __pos) { - _STLP_DEBUG_CHECK(_STLP_PRIV _Dereferenceable(__pos)) - _STLP_DEBUG_CHECK(_STLP_PRIV __check_if_owner(&_M_iter_list, __pos)) - _Invalidate_iterators(__pos, end()); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__pos._M_iterator)); - } - iterator erase(iterator __first, iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first, __last, begin(), end())) - _Invalidate_iterators(__first, end()); - return iterator(&_M_iter_list, _M_non_dbg_impl.erase(__first._M_iterator, __last._M_iterator)); - } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const _Tp& __x = _STLP_DEFAULT_CONSTRUCTED(_Tp)) { -#else - void resize(size_type __new_size, const _Tp& __x) { -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - if (__new_size > capacity()) { - _Invalidate_all(); - } - else if (__new_size < size()) { - _Invalidate_iterators(begin() + __new_size, end()); - } - _M_non_dbg_impl.resize(__new_size, __x); - } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { resize(__new_size, _STLP_DEFAULT_CONSTRUCTED(_Tp)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_MEMBER_TEMPLATES) -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type& /*_IsIntegral*/) { - _M_check_assign(__n); - _M_non_dbg_impl.assign(__n, __val); - } - - template <class _InputIter> - void _M_assign_dispatch(_InputIter __first, _InputIter __last, - const __false_type& /*_IsIntegral*/) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) - size_type __old_size = size(); - size_type __old_capacity = capacity(); - iterator __old_end = end(); - _M_non_dbg_impl.assign(_STLP_PRIV _Non_Dbg_iter(__first), _STLP_PRIV _Non_Dbg_iter(__last)); - if (__old_capacity != 0) { - if (empty() || (capacity() > __old_capacity)) { - _Invalidate_all(); - } - else if (size() < __old_size) { - _Invalidate_iterators(begin() + size(), __old_end); - } - } - } - -public: - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); - } -#else -private: - void _M_assign(const value_type *__first, const value_type *__last) { - size_type __len = distance(__first, __last); - _M_check_assign(__len); - _M_non_dbg_impl.assign(__first, __last); - } -public: - void assign(const value_type *__first, const value_type *__last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_ptr_range(__first,__last)) - _M_assign(__first, __last); - } - - void assign(const_iterator __first, const_iterator __last) { - _STLP_DEBUG_CHECK(_STLP_PRIV __check_range(__first,__last)) - _M_assign(__first._M_iterator, __last._M_iterator); - } -#endif - -private: - void _M_check_assign(size_type __n) { - if (__n > capacity()) { - _Invalidate_all(); - } - else if (__n < size()) { - _Invalidate_iterators(begin() + __n, end()); - } - } - -public: - void assign(size_type __n, const _Tp& __val) { - _M_check_assign(__n); - _M_non_dbg_impl.assign(__n, __val); - } - - void clear() { - _Invalidate_all(); - _M_non_dbg_impl.clear(); - } - void push_back(const _Tp& __x) { - _Check_Overflow(1); - _M_non_dbg_impl.push_back(__x); - } -}; - -_STLP_END_NAMESPACE - -#undef _STLP_NON_DBG_VECTOR - -#endif /* _STLP_DBG_VECTOR_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/msl_string.h b/WebKit/android/stlport/stl/msl_string.h deleted file mode 100644 index 962768c..0000000 --- a/WebKit/android/stlport/stl/msl_string.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1998 - * Mark of the Unicorn, Inc. - * - * Permission to use, copy, modify, distribute and sell this software - * and its documentation for any purpose is hereby granted without fee, - * provided that the above copyright notice appear in all copies and - * that both that copyright notice and this permission notice appear - * in supporting documentation. Mark of the Unicorn, Inc. makes no - * representations about the suitability of this software for any - * purpose. It is provided "as is" without express or implied warranty. - * - */ -#if defined( _STLP_USE_MSIPL ) && !defined( _STLP_MSL_STRING_H_ ) -#define _STLP_MSL_STRING_H_ - -//# define char_traits __msl_char_traits -# define basic_string __msl_basic_string -# define b_str_ref __msl_b_str_ref -# define basic_istream __msl_basic_istream -# define basic_ostream __msl_basic_ostream -# define string __msl_string -# define wstring __msl_wstring -# define iterator_traits __msl_iterator_traits - -namespace std -{ - template<class charT, class traits> class basic_istream; - template<class charT, class traits> class basic_ostream; -} - -# include _STLP_NATIVE_HEADER(string) -// # undef char_traits -# undef basic_string -# undef b_str_ref -# undef basic_istream -# undef basic_ostream -# undef string -# undef wstring -# undef iterator_traits - -#endif diff --git a/WebKit/android/stlport/stl/pointers/_deque.h b/WebKit/android/stlport/stl/pointers/_deque.h deleted file mode 100644 index a2c2774..0000000 --- a/WebKit/android/stlport/stl/pointers/_deque.h +++ /dev/null @@ -1,379 +0,0 @@ -/* - * Copyright (c) 2004 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_SPECIALIZED_DEQUE_H -#define _STLP_SPECIALIZED_DEQUE_H - -#ifndef _STLP_POINTERS_SPEC_TOOLS_H -# include <stl/pointers/_tools.h> -#endif - -_STLP_BEGIN_NAMESPACE -_STLP_MOVE_TO_PRIV_NAMESPACE - -/* - * struct helper to cast deque iterators: - */ -template <class _StorageT, class _ValueT> -struct _DequeIteCast { - typedef _Deque_iterator<_ValueT, _Nonconst_traits<_ValueT> > iterator; - typedef _Deque_iterator<_ValueT, _Const_traits<_ValueT> > const_iterator; - typedef _Deque_iterator<_StorageT, _Nonconst_traits<_StorageT> > storage_iterator; - typedef _Deque_iterator<_StorageT, _Const_traits<_StorageT> > const_storage_iterator; - typedef _CastTraits<_StorageT, _ValueT> cast_traits; - - static iterator to_value_type_ite (storage_iterator const& __ite) { - iterator tmp; - tmp._M_cur = cast_traits::to_value_type_ptr(__ite._M_cur); - tmp._M_first = cast_traits::to_value_type_ptr(__ite._M_first); - tmp._M_last = cast_traits::to_value_type_ptr(__ite._M_last); - tmp._M_node = cast_traits::to_value_type_pptr(__ite._M_node); - return tmp; - } - static storage_iterator to_storage_type_ite (iterator const& __ite) { - storage_iterator tmp; - tmp._M_cur = cast_traits::to_storage_type_ptr(__ite._M_cur); - tmp._M_first = cast_traits::to_storage_type_ptr(__ite._M_first); - tmp._M_last = cast_traits::to_storage_type_ptr(__ite._M_last); - tmp._M_node = cast_traits::to_storage_type_pptr(__ite._M_node); - return tmp; - } - - static const_iterator to_value_type_cite (const_storage_iterator const& __ite) { - const_iterator tmp; - tmp._M_cur = cast_traits::to_value_type_ptr(__ite._M_cur); - tmp._M_first = cast_traits::to_value_type_ptr(__ite._M_first); - tmp._M_last = cast_traits::to_value_type_ptr(__ite._M_last); - tmp._M_node = cast_traits::to_value_type_pptr(__ite._M_node); - return tmp; - } - - static const_storage_iterator to_storage_type_cite (const_iterator const& __ite) { - const_storage_iterator tmp; - tmp._M_cur = cast_traits::to_storage_type_ptr(__ite._M_cur); - tmp._M_first = cast_traits::to_storage_type_ptr(__ite._M_first); - tmp._M_last = cast_traits::to_storage_type_ptr(__ite._M_last); - tmp._M_node = cast_traits::to_storage_type_pptr(__ite._M_node); - return tmp; - } -}; - -#define DEQUE_IMPL _STLP_PTR_IMPL_NAME(deque) - -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<size_t, void*, allocator<void*> >; -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<void***, void**, allocator<void**> >; -_STLP_EXPORT template struct _STLP_CLASS_DECLSPEC _Deque_iterator<void*, _Nonconst_traits<void*> >; -_STLP_EXPORT_TEMPLATE_CLASS _Deque_base<void*,allocator<void*> >; -_STLP_EXPORT_TEMPLATE_CLASS DEQUE_IMPL<void*,allocator<void*> >; -#endif - -#if defined (_STLP_DEBUG) -# define deque _STLP_NON_DBG_NAME(deque) -#else -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class deque -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (deque) - : public __stlport_class<deque<_Tp, _Alloc> > -#endif -{ - typedef typename _STLP_PRIV _StorageType<_Tp>::_Type _StorageType; - typedef typename _Alloc_traits<_StorageType, _Alloc>::allocator_type _StorageTypeAlloc; - typedef _STLP_PRIV DEQUE_IMPL<_StorageType, _StorageTypeAlloc> _Base; - typedef deque<_Tp, _Alloc> _Self; - - typedef _STLP_PRIV _CastTraits<_StorageType, _Tp> cast_traits; - typedef _STLP_PRIV _DequeIteCast<_StorageType, _Tp> ite_cast_traits; - -public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag _Iterator_category; - _STLP_FORCE_ALLOCATORS(value_type, _Alloc) - typedef typename _Alloc_traits<value_type, _Alloc>::allocator_type allocator_type; - typedef _STLP_PRIV _Deque_iterator<value_type, _Nonconst_traits<value_type> > iterator; - typedef _STLP_PRIV _Deque_iterator<value_type, _Const_traits<value_type> > const_iterator; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - -public: // Basic accessors - iterator begin() { return ite_cast_traits::to_value_type_ite(_M_impl.begin()); } - iterator end() { return ite_cast_traits::to_value_type_ite(_M_impl.end()); } - const_iterator begin() const { return ite_cast_traits::to_value_type_cite(_M_impl.begin()); } - const_iterator end() const { return ite_cast_traits::to_value_type_cite(_M_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rbegin() const - { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const - { return const_reverse_iterator(begin()); } - - reference operator[](size_type __n) - { return cast_traits::to_value_type_ref(_M_impl[__n]); } - const_reference operator[](size_type __n) const - { return cast_traits::to_value_type_cref(_M_impl[__n]); } - - reference at(size_type __n) - { return cast_traits::to_value_type_ref(_M_impl.at(__n)); } - const_reference at(size_type __n) const - { return cast_traits::to_value_type_cref(_M_impl.at(__n)); } - - reference front() { return cast_traits::to_value_type_ref(_M_impl.front()); } - reference back() { return cast_traits::to_value_type_ref(_M_impl.back()); } - const_reference front() const { return cast_traits::to_value_type_cref(_M_impl.front()); } - const_reference back() const { return cast_traits::to_value_type_cref(_M_impl.back()); } - - size_type size() const { return _M_impl.size(); } - size_type max_size() const { return _M_impl.max_size(); } - bool empty() const { return _M_impl.empty(); } - allocator_type get_allocator() const { return _STLP_CONVERT_ALLOCATOR(_M_impl.get_allocator(), value_type); } - - explicit deque(const allocator_type& __a = allocator_type()) - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - - deque(const _Self& __x) : _M_impl(__x._M_impl) {} - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit deque(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(value_type), -#else - deque(size_type __n, const value_type& __val, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_impl(__n, cast_traits::to_storage_type_cref(__val), _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - // int,long variants may be needed -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - explicit deque(size_type __n) : _M_impl(__n) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - deque(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) -#if !defined (_STLP_USE_ITERATOR_WRAPPER) - : _M_impl(__first, __last, - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) { -#else - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) { -#endif -#if defined (_STLP_USE_ITERATOR_WRAPPER) - insert(end(), __first, __last); -#endif - } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - deque(_InputIterator __first, _InputIterator __last) -# if !defined (_STLP_USE_ITERATOR_WRAPPER) - : _M_impl(__first, __last) {} -# else - { insert(end(), __first, __last); } -# endif -# endif - -#else - deque(const_pointer __first, const_pointer __last, - const allocator_type& __a = allocator_type() ) - : _M_impl(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - - deque(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type() ) - : _M_impl(ite_cast_traits::to_storage_type_cite(__first), - ite_cast_traits::to_storage_type_cite(__last), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} -#endif /* _STLP_MEMBER_TEMPLATES */ - - deque(__move_source<_Self> src) - : _M_impl(__move_source<_Base>(src.get()._M_impl)) {} - - _Self& operator= (const _Self& __x) { _M_impl = __x._M_impl; return *this; } - - void swap(_Self& __x) { _M_impl.swap(__x._M_impl); } - - void assign(size_type __n, const value_type& __val) { - _M_impl.assign(__n, cast_traits::to_storage_type_cref(__val)); - } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type&) - { _M_impl.assign(__n, __val); } - - template <class _InputIterator> - void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.assign(typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); -# else - _M_impl.assign(__first, __last); -# endif - } -#else - void assign(const_pointer __first, const_pointer __last) - { _M_impl.assign(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); } - void assign(const_iterator __first, const_iterator __last) - { _M_impl.assign(ite_cast_traits::to_storage_type_cite(__first), - ite_cast_traits::to_storage_type_cite(__last)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void push_back(const value_type& __t) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { _M_impl.push_back(cast_traits::to_storage_type_cref(__t)); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_front(const value_type& __t = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void push_front(const value_type& __t) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { _M_impl.push_front(cast_traits::to_storage_type_cref(__t)); } - -# if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - void push_back() { _M_impl.push_back(); } - void push_front() { _M_impl.push_front(); } -# endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void pop_back() { _M_impl.pop_back(); } - void pop_front() { _M_impl.pop_front(); } - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - iterator insert(iterator __pos, const value_type& __x) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { return ite_cast_traits::to_value_type_ite(_M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), - cast_traits::to_storage_type_cref(__x))); } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos) { return insert(__pos, _STLP_DEFAULT_CONSTRUCTED(value_type)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void insert(iterator __pos, size_type __n, const value_type& __x) - { _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), __n, cast_traits::to_storage_type_cref(__x)); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, - const __true_type&) { - _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), __n, __val); - } - - template <class _InputIterator> - void _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - // Check whether it's an integral type. If so, it's not an iterator. - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__pos, __first, __last, _Integral()); -# else - _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), __first, __last); -# endif - } - -#else /* _STLP_MEMBER_TEMPLATES */ - void insert(iterator __pos, - const_pointer __first, const_pointer __last) { - _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), - cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - void insert(iterator __pos, - const_iterator __first, const_iterator __last) { - _M_impl.insert(ite_cast_traits::to_storage_type_ite(__pos), - ite_cast_traits::to_storage_type_cite(__first), - ite_cast_traits::to_storage_type_cite(__last)); - } - -#endif /* _STLP_MEMBER_TEMPLATES */ - -#if !defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void resize(size_type __new_size, const value_type& __x) -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - { _M_impl.resize(__new_size, cast_traits::to_storage_type_cref(__x)); } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { _M_impl.resize(__new_size); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - iterator erase(iterator __pos) - { return ite_cast_traits::to_value_type_ite(_M_impl.erase(ite_cast_traits::to_storage_type_ite(__pos))); } - - iterator erase(iterator __first, iterator __last) - { return ite_cast_traits::to_value_type_ite(_M_impl.erase(ite_cast_traits::to_storage_type_ite(__first), - ite_cast_traits::to_storage_type_ite(__last))); } - void clear() { _M_impl.clear(); } - -private: - _Base _M_impl; -}; - -#if defined (deque) -# undef deque -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#undef DEQUE_IMPL - -_STLP_END_NAMESPACE - -#endif /* _STLP_SPECIALIZED_DEQUE_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/pointers/_list.h b/WebKit/android/stlport/stl/pointers/_list.h deleted file mode 100644 index 441b11d..0000000 --- a/WebKit/android/stlport/stl/pointers/_list.h +++ /dev/null @@ -1,337 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_PTR_SPECIALIZED_LIST_H -#define _STLP_PTR_SPECIALIZED_LIST_H - -#ifndef _STLP_POINTERS_SPEC_TOOLS_H -# include <stl/pointers/_tools.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define LIST_IMPL _STLP_PTR_IMPL_NAME(list) - -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) - -_STLP_MOVE_TO_PRIV_NAMESPACE - -_STLP_EXPORT_TEMPLATE_CLASS _List_node<void*>; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_EXPORT_TEMPLATE_CLASS allocator<_STLP_PRIV _List_node<void*> >; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<_List_node_base, _List_node<void*>, allocator<_List_node<void*> > >; -_STLP_EXPORT_TEMPLATE_CLASS _List_base<void*, allocator<void*> >; -_STLP_EXPORT_TEMPLATE_CLASS LIST_IMPL<void*, allocator<void*> >; - -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#if defined (_STLP_DEBUG) -# define list _STLP_NON_DBG_NAME(list) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class list -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (list) - : public __stlport_class<list<_Tp, _Alloc> > -#endif -{ - typedef typename _STLP_PRIV _StorageType<_Tp>::_Type _StorageType; - typedef typename _Alloc_traits<_StorageType, _Alloc>::allocator_type _StorageTypeAlloc; - typedef _STLP_PRIV LIST_IMPL<_StorageType, _StorageTypeAlloc> _Base; - typedef typename _Base::iterator _BaseIte; - typedef typename _Base::const_iterator _BaseConstIte; - typedef _STLP_PRIV _CastTraits<_StorageType, _Tp> cast_traits; - typedef list<_Tp, _Alloc> _Self; - -public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - _STLP_FORCE_ALLOCATORS(value_type, _Alloc) - typedef typename _Alloc_traits<value_type, _Alloc>::allocator_type allocator_type; - typedef bidirectional_iterator_tag _Iterator_category; - - typedef _STLP_PRIV _List_iterator<value_type, _Nonconst_traits<value_type> > iterator; - typedef _STLP_PRIV _List_iterator<value_type, _Const_traits<value_type> > const_iterator; - - _STLP_DECLARE_BIDIRECTIONAL_REVERSE_ITERATORS; - - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR(_M_impl.get_allocator(), value_type); } - -# if !(defined(__MRC__)||(defined(__SC__) && !defined(__DMC__))) - explicit -# endif - list(const allocator_type& __a = allocator_type()) - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit list(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(value_type), -#else - list(size_type __n, const value_type& __val, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_impl(__n, cast_traits::to_storage_type_cref(__val), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit list(size_type __n) - : _M_impl(__n) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - list(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) -# if !defined (_STLP_USE_ITERATOR_WRAPPER) - : _M_impl(__first, __last, _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} -# else - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) { - insert(begin(), __first, __last); - } -# endif - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - list(_InputIterator __first, _InputIterator __last) -# if !defined (_STLP_USE_WRAPPER_ITERATOR) - : _M_impl(__first, __last) {} -# else - { insert(begin(), __first, __last); } -# endif -# endif - -#else /* _STLP_MEMBER_TEMPLATES */ - - list(const value_type *__first, const value_type *__last, - const allocator_type& __a = allocator_type()) - : _M_impl(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - list(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type()) - : _M_impl(_BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#endif /* _STLP_MEMBER_TEMPLATES */ - - list(const _Self& __x) : _M_impl(__x._M_impl) {} - - list(__move_source<_Self> src) - : _M_impl(__move_source<_Base>(src.get()._M_impl)) {} - - iterator begin() { return iterator(_M_impl.begin()._M_node); } - const_iterator begin() const { return const_iterator(_M_impl.begin()._M_node); } - - iterator end() { return iterator(_M_impl.end()._M_node); } - const_iterator end() const { return const_iterator(_M_impl.end()._M_node); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - bool empty() const { return _M_impl.empty(); } - size_type size() const { return _M_impl.size(); } - size_type max_size() const { return _M_impl.max_size(); } - - reference front() { return *begin(); } - const_reference front() const { return *begin(); } - reference back() { return *(--end()); } - const_reference back() const { return *(--end()); } - - void swap(_Self &__x) { _M_impl.swap(__x._M_impl); } - void clear() { _M_impl.clear(); } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const_reference __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - iterator insert(iterator __pos, const_reference __x) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { return iterator(_M_impl.insert(_BaseIte(__pos._M_node), - cast_traits::to_storage_type_cref(__x))._M_node); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, - const __true_type&) - { _M_impl.insert(_BaseIte(__pos._M_node), __n, __val); } - - template <class _InputIterator> - void _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.insert(_BaseIte(__pos._M_node), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - // Check whether it's an integral type. If so, it's not an iterator. - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__pos, __first, __last, _Integral()); -# else - _M_impl.insert(_BaseIte(__pos._M_node), __first, __last); -# endif - } -#else /* _STLP_MEMBER_TEMPLATES */ - void insert(iterator __pos, const value_type *__first, const value_type *__last) - { _M_impl.insert(_BaseIte(__pos._M_node), cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); } - void insert(iterator __pos, const_iterator __first, const_iterator __last) - { _M_impl.insert(_BaseIte(__pos._M_node), _BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - void insert(iterator __pos, size_type __n, const value_type& __x) - { _M_impl.insert(_BaseIte(__pos._M_node), __n, cast_traits::to_storage_type_cref(__x)); } - - void push_front(const value_type& __x) { _M_impl.push_front(cast_traits::to_storage_type_cref(__x)); } - void push_back(const value_type& __x) { _M_impl.push_back(cast_traits::to_storage_type_cref(__x)); } - -#if defined (_STLP_DONT_SUP_DFLT_PARAM) && !defined (_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos) { return iterator(_M_impl.insert(__pos._M_node)._M_node); } - void push_front() { _M_impl.push_front();} - void push_back() { _M_impl.push_back();} -# endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - iterator erase(iterator __pos) - { return iterator(_M_impl.erase(_BaseIte(__pos._M_node))._M_node); } - iterator erase(iterator __first, iterator __last) - { return iterator(_M_impl.erase(_BaseIte(__first._M_node), _BaseIte(__last._M_node))._M_node); } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void resize(size_type __new_size) { _M_impl.resize(__new_size); } - void resize(size_type __new_size, const value_type& __x) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM*/ - {_M_impl.resize(__new_size, cast_traits::to_storage_type_cref(__x));} - - void pop_front() { _M_impl.pop_front(); } - void pop_back() { _M_impl.pop_back(); } - - _Self& operator=(const _Self& __x) - { _M_impl = __x._M_impl; return *this; } - void assign(size_type __n, const value_type& __val) - { _M_impl.assign(__n, cast_traits::to_storage_type_cref(__val)); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, const __true_type&) - { _M_impl.assign(__n, __val); } - - template <class _InputIterator> - void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.assign(typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); -# else - _M_impl.assign(__first, __last); -# endif - } -#else - void assign(const value_type *__first, const value_type *__last) { - _M_impl.assign(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - void assign(const_iterator __first, const_iterator __last) - { _M_impl.assign(_BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node)); } -#endif - - void splice(iterator __pos, _Self& __x) - { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl); } - void splice(iterator __pos, _Self& __x, iterator __i) - { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl, _BaseIte(__i._M_node)); } - void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) - { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl, - _BaseIte(__first._M_node), _BaseIte(__last._M_node)); } - - void remove(const_reference __val) - { _M_impl.remove(cast_traits::to_storage_type_cref(__val)); } - void unique() { _M_impl.unique(); } - void merge(_Self& __x) { _M_impl.merge(__x._M_impl); } - void reverse() { _M_impl.reverse(); } - void sort() { _M_impl.sort(); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _Predicate> - void remove_if(_Predicate __pred) - { _M_impl.remove_if(_STLP_PRIV _UnaryPredWrapper<_StorageType, _Tp, _Predicate>(__pred)); } - template <class _BinaryPredicate> - void unique(_BinaryPredicate __bin_pred) - { _M_impl.unique(_STLP_PRIV _BinaryPredWrapper<_StorageType, _Tp, _BinaryPredicate>(__bin_pred)); } - - template <class _StrictWeakOrdering> - void merge(_Self &__x, _StrictWeakOrdering __comp) - { _M_impl.merge(__x._M_impl, _STLP_PRIV _BinaryPredWrapper<_StorageType, _Tp, _StrictWeakOrdering>(__comp)); } - - template <class _StrictWeakOrdering> - void sort(_StrictWeakOrdering __comp) - { _M_impl.sort(_STLP_PRIV _BinaryPredWrapper<_StorageType, _Tp, _StrictWeakOrdering>(__comp)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - -private: - _Base _M_impl; -}; - -#if defined (list) -# undef list -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#undef LIST_IMPL - -_STLP_END_NAMESPACE - -#endif /* _STLP_PTR_SPECIALIZED_LIST_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/pointers/_set.h b/WebKit/android/stlport/stl/pointers/_set.h deleted file mode 100644 index c66fd98..0000000 --- a/WebKit/android/stlport/stl/pointers/_set.h +++ /dev/null @@ -1,536 +0,0 @@ -/* - * Copyright (c) 2005 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_PTR_SPECIALIZED_SET_H -#define _STLP_PTR_SPECIALIZED_SET_H - -#ifndef _STLP_POINTERS_SPEC_TOOLS_H -# include <stl/pointers/_tools.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Specific iterator traits creation -_STLP_CREATE_ITERATOR_TRAITS(SetTraitsT, Const_traits) - -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -_STLP_EXPORT template struct _STLP_CLASS_DECLSPEC less<void*>; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -typedef _Rb_tree_node<void*> _Node; -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<_Rb_tree_node_base, _Node, allocator<_Node> >; -_STLP_EXPORT_TEMPLATE_CLASS _Rb_tree_base<void*, allocator<void*> >; -# if defined (_STLP_DEBUG) -_STLP_EXPORT_TEMPLATE_CLASS _DbgCompare<void*, less<void*> >; -# define _Rb_tree _STLP_NON_DBG_NAME(Rb_tree) -_STLP_EXPORT_TEMPLATE_CLASS _Rb_tree<void*, _DbgCompare<void*, less<void*> >, void*, _Identity<void*>, - _SetTraitsT<void*>, allocator<void*> >; -# undef _Rb_tree -# endif -_STLP_EXPORT_TEMPLATE_CLASS _Rb_tree<void*, less<void*>, void*, _Identity<void*>, - _SetTraitsT<void*>, allocator<void*> >; -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -template <class _Key, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Key) > -class set -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<set<_Key, _Compare, _Alloc> > -#endif -{ - typedef _STLP_PRIV _AssocStorageTypes<_Key, _Compare> _AssocStorageTypes; - typedef typename _AssocStorageTypes::_KeyStorageType _KeyStorageType; - typedef typename _AssocStorageTypes::_CompareStorageType _CompareStorageType; - typedef typename _Alloc_traits<_KeyStorageType, _Alloc>::allocator_type _StorageTypeAlloc; - typedef _STLP_PRIV _CastTraits<_KeyStorageType, _Key> cast_traits; - - typedef set<_Key, _Compare, _Alloc> _Self; -public: - typedef _Key key_type; - typedef _Key value_type; - typedef _Compare key_compare; - typedef _Compare value_compare; - -protected: - //Specific iterator traits creation - typedef _STLP_PRIV _SetTraitsT<value_type> _SetTraits; - typedef _STLP_PRIV _Rb_tree<key_type, key_compare, - value_type, _STLP_PRIV _Identity<value_type>, - _SetTraits, _Alloc> _Priv_Rep_type; - - typedef _STLP_PRIV _SetTraitsT<_KeyStorageType> _SetStorageTraits; - -public: - //dums: need the following public for the __move_traits framework - typedef _STLP_PRIV _Rb_tree<_KeyStorageType, _CompareStorageType, - _KeyStorageType, _STLP_PRIV _Identity<_KeyStorageType>, - _SetStorageTraits, _StorageTypeAlloc> _Rep_type; - -private: - typedef typename _Rep_type::iterator base_iterator; - typedef typename _Rep_type::const_iterator const_base_iterator; - -public: - typedef typename _Priv_Rep_type::pointer pointer; - typedef typename _Priv_Rep_type::const_pointer const_pointer; - typedef typename _Priv_Rep_type::reference reference; - typedef typename _Priv_Rep_type::const_reference const_reference; - typedef typename _Priv_Rep_type::iterator iterator; - typedef typename _Priv_Rep_type::const_iterator const_iterator; - typedef typename _Priv_Rep_type::reverse_iterator reverse_iterator; - typedef typename _Priv_Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Priv_Rep_type::size_type size_type; - typedef typename _Priv_Rep_type::difference_type difference_type; - typedef typename _Priv_Rep_type::allocator_type allocator_type; - -private: - _Rep_type _M_t; // red-black tree representing set - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -#if defined (_STLP_DEBUG) - static iterator _S_to_value_ite(const_base_iterator __ite) - { return iterator(__ite._Owner(), __ite._M_iterator._M_node); } - static base_iterator _S_to_storage_ite(const_iterator __ite) - { return base_iterator(__ite._Owner(), __ite._M_iterator._M_node); } -#else - static iterator _S_to_value_ite(const_base_iterator __ite) - { return iterator(__ite._M_node); } - static base_iterator _S_to_storage_ite(const_iterator __ite) - { return base_iterator(__ite._M_node); } -#endif - -public: - set() : _M_t(_CompareStorageType(), _StorageTypeAlloc()) {} - explicit set(const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - set(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), _StorageTypeAlloc()) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_unique(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_unique(__first, __last); -# endif - } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - set(_InputIterator __first, _InputIterator __last, const _Compare& __comp) - : _M_t(__comp, _StorageTypeAlloc()) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_unique(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_unique(__first, __last); -# endif - } -# endif - template <class _InputIterator> - set(_InputIterator __first, _InputIterator __last, const _Compare& __comp, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_unique(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_unique(__first, __last); -# endif - } -#else - set(const value_type* __first, const value_type* __last) - : _M_t(_Compare(), _StorageTypeAlloc()) { - _M_t.insert_unique(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - - set(const value_type* __first, const value_type* __last, - const _Compare& __comp, const allocator_type& __a = allocator_type()) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) { - _M_t.insert_unique(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - - set(const_iterator __first, const_iterator __last) - : _M_t(_Compare(), _StorageTypeAlloc()) - { _M_t.insert_unique(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } - - set(const_iterator __first, const_iterator __last, - const _Compare& __comp, const allocator_type& __a = allocator_type()) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) - { _M_t.insert_unique(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - set(const _Self& __x) : _M_t(__x._M_t) {} - - set(__move_source<_Self> src) - : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {} - - _Self& operator=(const _Self& __x) { - _M_t = __x._M_t; - return *this; - } - - // accessors: - key_compare key_comp() const { return _M_t.key_comp(); } - value_compare value_comp() const { return _M_t.key_comp(); } - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR(_M_t.get_allocator(), value_type); } - - iterator begin() { return _S_to_value_ite(_M_t.begin()); } - iterator end() { return _S_to_value_ite(_M_t.end()); } - const_iterator begin() const { return _S_to_value_ite(_M_t.begin()); } - const_iterator end() const { return _S_to_value_ite(_M_t.end()); } - reverse_iterator rbegin() { return reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - bool empty() const { return _M_t.empty(); } - size_type size() const { return _M_t.size(); } - size_type max_size() const { return _M_t.max_size(); } - void swap(_Self& __x) { _M_t.swap(__x._M_t); } - - // insert/erase - pair<iterator,bool> insert(const value_type& __x) { - pair<base_iterator, bool> ret = _M_t.insert_unique(cast_traits::to_storage_type_cref(__x)); - return pair<iterator, bool>(_S_to_value_ite(ret.first), ret.second); - } - iterator insert(iterator __pos, const value_type& __x) - { return _S_to_value_ite(_M_t.insert_unique(_S_to_storage_ite(__pos), cast_traits::to_storage_type_cref(__x))); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_unique(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_unique(__first, __last); -# endif - } -#else - void insert(const_iterator __first, const_iterator __last) - { _M_t.insert_unique(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } - void insert(const value_type* __first, const value_type* __last) { - _M_t.insert_unique(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } -#endif - void erase(iterator __pos) - { _M_t.erase(_S_to_storage_ite(__pos)); } - size_type erase(const key_type& __x) - { return _M_t.erase_unique(cast_traits::to_storage_type_cref(__x)); } - void erase(iterator __first, iterator __last) - { _M_t.erase(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } - void clear() { _M_t.clear(); } - - // set operations: - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __x) const - { return _S_to_value_ite(_M_t.find(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __x) - { return _S_to_value_ite(_M_t.find(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const - { return _M_t.find(cast_traits::to_storage_type_crefT(__x)) == _M_t.end() ? 0 : 1; } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) - { return _S_to_value_ite(_M_t.lower_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const - { return _S_to_value_ite(_M_t.lower_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) - { return _S_to_value_ite(_M_t.upper_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const - { return _S_to_value_ite(_M_t.upper_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __x) { - pair<base_iterator, base_iterator> __ret; - __ret = _M_t.equal_range(cast_traits::to_storage_type_crefT(__x)); - return pair<iterator, iterator>(_S_to_value_ite(__ret.first), - _S_to_value_ite(__ret.second)); - } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __x) const { - pair<const_base_iterator, const_base_iterator> __ret; - __ret = _M_t.equal_range_unique(cast_traits::to_storage_type_crefT(__x)); - return pair<const_iterator, const_iterator>(_S_to_value_ite(__ret.first), - _S_to_value_ite(__ret.second)); - } -}; - -//Specific iterator traits creation -_STLP_CREATE_ITERATOR_TRAITS(MultisetTraitsT, Const_traits) - -template <class _Key, _STLP_DFL_TMPL_PARAM(_Compare, less<_Key>), - _STLP_DEFAULT_ALLOCATOR_SELECT(_Key) > -class multiset -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) - : public __stlport_class<multiset<_Key, _Compare, _Alloc> > -#endif -{ - typedef _STLP_PRIV _AssocStorageTypes<_Key, _Compare> _AssocStorageTypes; - typedef typename _AssocStorageTypes::_KeyStorageType _KeyStorageType; - typedef typename _AssocStorageTypes::_CompareStorageType _CompareStorageType; - typedef typename _Alloc_traits<_KeyStorageType, _Alloc>::allocator_type _StorageTypeAlloc; - typedef _STLP_PRIV _CastTraits<_KeyStorageType, _Key> cast_traits; - - typedef multiset<_Key, _Compare, _Alloc> _Self; -public: - // typedefs: - typedef _Key key_type; - typedef _Key value_type; - typedef _Compare key_compare; - typedef _Compare value_compare; - -protected: - //Specific iterator traits creation - typedef _STLP_PRIV _MultisetTraitsT<value_type> _MultisetTraits; - typedef _STLP_PRIV _Rb_tree<key_type, key_compare, - value_type, _STLP_PRIV _Identity<value_type>, - _MultisetTraits, _Alloc> _Priv_Rep_type; - - typedef _STLP_PRIV _MultisetTraitsT<_KeyStorageType> _MultisetStorageTraits; -public: - //dums: need the following public for the __move_traits framework - typedef _STLP_PRIV _Rb_tree<_KeyStorageType, _CompareStorageType, - _KeyStorageType, _STLP_PRIV _Identity<_KeyStorageType>, - _MultisetStorageTraits, _StorageTypeAlloc> _Rep_type; - -private: - typedef typename _Rep_type::iterator base_iterator; - typedef typename _Rep_type::const_iterator const_base_iterator; - -public: - typedef typename _Priv_Rep_type::pointer pointer; - typedef typename _Priv_Rep_type::const_pointer const_pointer; - typedef typename _Priv_Rep_type::reference reference; - typedef typename _Priv_Rep_type::const_reference const_reference; - typedef typename _Priv_Rep_type::iterator iterator; - typedef typename _Priv_Rep_type::const_iterator const_iterator; - typedef typename _Priv_Rep_type::reverse_iterator reverse_iterator; - typedef typename _Priv_Rep_type::const_reverse_iterator const_reverse_iterator; - typedef typename _Priv_Rep_type::size_type size_type; - typedef typename _Priv_Rep_type::difference_type difference_type; - typedef typename _Priv_Rep_type::allocator_type allocator_type; - -private: - _Rep_type _M_t; // red-black tree representing multiset - _STLP_KEY_TYPE_FOR_CONT_EXT(key_type) - -#if defined (_STLP_DEBUG) - static iterator _S_to_value_ite(const_base_iterator __ite) - { return iterator(__ite._Owner(), __ite._M_iterator._M_node); } - static base_iterator _S_to_storage_ite(const_iterator __ite) - { return base_iterator(__ite._Owner(), __ite._M_iterator._M_node); } -#else - static iterator _S_to_value_ite(const_base_iterator __ite) - { return iterator(__ite._M_node); } - static base_iterator _S_to_storage_ite(const_iterator __ite) - { return base_iterator(__ite._M_node); } -#endif - -public: - multiset() : _M_t(_Compare(), _StorageTypeAlloc()) {} - explicit multiset(const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - multiset(_InputIterator __first, _InputIterator __last) - : _M_t(_Compare(), _StorageTypeAlloc()) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_equal(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_equal(__first, __last); -# endif - } - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - multiset(_InputIterator __first, _InputIterator __last, - const _Compare& __comp) - : _M_t(__comp, _StorageTypeAlloc()) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_equal(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_equal(__first, __last); -# endif - } -# endif - template <class _InputIterator> - multiset(_InputIterator __first, _InputIterator __last, - const _Compare& __comp, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_equal(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_equal(__first, __last); -# endif - } - -#else - multiset(const value_type* __first, const value_type* __last) - : _M_t(_Compare(), _StorageTypeAlloc()) { - _M_t.insert_equal(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - - multiset(const value_type* __first, const value_type* __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) { - _M_t.insert_equal(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - - multiset(const_iterator __first, const_iterator __last) - : _M_t(_Compare(), _StorageTypeAlloc()) - { _M_t.insert_equal(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } - - multiset(const_iterator __first, const_iterator __last, - const _Compare& __comp, - const allocator_type& __a = allocator_type()) - : _M_t(__comp, _STLP_CONVERT_ALLOCATOR(__a, _KeyStorageType)) - { _M_t.insert_equal(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - multiset(const _Self& __x) - : _M_t(__x._M_t) {} - - _Self& operator=(const _Self& __x) { - _M_t = __x._M_t; - return *this; - } - - multiset(__move_source<_Self> src) - : _M_t(__move_source<_Rep_type>(src.get()._M_t)) {} - - // accessors: - key_compare key_comp() const { return _M_t.key_comp(); } - value_compare value_comp() const { return _M_t.key_comp(); } - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR(_M_t.get_allocator(), value_type); } - - iterator begin() { return _S_to_value_ite(_M_t.begin()); } - iterator end() { return _S_to_value_ite(_M_t.end()); } - const_iterator begin() const { return _S_to_value_ite(_M_t.begin()); } - const_iterator end() const { return _S_to_value_ite(_M_t.end()); } - reverse_iterator rbegin() { return reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - bool empty() const { return _M_t.empty(); } - size_type size() const { return _M_t.size(); } - size_type max_size() const { return _M_t.max_size(); } - void swap(_Self& __x) { _M_t.swap(__x._M_t); } - - // insert/erase - iterator insert(const value_type& __x) - { return _S_to_value_ite(_M_t.insert_equal(cast_traits::to_storage_type_cref(__x))); } - iterator insert(iterator __pos, const value_type& __x) { - return _S_to_value_ite(_M_t.insert_equal(_S_to_storage_ite(__pos), - cast_traits::to_storage_type_cref(__x))); - } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(_InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - _M_t.insert_equal(typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_KeyStorageType, _Key, _InputIterator>::_Ite(__last)); -# else - _M_t.insert_equal(__first, __last); -# endif - } -#else - void insert(const value_type* __first, const value_type* __last) { - _M_t.insert_equal(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - void insert(const_iterator __first, const_iterator __last) - { _M_t.insert_equal(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - void erase(iterator __pos) - { _M_t.erase(_S_to_storage_ite(__pos)); } - size_type erase(const key_type& __x) - { return _M_t.erase(cast_traits::to_storage_type_cref(__x)); } - void erase(iterator __first, iterator __last) - { _M_t.erase(_S_to_storage_ite(__first), _S_to_storage_ite(__last)); } - void clear() { _M_t.clear(); } - - // multiset operations: - - _STLP_TEMPLATE_FOR_CONT_EXT - iterator find(const _KT& __x) - { return _S_to_value_ite(_M_t.find(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator find(const _KT& __x) const - { return _S_to_value_ite(_M_t.find(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - size_type count(const _KT& __x) const - { return _M_t.count(cast_traits::to_storage_type_crefT(__x)); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator lower_bound(const _KT& __x) - { return _S_to_value_ite(_M_t.lower_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator lower_bound(const _KT& __x) const - { return _S_to_value_ite(_M_t.lower_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - iterator upper_bound(const _KT& __x) - { return _S_to_value_ite(_M_t.upper_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - const_iterator upper_bound(const _KT& __x) const - { return _S_to_value_ite(_M_t.upper_bound(cast_traits::to_storage_type_crefT(__x))); } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<iterator, iterator> equal_range(const _KT& __x) { - pair<base_iterator, base_iterator> __ret; - __ret = _M_t.equal_range(cast_traits::to_storage_type_crefT(__x)); - return pair<iterator, iterator>(_S_to_value_ite(__ret.first), - _S_to_value_ite(__ret.second)); - } - _STLP_TEMPLATE_FOR_CONT_EXT - pair<const_iterator, const_iterator> equal_range(const _KT& __x) const { - pair<const_base_iterator, const_base_iterator> __ret; - __ret = _M_t.equal_range(cast_traits::to_storage_type_crefT(__x)); - return pair<const_iterator, const_iterator>(_S_to_value_ite(__ret.first), - _S_to_value_ite(__ret.second)); - } -}; - -_STLP_END_NAMESPACE - -#endif /* _STLP_PTR_SPECIALIZED_SET_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/pointers/_slist.h b/WebKit/android/stlport/stl/pointers/_slist.h deleted file mode 100644 index 93ff211..0000000 --- a/WebKit/android/stlport/stl/pointers/_slist.h +++ /dev/null @@ -1,413 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_SPECIALIZED_SLIST_H -#define _STLP_SPECIALIZED_SLIST_H - -#ifndef _STLP_POINTERS_SPEC_TOOLS_H -# include <stl/pointers/_tools.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define SLIST_IMPL _STLP_PTR_IMPL_NAME(slist) - -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -_STLP_MOVE_TO_PRIV_NAMESPACE - -_STLP_EXPORT_TEMPLATE_CLASS _Slist_node<void*>; -typedef _Slist_node<void*> _VoidPtrSNode; -_STLP_EXPORT_TEMPLATE_CLASS _STLP_alloc_proxy<_Slist_node_base, _VoidPtrSNode, allocator<_VoidPtrSNode> >; -_STLP_EXPORT_TEMPLATE_CLASS _Slist_base<void*, allocator<void*> >; -_STLP_EXPORT_TEMPLATE_CLASS SLIST_IMPL<void*, allocator<void*> >; - -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#if defined (_STLP_DEBUG) -# define slist _STLP_NON_DBG_NAME(slist) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class slist -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (slist) - : public __stlport_class<slist<_Tp, _Alloc> > -#endif -{ - typedef typename _STLP_PRIV _StorageType<_Tp>::_Type _StorageType; - typedef typename _Alloc_traits<_StorageType, _Alloc>::allocator_type _StorageTypeAlloc; - typedef _STLP_PRIV SLIST_IMPL<_StorageType, _StorageTypeAlloc> _Base; - typedef typename _Base::iterator _BaseIte; - typedef typename _Base::const_iterator _BaseConstIte; - typedef slist<_Tp, _Alloc> _Self; - typedef _STLP_PRIV _CastTraits<_StorageType, _Tp> cast_traits; - typedef _STLP_PRIV _Slist_node_base _Node_base; - -public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef forward_iterator_tag _Iterator_category; - - typedef _STLP_PRIV _Slist_iterator<value_type, _Nonconst_traits<value_type> > iterator; - typedef _STLP_PRIV _Slist_iterator<value_type, _Const_traits<value_type> > const_iterator; - - _STLP_FORCE_ALLOCATORS(value_type, _Alloc) - typedef typename _Alloc_traits<value_type, _Alloc>::allocator_type allocator_type; - -public: - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR(_M_impl.get_allocator(), value_type); } - - explicit slist(const allocator_type& __a = allocator_type()) - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit slist(size_type __n, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type), -#else - slist(size_type __n, const value_type& __x, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_impl(__n, cast_traits::to_storage_type_cref(__x), _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit slist(size_type __n) : _M_impl(__n) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - -#if defined (_STLP_MEMBER_TEMPLATES) - // We don't need any dispatching tricks here, because _M_insert_after_range - // already does them. - template <class _InputIterator> - slist(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL) -# if !defined (_STLP_USE_ITERATOR_WRAPPER) - : _M_impl(__first, __last, _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} -# else - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) { - insert_after(before_begin(), __first, __last); - } -# endif -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - // VC++ needs this crazyness - template <class _InputIterator> - slist(_InputIterator __first, _InputIterator __last) -# if !defined (_STLP_USE_WRAPPER_ITERATOR) - : _M_impl(__first, __last) {} -# else - { insert_after(before_begin(), __first, __last); } -# endif -# endif -#else /* _STLP_MEMBER_TEMPLATES */ - slist(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type() ) - : _M_impl(_BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - slist(const value_type* __first, const value_type* __last, - const allocator_type& __a = allocator_type()) - : _M_impl(cast_traits::to_storage_type_cptr(__first), cast_traits::to_storage_type_cptr(__last), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} -#endif /* _STLP_MEMBER_TEMPLATES */ - - slist(const _Self& __x) : _M_impl(__x._M_impl) {} - slist(__move_source<_Self> src) - : _M_impl(__move_source<_Base>(src.get()._M_impl)) {} - - _Self& operator= (const _Self& __x) { _M_impl = __x._M_impl; return *this; } - - void assign(size_type __n, const value_type& __val) - { _M_impl.assign(__n, cast_traits::to_storage_type_cref(__val)); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_assign_dispatch(_Integer __n, _Integer __val, - const __true_type&) - { _M_impl.assign(__n, __val); } - - template <class _InputIterator> - void _M_assign_dispatch(_InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.assign(typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_assign_dispatch(__first, __last, _Integral()); -# else - _M_impl.assign(__first, __last); -# endif - } -#else - void assign(const value_type *__first, const value_type *__last) { - _M_impl.assign(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } - void assign(const_iterator __first, const_iterator __last) { - _M_impl.assign(_BaseConstIte(__first._M_node), - _BaseConstIte(__last._M_node)); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - - iterator before_begin() { return iterator(_M_impl.before_begin()._M_node); } - const_iterator before_begin() const { return const_iterator(const_cast<_Node_base*>(_M_impl.before_begin()._M_node)); } - - iterator begin() { return iterator(_M_impl.begin()._M_node); } - const_iterator begin() const { return const_iterator(const_cast<_Node_base*>(_M_impl.begin()._M_node));} - - iterator end() { return iterator(_M_impl.end()._M_node); } - const_iterator end() const { return iterator(_M_impl.end()._M_node); } - - size_type size() const { return _M_impl.size(); } - size_type max_size() const { return _M_impl.max_size(); } - bool empty() const { return _M_impl.empty(); } - - void swap(_Self& __x) { _M_impl.swap(__x._M_impl); } - -public: - reference front() { return *begin(); } - const_reference front() const { return *begin(); } -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - void push_front(const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void push_front(const value_type& __x) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { _M_impl.push_front(cast_traits::to_storage_type_cref(__x)); } - -# if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - void push_front() { _M_impl.push_front();} -# endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void pop_front() { _M_impl.pop_front(); } - - iterator previous(const_iterator __pos) - { return iterator(_M_impl.previous(_BaseConstIte(__pos._M_node))._M_node); } - const_iterator previous(const_iterator __pos) const - { return const_iterator(const_cast<_Node_base*>(_M_impl.previous(_BaseConstIte(__pos._M_node))._M_node)); } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - iterator insert_after(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - iterator insert_after(iterator __pos, const value_type& __x) -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - { return iterator(_M_impl.insert_after(_BaseIte(__pos._M_node), - cast_traits::to_storage_type_cref(__x))._M_node); } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - iterator insert_after(iterator __pos) - { return iterator(_M_impl.insert_after(_BaseIte(__pos._M_node))._M_node);} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void insert_after(iterator __pos, size_type __n, const value_type& __x) - { _M_impl.insert_after(_BaseIte(__pos._M_node), __n, cast_traits::to_storage_type_cref(__x)); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_insert_after_dispatch(iterator __pos, _Integer __n, _Integer __val, - const __true_type&) { - _M_impl.insert_after(_BaseIte(__pos._M_node), __n, __val); - } - - template <class _InputIterator> - void _M_insert_after_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.insert_after(_BaseIte(__pos._M_node), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - - template <class _InputIterator> - void insert_after(iterator __pos, _InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - // Check whether it's an integral type. If so, it's not an iterator. - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_after_dispatch(__pos, __first, __last, _Integral()); -# else - _M_impl.insert_after(_BaseIte(__pos._M_node), __first, __last); -# endif - } - -#else /* _STLP_MEMBER_TEMPLATES */ - void insert_after(iterator __pos, - const_iterator __first, const_iterator __last) - { _M_impl.insert_after(_BaseIte(__pos._M_node), - _BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node)); } - void insert_after(iterator __pos, - const value_type* __first, const value_type* __last) { - _M_impl.insert_after(_BaseIte(__pos._M_node), - cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - iterator insert(iterator __pos, const value_type& __x) -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - { return iterator(_M_impl.insert(_BaseIte(__pos._M_node), - cast_traits::to_storage_type_cref(__x))._M_node); } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - iterator insert(iterator __pos) - { return iterator(_M_impl.insert(_BaseIte(__pos._M_node))._M_node); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void insert(iterator __pos, size_type __n, const value_type& __x) - { _M_impl.insert(_BaseIte(__pos._M_node), __n, cast_traits::to_storage_type_cref(__x)); } - -#if defined (_STLP_MEMBER_TEMPLATES) -# if defined (_STLP_USE_ITERATOR_WRAPPER) -private: - template <class _Integer> - void _M_insert_dispatch(iterator __pos, _Integer __n, _Integer __val, - const __true_type&) { - _M_impl.insert(_BaseIte(__pos._M_node), __n, __val); - } - - template <class _InputIterator> - void _M_insert_dispatch(iterator __pos, - _InputIterator __first, _InputIterator __last, - const __false_type&) { - _M_impl.insert(_BaseIte(__pos._M_node), typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__first), - typename _STLP_PRIV _IteWrapper<_StorageType, _Tp, _InputIterator>::_Ite(__last)); - } - -public: -# endif - - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) { -# if defined (_STLP_USE_ITERATOR_WRAPPER) - // Check whether it's an integral type. If so, it's not an iterator. - typedef typename _IsIntegral<_InputIterator>::_Ret _Integral; - _M_insert_dispatch(__pos, __first, __last, _Integral()); -# else - _M_impl.insert(_BaseIte(__pos._M_node), __first, __last); -# endif - } - -#else /* _STLP_MEMBER_TEMPLATES */ - void insert(iterator __pos, const_iterator __first, const_iterator __last) - { _M_impl.insert(_BaseIte(__pos._M_node), _BaseConstIte(__first._M_node), _BaseConstIte(__last._M_node)); } - void insert(iterator __pos, const value_type* __first, const value_type* __last) - { _M_impl.insert(_BaseIte(__pos._M_node), cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - - iterator erase_after(iterator __pos) - { return iterator(_M_impl.erase_after(_BaseIte(__pos._M_node))._M_node); } - iterator erase_after(iterator __before_first, iterator __last) - { return iterator(_M_impl.erase_after(_BaseIte(__before_first._M_node), - _BaseIte(__last._M_node))._M_node); } - - iterator erase(iterator __pos) - { return iterator(_M_impl.erase(_BaseIte(__pos._M_node))._M_node); } - iterator erase(iterator __first, iterator __last) - { return iterator(_M_impl.erase(_BaseIte(__first._M_node), _BaseIte(__last._M_node))._M_node); } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void resize(size_type __new_size, const value_type& __x) -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - { _M_impl.resize(__new_size, cast_traits::to_storage_type_cref(__x));} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { _M_impl.resize(__new_size); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void clear() { _M_impl.clear(); } - - void splice_after(iterator __pos, _Self& __x, - iterator __before_first, iterator __before_last) - { _M_impl.splice_after(_BaseIte(__pos._M_node), __x._M_impl, - _BaseIte(__before_first._M_node), _BaseIte(__before_last._M_node)); } - void splice_after(iterator __pos, _Self& __x, iterator __prev) - { _M_impl.splice_after(_BaseIte(__pos._M_node), __x._M_impl, _BaseIte(__prev._M_node)); } - void splice_after(iterator __pos, _Self& __x) - { _M_impl.splice_after(_BaseIte(__pos._M_node), __x._M_impl); } - void splice(iterator __pos, _Self& __x) - { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl); } - void splice(iterator __pos, _Self& __x, iterator __i) - { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl, _BaseIte(__i._M_node)); } - void splice(iterator __pos, _Self& __x, iterator __first, iterator __last) - { _M_impl.splice(_BaseIte(__pos._M_node), __x._M_impl, - _BaseIte(__first._M_node), _BaseIte(__last._M_node)); } - - void reverse() { _M_impl.reverse(); } - - void remove(const value_type& __val) { _M_impl.remove(cast_traits::to_storage_type_cref(__val)); } - void unique() { _M_impl.unique(); } - void merge(_Self& __x) { _M_impl.merge(__x._M_impl); } - void sort() {_M_impl.sort(); } - -#ifdef _STLP_MEMBER_TEMPLATES - template <class _Predicate> - void remove_if(_Predicate __pred) - { _M_impl.remove_if(_STLP_PRIV _UnaryPredWrapper<_StorageType, _Tp, _Predicate>(__pred)); } - - template <class _BinaryPredicate> - void unique(_BinaryPredicate __pred) - { _M_impl.unique(_STLP_PRIV _BinaryPredWrapper<_StorageType, _Tp, _BinaryPredicate>(__pred)); } - - template <class _StrictWeakOrdering> - void merge(_Self& __x, _StrictWeakOrdering __comp) - { _M_impl.merge(__x._M_impl, _STLP_PRIV _BinaryPredWrapper<_StorageType, _Tp, _StrictWeakOrdering>(__comp)); } - - template <class _StrictWeakOrdering> - void sort(_StrictWeakOrdering __comp) - { _M_impl.sort(_STLP_PRIV _BinaryPredWrapper<_StorageType, _Tp, _StrictWeakOrdering>(__comp)); } -#endif /* _STLP_MEMBER_TEMPLATES */ - -private: - _Base _M_impl; -}; - -#if defined (slist) -# undef slist -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#undef SLIST_IMPL - -_STLP_END_NAMESPACE - -#endif /* _STLP_SPECIALIZED_SLIST_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/stl/pointers/_tools.h b/WebKit/android/stlport/stl/pointers/_tools.h deleted file mode 100644 index e02fc42..0000000 --- a/WebKit/android/stlport/stl/pointers/_tools.h +++ /dev/null @@ -1,400 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_POINTERS_SPEC_TOOLS_H -#define _STLP_POINTERS_SPEC_TOOLS_H - -#ifndef _STLP_TYPE_TRAITS_H -# include <stl/type_traits.h> -#endif - -_STLP_BEGIN_NAMESPACE - -//Some usefull declarations: -template <class _Tp> struct less; - -_STLP_MOVE_TO_PRIV_NAMESPACE - -template <class _StorageT, class _ValueT, class _BinaryPredicate> -struct _BinaryPredWrapper; - -/* - * Since the compiler only allows at most one non-trivial - * implicit conversion we can make use of a shim class to - * be sure that functions below doesn't accept classes with - * implicit pointer conversion operators - */ -struct _ConstVolatileVoidPointerShim -{ _ConstVolatileVoidPointerShim(const volatile void*); }; - -//The dispatch functions: -struct _VoidPointerShim -{ _VoidPointerShim(void*); }; -struct _ConstVoidPointerShim -{ _ConstVoidPointerShim(const void*); }; -struct _VolatileVoidPointerShim -{ _VolatileVoidPointerShim(volatile void*); }; - -template <class _Tp> -char _UseVoidPtrStorageType(const __false_type& /*POD*/, const _Tp&); -char _UseVoidPtrStorageType(const __true_type& /*POD*/, ...); -char* _UseVoidPtrStorageType(const __true_type& /*POD*/, _VoidPointerShim); - -template <class _Tp> -char _UseConstVoidPtrStorageType(const __false_type& /*POD*/, const _Tp&); -char _UseConstVoidPtrStorageType(const __true_type& /*POD*/, ...); -char* _UseConstVoidPtrStorageType(const __true_type& /*POD*/, _ConstVoidPointerShim); - -template <class _Tp> -char _UseVolatileVoidPtrStorageType(const __false_type& /*POD*/, const _Tp&); -char _UseVolatileVoidPtrStorageType(const __true_type& /*POD*/, ...); -char* _UseVolatileVoidPtrStorageType(const __true_type& /*POD*/, _VolatileVoidPointerShim); - -template <class _Tp> -char _UseConstVolatileVoidPtrStorageType(const __false_type& /*POD*/, const _Tp&); -char _UseConstVolatileVoidPtrStorageType(const __true_type& /*POD*/, ...); -char* _UseConstVolatileVoidPtrStorageType(const __true_type& /*POD*/, _ConstVolatileVoidPointerShim); - -template <class _Tp> -struct _StorageType { - typedef typename __type_traits<_Tp>::is_POD_type _PODType; - static _Tp __null_rep(); - - enum { use_void_ptr = (sizeof(_UseVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) }; - enum { use_const_void_ptr = (sizeof(_UseConstVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) }; - enum { use_volatile_void_ptr = (sizeof(_UseVolatileVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) }; - enum { use_const_volatile_void_ptr = (sizeof(_UseConstVolatileVoidPtrStorageType(_PODType(), __null_rep())) == sizeof(char*)) }; - - typedef typename __select<!use_const_volatile_void_ptr, - _Tp, - typename __select<use_void_ptr, - void*, - typename __select<use_const_void_ptr, - const void*, - typename __select<use_volatile_void_ptr, - volatile void*, - const volatile void*>::_Ret >::_Ret >::_Ret >::_Ret _QualifiedType; - -#if !defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) - /* If the compiler do not support the iterator_traits structure we cannot wrap - * iterators pass to container template methods. The iterator dereferenced value - * has to be storable without any cast in the chosen storage type. To guaranty - * that the void pointer has to be correctly qualified. - */ - typedef _QualifiedType _Type; -#else - /* With iterator_traits we can wrap passed iterators and make the necessary casts. - * We can always use a simple void* storage type: - */ - typedef typename __select<use_const_volatile_void_ptr, - void*, - _Tp>::_Ret _Type; -#endif -}; - -template <class _Tp, class _Compare> -struct _AssocStorageTypes { - typedef _StorageType<_Tp> _StorageTypeInfo; - typedef typename _StorageTypeInfo::_Type _SType; - - //We need to also check that the comparison functor used to instanciate the assoc container - //is the default Standard less implementation: - typedef typename _IsSTLportClass<_Compare>::_Ret _STLportLess; - enum { is_default_less = __type2bool<_STLportLess>::_Ret }; - - typedef typename __select<is_default_less, _SType, _Tp>::_Ret _KeyStorageType; - enum { ptr_type = _StorageTypeInfo::use_const_volatile_void_ptr }; - typedef typename __select<is_default_less && ptr_type, - _BinaryPredWrapper<_KeyStorageType, _Tp, _Compare>, - _Compare>::_Ret _CompareStorageType; -}; - - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -/* - * Base struct to deal with qualifiers - */ -template <class _StorageT, class _QualifiedStorageT> -struct _VoidCastTraitsAux { - typedef _QualifiedStorageT void_cv_type; - typedef _StorageT void_type; - - static void_type * uncv_ptr(void_cv_type *__ptr) - { return __ptr; } - static void_type const* uncv_cptr(void_cv_type const*__ptr) - { return __ptr; } - static void_type ** uncv_pptr(void_cv_type **__ptr) - { return __ptr; } - static void_type & uncv_ref(void_cv_type & __ref) - { return __ref; } - static void_type const& uncv_cref(void_cv_type const& __ref) - { return __ref; } - static void_cv_type* cv_ptr(void_type *__ptr) - { return __ptr; } - static void_cv_type const* cv_cptr(void_type const*__ptr) - { return __ptr; } - static void_cv_type ** cv_pptr(void_type **__ptr) - { return __ptr; } - static void_cv_type & cv_ref(void_type & __ref) - { return __ref; } - static void_cv_type const& cv_cref(void_type const& __ref) - { return __ref; } -}; - -template <class _VoidCVType> -struct _VoidCastTraitsAuxBase { - typedef _VoidCVType* void_cv_type; - typedef void* void_type; - - static void_type* uncv_ptr(void_cv_type *__ptr) - { return __CONST_CAST(void_type*, __ptr); } - static void_type const* uncv_cptr(void_cv_type const*__ptr) - { return __CONST_CAST(void_type const*, __ptr); } - static void_type** uncv_pptr(void_cv_type **__ptr) - { return __CONST_CAST(void_type**, __ptr); } - static void_type& uncv_ref(void_cv_type &__ref) - { return __CONST_CAST(void_type&, __ref); } - static void_type const& uncv_cref(void_cv_type const& __ptr) - { return __CONST_CAST(void_type const&, __ptr); } - // The reverse versions - static void_cv_type * cv_ptr(void_type *__ptr) - { return __CONST_CAST(void_cv_type *, __ptr); } - static void_cv_type const* cv_cptr(void_type const*__ptr) - { return __CONST_CAST(void_cv_type const*, __ptr); } - static void_cv_type ** cv_pptr(void_type **__ptr) - { return __CONST_CAST(void_cv_type**, __ptr); } - static void_cv_type & cv_ref(void_type &__ref) - { return __CONST_CAST(void_cv_type &, __ref); } - static void_cv_type const& cv_cref(void_type const& __ref) - { return __CONST_CAST(void_cv_type const&, __ref); } -}; - -_STLP_TEMPLATE_NULL -struct _VoidCastTraitsAux<void*, const void*> : _VoidCastTraitsAuxBase<void const> -{}; -_STLP_TEMPLATE_NULL -struct _VoidCastTraitsAux<void*, volatile void*> : _VoidCastTraitsAuxBase<void volatile> -{}; -_STLP_TEMPLATE_NULL -struct _VoidCastTraitsAux<void*, const volatile void*> : _VoidCastTraitsAuxBase<void const volatile> -{}; - -template <class _StorageT, class _ValueT> -struct _CastTraits { - typedef _ValueT value_type; - typedef typename _StorageType<_ValueT>::_QualifiedType _QualifiedStorageT; - typedef _VoidCastTraitsAux<_StorageT, _QualifiedStorageT> cv_traits; - typedef typename cv_traits::void_type void_type; - typedef typename cv_traits::void_cv_type void_cv_type; - - static value_type * to_value_type_ptr(void_type *__ptr) - { return __REINTERPRET_CAST(value_type *, cv_traits::cv_ptr(__ptr)); } - static value_type const* to_value_type_cptr(void_type const*__ptr) - { return __REINTERPRET_CAST(value_type const*, cv_traits::cv_cptr(__ptr)); } - static value_type ** to_value_type_pptr(void_type **__ptr) - { return __REINTERPRET_CAST(value_type **, cv_traits::cv_pptr(__ptr)); } - static value_type & to_value_type_ref(void_type &__ref) - { return __REINTERPRET_CAST(value_type &, cv_traits::cv_ref(__ref)); } - static value_type const& to_value_type_cref(void_type const& __ptr) - { return __REINTERPRET_CAST(value_type const&, cv_traits::cv_cref(__ptr)); } - // Reverse versions - static void_type * to_storage_type_ptr(value_type *__ptr) - { return cv_traits::uncv_ptr(__REINTERPRET_CAST(void_cv_type *, __ptr)); } - static void_type const* to_storage_type_cptr(value_type const*__ptr) - { return cv_traits::uncv_cptr(__REINTERPRET_CAST(void_cv_type const*, __ptr)); } - static void_type ** to_storage_type_pptr(value_type **__ptr) - { return cv_traits::uncv_pptr(__REINTERPRET_CAST(void_cv_type **, __ptr)); } - static void_type const& to_storage_type_cref(value_type const& __ref) - { return cv_traits::uncv_cref(__REINTERPRET_CAST(void_cv_type const&, __ref)); } - - //Method used to treat set container template method extension - static void_type const& to_storage_type_crefT(value_type const& __ref) - { return to_storage_type_cref(__ref); } -}; - -template <class _Tp> -struct _CastTraits<_Tp, _Tp> { - typedef _Tp storage_type; - typedef _Tp value_type; - - static value_type * to_value_type_ptr(storage_type *__ptr) - { return __ptr; } - static value_type const* to_value_type_cptr(storage_type const*__ptr) - { return __ptr; } - static value_type ** to_value_type_pptr(storage_type **__ptr) - { return __ptr; } - static value_type & to_value_type_ref(storage_type &__ref) - { return __ref; } - static value_type const& to_value_type_cref(storage_type const&__ref) - { return __ref; } - // Reverse versions - static storage_type * to_storage_type_ptr(value_type *__ptr) - { return __ptr; } - static storage_type const* to_storage_type_cptr(value_type const*__ptr) - { return __ptr; } - static storage_type ** to_storage_type_pptr(value_type **__ptr) - { return __ptr; } - static storage_type const& to_storage_type_cref(value_type const& __ref) - { return __ref; } - - //Method used to treat set container template method extension - template <class _Tp1> - static _Tp1 const& to_storage_type_crefT(_Tp1 const& __ref) - { return __ref; } -}; - -#define _STLP_USE_ITERATOR_WRAPPER - -template <class _StorageT, class _ValueT, class _Iterator> -struct _IteWrapper { - typedef _CastTraits<_StorageT, _ValueT> cast_traits; - typedef iterator_traits<_Iterator> _IteTraits; - - typedef typename _IteTraits::iterator_category iterator_category; - typedef _StorageT value_type; - typedef typename _IteTraits::difference_type difference_type; - typedef value_type* pointer; - typedef value_type const& const_reference; - //This wrapper won't be used for input so to avoid surprise - //the reference type will be a const reference: - typedef const_reference reference; - - typedef _IteWrapper<_StorageT, _ValueT, _Iterator> _Self; - typedef _Self _Ite; - - _IteWrapper(_Iterator &__ite) : _M_ite(__ite) {} - - const_reference operator*() const { return cast_traits::to_storage_type_cref(*_M_ite); } - - _Self& operator= (_Self const& __rhs) { - _M_ite = __rhs._M_ite; - return *this; - } - - _Self& operator++() { - ++_M_ite; - return *this; - } - - _Self& operator--() { - --_M_ite; - return *this; - } - - _Self& operator += (difference_type __offset) { - _M_ite += __offset; - return *this; - } - difference_type operator -(_Self const& __other) const - { return _M_ite - __other._M_ite; } - - bool operator == (_Self const& __other) const - { return _M_ite == __other._M_ite; } - - bool operator != (_Self const& __other) const - { return _M_ite != __other._M_ite; } - - bool operator < (_Self const& __rhs) const - { return _M_ite < __rhs._M_ite; } - -private: - _Iterator _M_ite; -}; - -template <class _Tp, class _Iterator> -struct _IteWrapper<_Tp, _Tp, _Iterator> -{ typedef _Iterator _Ite; }; - -#else - -/* - * In this config the storage type is qualified in respect of the - * value_type qualification. Simple reinterpret_cast is enough. - */ -template <class _StorageT, class _ValueT> -struct _CastTraits { - typedef _StorageT storage_type; - typedef _ValueT value_type; - - static value_type * to_value_type_ptr(storage_type *__ptr) - { return __REINTERPRET_CAST(value_type*, __ptr); } - static value_type const* to_value_type_cptr(storage_type const*__ptr) - { return __REINTERPRET_CAST(value_type const*, __ptr); } - static value_type ** to_value_type_pptr(storage_type **__ptr) - { return __REINTERPRET_CAST(value_type **, __ptr); } - static value_type & to_value_type_ref(storage_type &__ref) - { return __REINTERPRET_CAST(value_type&, __ref); } - static value_type const& to_value_type_cref(storage_type const&__ref) - { return __REINTERPRET_CAST(value_type const&, __ref); } - // Reverse versions - static storage_type * to_storage_type_ptr(value_type *__ptr) - { return __REINTERPRET_CAST(storage_type*, __ptr); } - static storage_type const* to_storage_type_cptr(value_type const*__ptr) - { return __REINTERPRET_CAST(storage_type const*, __ptr); } - static storage_type ** to_storage_type_pptr(value_type **__ptr) - { return __REINTERPRET_CAST(storage_type **, __ptr); } - static storage_type const& to_storage_type_cref(value_type const&__ref) - { return __REINTERPRET_CAST(storage_type const&, __ref); } - template <class _Tp1> - static _Tp1 const& to_storage_type_crefT(_Tp1 const& __ref) - { return __ref; } -}; - -#endif - -//Wrapper functors: -template <class _StorageT, class _ValueT, class _UnaryPredicate> -struct _UnaryPredWrapper { - typedef _CastTraits<_StorageT, _ValueT> cast_traits; - - _UnaryPredWrapper (_UnaryPredicate const& __pred) : _M_pred(__pred) {} - - bool operator () (_StorageT const& __ref) const - { return _M_pred(cast_traits::to_value_type_cref(__ref)); } - -private: - _UnaryPredicate _M_pred; -}; - -template <class _StorageT, class _ValueT, class _BinaryPredicate> -struct _BinaryPredWrapper { - typedef _CastTraits<_StorageT, _ValueT> cast_traits; - - _BinaryPredWrapper () {} - _BinaryPredWrapper (_BinaryPredicate const& __pred) : _M_pred(__pred) {} - - _BinaryPredicate get_pred() const { return _M_pred; } - - bool operator () (_StorageT const& __fst, _StorageT const& __snd) const - { return _M_pred(cast_traits::to_value_type_cref(__fst), cast_traits::to_value_type_cref(__snd)); } - - //Cast operator used to transparently access underlying predicate - //in set::key_comp() method - operator _BinaryPredicate() const - { return _M_pred; } - -private: - _BinaryPredicate _M_pred; -}; - -_STLP_MOVE_TO_STD_NAMESPACE - -_STLP_END_NAMESPACE - -#endif /* _STLP_POINTERS_SPEC_TOOLS_H */ diff --git a/WebKit/android/stlport/stl/pointers/_vector.h b/WebKit/android/stlport/stl/pointers/_vector.h deleted file mode 100644 index 8de4c00..0000000 --- a/WebKit/android/stlport/stl/pointers/_vector.h +++ /dev/null @@ -1,238 +0,0 @@ -/* - * Copyright (c) 2003 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* NOTE: This is an internal header file, included by other STL headers. - * You should not attempt to use it directly. - */ - -#ifndef _STLP_SPECIALIZED_VECTOR_H -#define _STLP_SPECIALIZED_VECTOR_H - -#ifndef _STLP_POINTERS_SPEC_TOOLS_H -# include <stl/pointers/_tools.h> -#endif - -_STLP_BEGIN_NAMESPACE - -#define VECTOR_IMPL _STLP_PTR_IMPL_NAME(vector) - -#if defined (_STLP_USE_TEMPLATE_EXPORT) && !defined (_STLP_USE_MSVC6_MEM_T_BUG_WORKAROUND) -_STLP_EXPORT_TEMPLATE_CLASS _STLP_PRIV _Vector_base<void*,allocator<void*> >; -_STLP_EXPORT_TEMPLATE_CLASS _STLP_PRIV VECTOR_IMPL<void*, allocator<void*> >; -#endif - -#if defined (_STLP_DEBUG) -# define vector _STLP_NON_DBG_NAME(vector) -_STLP_MOVE_TO_PRIV_NAMESPACE -#endif - -template <class _Tp, _STLP_DEFAULT_ALLOCATOR_SELECT(_Tp) > -class vector -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (vector) - : public __stlport_class<vector<_Tp, _Alloc> > -#endif -{ - /* In the vector implementation iterators are pointer which give a number - * of opportunities for optimization. To not break those optimizations - * iterators passed to template should not be wrapped for casting purpose. - * So vector implementation will always use a qualified void pointer type and - * won't use iterator wrapping. - */ - typedef typename _STLP_PRIV _StorageType<_Tp>::_QualifiedType _StorageType; - typedef typename _Alloc_traits<_StorageType, _Alloc>::allocator_type _StorageTypeAlloc; - typedef _STLP_PRIV VECTOR_IMPL<_StorageType, _StorageTypeAlloc> _Base; - typedef vector<_Tp, _Alloc> _Self; - - typedef _STLP_PRIV _CastTraits<_StorageType, _Tp> cast_traits; - -public: - typedef _Tp value_type; - typedef value_type* pointer; - typedef const value_type* const_pointer; - typedef value_type* iterator; - typedef const value_type* const_iterator; - typedef value_type& reference; - typedef const value_type& const_reference; - typedef size_t size_type; - typedef ptrdiff_t difference_type; - typedef random_access_iterator_tag _Iterator_category; - - _STLP_DECLARE_RANDOM_ACCESS_REVERSE_ITERATORS; - _STLP_FORCE_ALLOCATORS(value_type, _Alloc) - typedef typename _Alloc_traits<value_type, _Alloc>::allocator_type allocator_type; - - allocator_type get_allocator() const - { return _STLP_CONVERT_ALLOCATOR(_M_impl.get_allocator(), value_type); } - - iterator begin() { return cast_traits::to_value_type_ptr(_M_impl.begin()); } - const_iterator begin() const { return cast_traits::to_value_type_cptr(_M_impl.begin()); } - iterator end() { return cast_traits::to_value_type_ptr(_M_impl.end()); } - const_iterator end() const { return cast_traits::to_value_type_cptr(_M_impl.end()); } - - reverse_iterator rbegin() { return reverse_iterator(end()); } - const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } - reverse_iterator rend() { return reverse_iterator(begin()); } - const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } - - size_type size() const { return _M_impl.size(); } - size_type max_size() const { return _M_impl.max_size(); } - - size_type capacity() const { return _M_impl.capacity(); } - bool empty() const { return _M_impl.empty(); } - - reference operator[](size_type __n) { return cast_traits::to_value_type_ref(_M_impl[__n]); } - const_reference operator[](size_type __n) const { return cast_traits::to_value_type_cref(_M_impl[__n]); } - - reference front() { return cast_traits::to_value_type_ref(_M_impl.front()); } - const_reference front() const { return cast_traits::to_value_type_cref(_M_impl.front()); } - reference back() { return cast_traits::to_value_type_ref(_M_impl.back()); } - const_reference back() const { return cast_traits::to_value_type_cref(_M_impl.back()); } - - reference at(size_type __n) { return cast_traits::to_value_type_ref(_M_impl.at(__n)); } - const_reference at(size_type __n) const { return cast_traits::to_value_type_cref(_M_impl.at(__n)); } - - explicit vector(const allocator_type& __a = allocator_type()) - : _M_impl(_STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit vector(size_type __n, const value_type& __val = _STLP_DEFAULT_CONSTRUCTED(value_type), -#else - vector(size_type __n, const value_type& __val, -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - const allocator_type& __a = allocator_type()) - : _M_impl(__n, cast_traits::to_storage_type_cref(__val), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - explicit vector(size_type __n) - : _M_impl(__n, allocator_type() ) {} -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - vector(const _Self& __x) - : _M_impl(__x._M_impl) {} - - explicit vector(__move_source<_Self> src) - : _M_impl(__move_source<_Base>(src.get()._M_impl)) {} - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - vector(_InputIterator __first, _InputIterator __last, - const allocator_type& __a _STLP_ALLOCATOR_TYPE_DFL ) - : _M_impl(__first, __last, - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} - -# if defined (_STLP_NEEDS_EXTRA_TEMPLATE_CONSTRUCTORS) - template <class _InputIterator> - vector(_InputIterator __first, _InputIterator __last) - : _M_impl(__first, __last) {} -# endif - -#else - vector(const_iterator __first, const_iterator __last, - const allocator_type& __a = allocator_type()) - : _M_impl(cast_traits::to_storage_type_cptr(__first), cast_traits::to_storage_type_cptr(__last), - _STLP_CONVERT_ALLOCATOR(__a, _StorageType)) {} -#endif /* _STLP_MEMBER_TEMPLATES */ - - _Self& operator=(const _Self& __x) { _M_impl = __x._M_impl; return *this; } - - void reserve(size_type __n) {_M_impl.reserve(__n);} - void assign(size_type __n, const value_type& __val) - { _M_impl.assign(__n, cast_traits::to_storage_type_cref(__val)); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void assign(_InputIterator __first, _InputIterator __last) - { _M_impl.assign(__first, __last); } -#else - void assign(const_iterator __first, const_iterator __last) { - _M_impl.assign(cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } -#endif /* _STLP_MEMBER_TEMPLATES */ - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - void push_back(const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void push_back(const value_type& __x) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { _M_impl.push_back(cast_traits::to_storage_type_cref(__x)); } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - iterator insert(iterator __pos, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - iterator insert(iterator __pos, const value_type& __x) -#endif /*!_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - { return cast_traits::to_value_type_ptr(_M_impl.insert(cast_traits::to_storage_type_ptr(__pos), - cast_traits::to_storage_type_cref(__x))); } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) && !defined(_STLP_NO_ANACHRONISMS) - void push_back() { _M_impl.push_back(); } - iterator insert(iterator __pos) - { return _M_impl.insert(cast_traits::to_storage_type_ptr(__pos)); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM && !_STLP_NO_ANACHRONISMS*/ - - void swap(_Self& __x) { _M_impl.swap(__x._M_impl); } - -#if defined (_STLP_MEMBER_TEMPLATES) - template <class _InputIterator> - void insert(iterator __pos, _InputIterator __first, _InputIterator __last) - { _M_impl.insert(cast_traits::to_storage_type_ptr(__pos), __first, __last); } -#else - void insert(iterator __pos, const_iterator __first, const_iterator __last) { - _M_impl.insert(cast_traits::to_storage_type_ptr(__pos), cast_traits::to_storage_type_cptr(__first), - cast_traits::to_storage_type_cptr(__last)); - } -#endif - - void insert (iterator __pos, size_type __n, const value_type& __x) { - _M_impl.insert(cast_traits::to_storage_type_ptr(__pos), __n, cast_traits::to_storage_type_cref(__x)); - } - - void pop_back() {_M_impl.pop_back();} - iterator erase(iterator __pos) - {return cast_traits::to_value_type_ptr(_M_impl.erase(cast_traits::to_storage_type_ptr(__pos)));} - iterator erase(iterator __first, iterator __last) { - return cast_traits::to_value_type_ptr(_M_impl.erase(cast_traits::to_storage_type_ptr(__first), - cast_traits::to_storage_type_ptr(__last))); - } - -#if !defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size, const value_type& __x = _STLP_DEFAULT_CONSTRUCTED(value_type)) -#else - void resize(size_type __new_size, const value_type& __x) -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - { _M_impl.resize(__new_size, cast_traits::to_storage_type_cref(__x)); } - -#if defined(_STLP_DONT_SUP_DFLT_PARAM) - void resize(size_type __new_size) { _M_impl.resize(__new_size); } -#endif /*_STLP_DONT_SUP_DFLT_PARAM*/ - - void clear() { _M_impl.clear(); } - -private: - _Base _M_impl; -}; - -#if defined (vector) -# undef vector -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -#undef VECTOR_IMPL - -_STLP_END_NAMESPACE - -#endif /* _STLP_SPECIALIZED_VECTOR_H */ diff --git a/WebKit/android/stlport/stl/type_manips.h b/WebKit/android/stlport/stl/type_manips.h deleted file mode 100644 index 21960e0..0000000 --- a/WebKit/android/stlport/stl/type_manips.h +++ /dev/null @@ -1,305 +0,0 @@ -/* - * - * Copyright (c) 2003 - * François Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - - -#ifndef _STLP_TYPE_MANIPS_H -#define _STLP_TYPE_MANIPS_H - -_STLP_BEGIN_NAMESPACE - -struct __true_type {}; -struct __false_type {}; - -#if defined (_STLP_USE_NAMESPACES) -_STLP_MOVE_TO_PRIV_NAMESPACE -using _STLP_STD::__true_type; -using _STLP_STD::__false_type; -_STLP_MOVE_TO_STD_NAMESPACE -#endif - -//bool to type -template <int _Is> -struct __bool2type -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct __bool2type<1> { typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct __bool2type<0> { typedef __false_type _Ret; }; - -//type to bool -template <class __bool_type> -struct __type2bool { enum {_Ret = 1}; }; - -_STLP_TEMPLATE_NULL -struct __type2bool<__true_type> { enum {_Ret = 1}; }; - -_STLP_TEMPLATE_NULL -struct __type2bool<__false_type> { enum {_Ret = 0}; }; - -//Negation -template <class _BoolType> -struct _Not { typedef __false_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct _Not<__false_type> { typedef __true_type _Ret; }; - -// logical and of 2 predicated -template <class _P1, class _P2> -struct _Land2 { typedef __false_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct _Land2<__true_type, __true_type> { typedef __true_type _Ret; }; - -// logical and of 3 predicated -template <class _P1, class _P2, class _P3> -struct _Land3 { typedef __false_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct _Land3<__true_type, __true_type, __true_type> { typedef __true_type _Ret; }; - -//logical or of 2 predicated -template <class _P1, class _P2> -struct _Lor2 { typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct _Lor2<__false_type, __false_type> { typedef __false_type _Ret; }; - -// logical or of 3 predicated -template <class _P1, class _P2, class _P3> -struct _Lor3 { typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL -struct _Lor3<__false_type, __false_type, __false_type> { typedef __false_type _Ret; }; - -//////////////////////////////////////////////////////////////////////////////// -// class template __select -// Selects one of two types based upon a boolean constant -// Invocation: __select<_Cond, T, U>::Result -// where: -// flag is a compile-time boolean constant -// T and U are types -// Result evaluates to T if flag is true, and to U otherwise. -//////////////////////////////////////////////////////////////////////////////// -// BEWARE: If the compiler do not support partial template specialization or nested template -//classes the default behavior of the __select is to consider the condition as false and so return -//the second template type!! - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <bool _Cond, class _Tp1, class _Tp2> -struct __select { typedef _Tp1 _Ret; }; - -template <class _Tp1, class _Tp2> -struct __select<false, _Tp1, _Tp2> { typedef _Tp2 _Ret; }; - -# if defined (__BORLANDC__) -template <class _CondT, class _Tp1, class _Tp2> -struct __selectT { typedef _Tp1 _Ret; }; - -template <class _Tp1, class _Tp2> -struct __selectT<__false_type, _Tp1, _Tp2> { typedef _Tp2 _Ret; }; -# endif - -#else /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -# if defined (_STLP_MEMBER_TEMPLATE_CLASSES) -template <int _Cond> -struct __select_aux { - template <class _Tp1, class _Tp2> - struct _In { - typedef _Tp1 _Ret; - }; -}; - -_STLP_TEMPLATE_NULL -struct __select_aux<0> { - template <class _Tp1, class _Tp2> - struct _In { - typedef _Tp2 _Ret; - }; -}; - -template <int _Cond, class _Tp1, class _Tp2> -struct __select { - typedef typename __select_aux<_Cond>::_STLP_TEMPLATE _In<_Tp1, _Tp2>::_Ret _Ret; -}; -# else /* _STLP_MEMBER_TEMPLATE_CLASSES */ -//default behavior -template <int _Cond, class _Tp1, class _Tp2> -struct __select { - typedef _Tp2 _Ret; -}; -# endif /* _STLP_MEMBER_TEMPLATE_CLASSES */ - -#endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -#if defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) -// Boris : simulation technique is used here according to Adobe Open Source License Version 1.0. -// Copyright 2000 Adobe Systems Incorporated and others. All rights reserved. -// Authors: Mat Marcus and Jesse Jones -// The original version of this source code may be found at -// http://opensource.adobe.com. - -// These are the discriminating functions -template <class _Tp> -char _STLP_CALL _IsSameFun(bool, _Tp const volatile*, _Tp const volatile*); // no implementation is required -char* _STLP_CALL _IsSameFun(bool, ...); // no implementation is required - -template <class _Tp1, class _Tp2> -struct _IsSame { - static _Tp1* __null_rep1(); - static _Tp2* __null_rep2(); - enum { _Ret = (sizeof(_IsSameFun(false,__null_rep1(), __null_rep2())) == sizeof(char)) }; - typedef typename __bool2type<_Ret>::_Ret _RetT; -}; - -#else - -template <class _Tp1, class _Tp2> -struct _IsSameAux { - typedef __false_type _RetT; - enum { _Ret = 0 }; -}; - -template <class _Tp> -struct _UnConstType { typedef _Tp _Type; }; - -template <class _Tp> -struct _UnVolatileType { typedef _Tp _Type; }; - -template <class _Tp> -struct _UnCVType { - typedef typename _UnVolatileType<_Tp>::_Type _UnVType; - typedef typename _UnConstType<_UnVType>::_Type _Type; -}; - -# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> -struct _IsSameAux<_Tp, _Tp> { - typedef __true_type _RetT; - enum { _Ret = 1 }; -}; - -# if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG) -template <class _Tp> -struct _UnConstType<const _Tp> { typedef _Tp _Type; }; - -template <class _Tp> -struct _UnVolatileType<volatile _Tp> { typedef _Tp _Type; }; -# endif - -# if defined(__BORLANDC__) -template<class _Tp> -struct _UnConstPtr { typedef _Tp _Type; }; - -template<class _Tp> -struct _UnConstPtr<_Tp*> { typedef _Tp _Type; }; - -template<class _Tp> -struct _UnConstPtr<const _Tp*> { typedef _Tp _Type; }; -# endif -# endif - -template <class _Tp1, class _Tp2> -struct _IsSame { - typedef typename _UnCVType<_Tp1>::_Type _Type1; - typedef typename _UnCVType<_Tp2>::_Type _Type2; - - typedef _IsSameAux<_Type1, _Type2> _Aux; - enum { _Ret = _Aux::_Ret }; - typedef typename _Aux::_RetT _RetT; -}; -#endif - -/* - * The following struct will tell you if 2 types are the same, the limitations are: - * - it compares the types without the const or volatile qualifiers, int and const int - * will be considered as same for instance. - * - the previous remarks do not apply to pointer types, int* and int const* won't be - * considered as comparable. (int * and int *const are). - */ -template <class _Tp1, class _Tp2> -struct _AreSameUnCVTypes { - enum { _Same = _IsSame<_Tp1, _Tp2>::_Ret }; - typedef typename _IsSame<_Tp1, _Tp2>::_RetT _Ret; -}; - -/* Rather than introducing a new macro for the following constrution we use - * an existing one (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) that - * is used for a similar feature. - */ -#if !defined (_STLP_DONT_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) -template <class _Src, class _Dst> -struct _ConversionHelper { - static char _Test(bool, _Dst); - static char* _Test(bool, ...); - static _Src _MakeSource(); -}; - -template <class _Src, class _Dst> -struct _IsConvertible { - typedef _ConversionHelper<_Src*, const volatile _Dst*> _H; - enum { value = (sizeof(char) == sizeof(_H::_Test(false, _H::_MakeSource()))) }; - typedef typename __bool2type<value>::_Ret _Ret; -}; - -/* This struct is intended to say if a pointer can be convertible to an other - * taking into account cv qualifications. It shouldn't be instanciated with - * something else than pointer type as it uses pass by value parameter that - * results in compilation error when parameter type has a special memory - * alignment - */ -template <class _Src, class _Dst> -struct _IsCVConvertible { -#if !defined (__BORLANDC__) - typedef _ConversionHelper<_Src, _Dst> _H; - enum { value = (sizeof(char) == sizeof(_H::_Test(false, _H::_MakeSource()))) }; -#else - enum { _Is1 = __type2bool<_IsConst<_Src>::_Ret>::_Ret }; - enum { _Is2 = _IsConvertible<_UnConstPtr<_Src>::_Type, _UnConstPtr<_Dst>::_Type>::value }; - enum { value = _Is1 ? 0 : _Is2 }; -#endif - typedef typename __bool2type<value>::_Ret _Ret; -}; - -#else -template <class _Src, class _Dst> -struct _IsConvertible { - enum {value = 0}; - typedef __false_type _Ret; -}; -#endif - -template <class _Tp> -struct _IsConst { typedef __false_type _Ret; }; - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) && !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG) -template <class _Tp> -struct _IsConst <const _Tp> { typedef __true_type _Ret; }; -#endif - -# if defined(__BORLANDC__) -template<class _Tp> -struct _IsConst <const _Tp*> { typedef __true_type _Ret; }; - -template<class _Tp> -struct _IsConst <const volatile _Tp*> { typedef __true_type _Ret; }; -# endif - -_STLP_END_NAMESPACE - -#endif /* _STLP_TYPE_MANIPS_H */ diff --git a/WebKit/android/stlport/stl/type_traits.h b/WebKit/android/stlport/stl/type_traits.h deleted file mode 100644 index 37bc69f..0000000 --- a/WebKit/android/stlport/stl/type_traits.h +++ /dev/null @@ -1,577 +0,0 @@ -/* - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1997 - * Moscow Center for SPARC Technology - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_TYPE_TRAITS_H -#define _STLP_TYPE_TRAITS_H - -/* -This header file provides a framework for allowing compile time dispatch -based on type attributes. This is useful when writing template code. -For example, when making a copy of an array of an unknown type, it helps -to know if the type has a trivial copy constructor or not, to help decide -if a memcpy can be used. - -The class template __type_traits provides a series of typedefs each of -which is either __true_type or __false_type. The argument to -__type_traits can be any type. The typedefs within this template will -attain their correct values by one of these means: - 1. The general instantiation contain conservative values which work - for all types. - 2. Specializations may be declared to make distinctions between types. - 3. Some compilers (such as the Silicon Graphics N32 and N64 compilers) - will automatically provide the appropriate specializations for all - types. - -EXAMPLE: - -//Copy an array of elements which have non-trivial copy constructors -template <class T> void copy(T* source, T* destination, int n, __false_type); -//Copy an array of elements which have trivial copy constructors. Use memcpy. -template <class T> void copy(T* source, T* destination, int n, __true_type); - -//Copy an array of any type by using the most efficient copy mechanism -template <class T> inline void copy(T* source,T* destination,int n) { - copy(source, destination, n, - typename __type_traits<T>::has_trivial_copy_constructor()); -} -*/ - -#ifdef __WATCOMC__ -# include <stl/_cwchar.h> -#endif - -#ifndef _STLP_TYPE_MANIPS_H -# include <stl/type_manips.h> -#endif - -#ifdef _STLP_USE_BOOST_SUPPORT -# include <stl/boost_type_traits.h> -# include <boost/type_traits/add_reference.hpp> -# include <boost/type_traits/add_const.hpp> -#endif /* _STLP_USE_BOOST_SUPPORT */ - -_STLP_BEGIN_NAMESPACE - -#if !defined (_STLP_USE_BOOST_SUPPORT) - -// The following could be written in terms of numeric_limits. -// We're doing it separately to reduce the number of dependencies. - -template <class _Tp> struct _IsIntegral -{ typedef __false_type _Ret; }; - -# ifndef _STLP_NO_BOOL -_STLP_TEMPLATE_NULL struct _IsIntegral<bool> -{ typedef __true_type _Ret; }; -# endif /* _STLP_NO_BOOL */ - -_STLP_TEMPLATE_NULL struct _IsIntegral<char> -{ typedef __true_type _Ret; }; - -# ifndef _STLP_NO_SIGNED_BUILTINS -_STLP_TEMPLATE_NULL struct _IsIntegral<signed char> -{ typedef __true_type _Ret; }; -# endif - -_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned char> -{ typedef __true_type _Ret; }; - -# if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT) -_STLP_TEMPLATE_NULL struct _IsIntegral<wchar_t> -{ typedef __true_type _Ret; }; -# endif /* _STLP_HAS_WCHAR_T */ - -_STLP_TEMPLATE_NULL struct _IsIntegral<short> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned short> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsIntegral<int> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned int> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsIntegral<long> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned long> -{ typedef __true_type _Ret; }; - -# ifdef _STLP_LONG_LONG -_STLP_TEMPLATE_NULL struct _IsIntegral<_STLP_LONG_LONG> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsIntegral<unsigned _STLP_LONG_LONG> -{ typedef __true_type _Ret; }; -# endif /* _STLP_LONG_LONG */ - -template <class _Tp> struct _IsRational -{ typedef __false_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsRational<float> -{ typedef __true_type _Ret; }; - -_STLP_TEMPLATE_NULL struct _IsRational<double> -{ typedef __true_type _Ret; }; - -# if !defined ( _STLP_NO_LONG_DOUBLE ) -_STLP_TEMPLATE_NULL struct _IsRational<long double> -{ typedef __true_type _Ret; }; -# endif - -// Forward declarations. -template <class _Tp> struct __type_traits; -template <class _IsPOD> struct __type_traits_aux { - typedef __false_type has_trivial_default_constructor; - typedef __false_type has_trivial_copy_constructor; - typedef __false_type has_trivial_assignment_operator; - typedef __false_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; - -_STLP_TEMPLATE_NULL -struct __type_traits_aux<__false_type> { - typedef __false_type has_trivial_default_constructor; - typedef __false_type has_trivial_copy_constructor; - typedef __false_type has_trivial_assignment_operator; - typedef __false_type has_trivial_destructor; - typedef __false_type is_POD_type; -}; - -_STLP_TEMPLATE_NULL -struct __type_traits_aux<__true_type> { - typedef __true_type has_trivial_default_constructor; - typedef __true_type has_trivial_copy_constructor; - typedef __true_type has_trivial_assignment_operator; - typedef __true_type has_trivial_destructor; - typedef __true_type is_POD_type; -}; - -template <class _Tp> -struct _IsRef { - typedef __false_type _Ret; -}; - -# if defined (_STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS) -/* - * Boris : simulation technique is used here according to Adobe Open Source License Version 1.0. - * Copyright 2000 Adobe Systems Incorporated and others. All rights reserved. - * Authors: Mat Marcus and Jesse Jones - * The original version of this source code may be found at - * http://opensource.adobe.com. - */ - -struct _PointerShim { - /* - * Since the compiler only allows at most one non-trivial - * implicit conversion we can make use of a shim class to - * be sure that IsPtr below doesn't accept classes with - * implicit pointer conversion operators - */ - _PointerShim(const volatile void*); // no implementation -}; - -// These are the discriminating functions -char _STLP_CALL _IsP(bool, _PointerShim); // no implementation is required -char* _STLP_CALL _IsP(bool, ...); // no implementation is required - -template <class _Tp> -struct _IsPtr { - /* - * This template meta function takes a type T - * and returns true exactly when T is a pointer. - * One can imagine meta-functions discriminating on - * other criteria. - */ - static _Tp& __null_rep(); - enum { _Ptr = (sizeof(_IsP(false,__null_rep())) == sizeof(char)) }; - typedef typename __bool2type<_Ptr>::_Ret _Ret; - -}; - -// we make general case dependant on the fact the type is actually a pointer. -template <class _Tp> -struct __type_traits : __type_traits_aux<typename _IsPtr<_Tp>::_Ret> {}; - -# else /* _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS */ - -template <class _Tp> struct _IsPtr { - typedef __false_type _Ret; -}; - -template <class _Tp> -struct __type_traits { - typedef __true_type this_dummy_member_must_be_first; - /* Do not remove this member. It informs a compiler which - automatically specializes __type_traits that this - __type_traits template is special. It just makes sure that - things work if an implementation is using a template - called __type_traits for something unrelated. */ - - /* The following restrictions should be observed for the sake of - compilers which automatically produce type specific specializations - of this class: - - You may reorder the members below if you wish - - You may remove any of the members below if you wish - - You must not rename members without making the corresponding - name change in the compiler - - Members you add will be treated like regular members unless - - you add the appropriate support in the compiler. */ -# if !defined (_STLP_HAS_TYPE_TRAITS_INTRINSICS) - typedef __false_type has_trivial_default_constructor; - typedef __false_type has_trivial_copy_constructor; - typedef __false_type has_trivial_assignment_operator; - typedef __false_type has_trivial_destructor; - typedef __false_type is_POD_type; -# else - typedef typename __bool2type<_STLP_HAS_TRIVIAL_CONSTRUCTOR(_Tp)>::_Ret has_trivial_default_constructor; - typedef typename __bool2type<_STLP_HAS_TRIVIAL_COPY(_Tp)>::_Ret has_trivial_copy_constructor; - typedef typename __bool2type<_STLP_HAS_TRIVIAL_ASSIGN(_Tp)>::_Ret has_trivial_assignment_operator; - typedef typename __bool2type<_STLP_HAS_TRIVIAL_DESTRUCTOR(_Tp)>::_Ret has_trivial_destructor; - typedef typename __bool2type<_STLP_IS_POD(_Tp)>::_Ret is_POD_type; -# endif -}; - -# if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> struct _IsPtr<_Tp*> -{ typedef __true_type _Ret; }; -template <class _Tp> struct _IsRef<_Tp&> -{ typedef __true_type _Ret; }; - -template <class _Tp> struct __type_traits<_Tp*> : __type_traits_aux<__true_type> -{}; -# endif /* _STLP_CLASS_PARTIAL_SPECIALIZATION */ - -# endif /* _STLP_SIMULATE_PARTIAL_SPEC_FOR_TYPE_TRAITS */ - -// Provide some specializations. This is harmless for compilers that -// have built-in __types_traits support, and essential for compilers -// that don't. -# if !defined (_STLP_QUALIFIED_SPECIALIZATION_BUG) -# define _STLP_DEFINE_TYPE_TRAITS_FOR(Type) \ -_STLP_TEMPLATE_NULL struct __type_traits< Type > : __type_traits_aux<__true_type> {}; \ -_STLP_TEMPLATE_NULL struct __type_traits< const Type > : __type_traits_aux<__true_type> {}; \ -_STLP_TEMPLATE_NULL struct __type_traits< volatile Type > : __type_traits_aux<__true_type> {}; \ -_STLP_TEMPLATE_NULL struct __type_traits< const volatile Type > : __type_traits_aux<__true_type> {} -# else -# define _STLP_DEFINE_TYPE_TRAITS_FOR(Type) \ -_STLP_TEMPLATE_NULL struct __type_traits< Type > : __type_traits_aux<__true_type> {}; -# endif - -# ifndef _STLP_NO_BOOL -_STLP_DEFINE_TYPE_TRAITS_FOR(bool); -# endif /* _STLP_NO_BOOL */ -_STLP_DEFINE_TYPE_TRAITS_FOR(char); -# ifndef _STLP_NO_SIGNED_BUILTINS -_STLP_DEFINE_TYPE_TRAITS_FOR(signed char); -# endif -_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned char); -# if defined ( _STLP_HAS_WCHAR_T ) && ! defined (_STLP_WCHAR_T_IS_USHORT) -_STLP_DEFINE_TYPE_TRAITS_FOR(wchar_t); -# endif /* _STLP_HAS_WCHAR_T */ - -_STLP_DEFINE_TYPE_TRAITS_FOR(short); -_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned short); -_STLP_DEFINE_TYPE_TRAITS_FOR(int); -_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned int); -_STLP_DEFINE_TYPE_TRAITS_FOR(long); -_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned long); - -# ifdef _STLP_LONG_LONG -_STLP_DEFINE_TYPE_TRAITS_FOR(_STLP_LONG_LONG); -_STLP_DEFINE_TYPE_TRAITS_FOR(unsigned _STLP_LONG_LONG); -# endif /* _STLP_LONG_LONG */ - -_STLP_DEFINE_TYPE_TRAITS_FOR(float); -_STLP_DEFINE_TYPE_TRAITS_FOR(double); - -# if !defined ( _STLP_NO_LONG_DOUBLE ) -_STLP_DEFINE_TYPE_TRAITS_FOR(long double); -# endif - -#if defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _ArePtrs, class _Src, class _Dst> -struct _IsCVConvertibleIf -{ typedef typename _IsCVConvertible<_Src, _Dst>::_Ret _Ret; }; - -template <class _Src, class _Dst> -struct _IsCVConvertibleIf<__false_type, _Src, _Dst> -{ typedef __false_type _Ret; }; -#else -# if defined (_STLP_MEMBER_TEMPLATE_CLASSES) -template <class _ArePtrs> -struct _IsCVConvertibleIfAux { - template <class _Src, class _Dst> - struct _In - { typedef typename _IsCVConvertible<_Src, _Dst>::_Ret _Ret; }; -}; - -_STLP_TEMPLATE_NULL -struct _IsCVConvertibleIfAux<__false_type> { - template <class _Src, class _Dst> - struct _In - { typedef __false_type _Ret; }; -}; - -template <class _ArePtrs, class _Src, class _Dst> -struct _IsCVConvertibleIf { - typedef typename _IsCVConvertibleIfAux<_ArePtrs>::_STLP_TEMPLATE _In<_Src, _Dst>::_Ret _Ret; -}; -# else -/* default behavior: we prefer to miss an optimization rather than taking the risk of - * a compilation error if playing with types with exotic memory alignment. - */ -template <class _ArePtrs, class _Src, class _Dst> -struct _IsCVConvertibleIf -{ typedef __false_type _Ret; }; -# endif -#endif - -template <class _Src, class _Dst> -struct _TrivialNativeTypeCopy { - typedef typename _IsPtr<_Src>::_Ret _Ptr1; - typedef typename _IsPtr<_Dst>::_Ret _Ptr2; - typedef typename _Land2<_Ptr1, _Ptr2>::_Ret _BothPtrs; - typedef typename _IsCVConvertibleIf<_BothPtrs, _Src, _Dst>::_Ret _Convertible; - typedef typename _Land2<_BothPtrs, _Convertible>::_Ret _Trivial1; - - typedef typename __bool2type<(sizeof(_Src) == sizeof(_Dst))>::_Ret _SameSize; - - typedef typename _IsIntegral<_Src>::_Ret _Int1; - typedef typename _IsIntegral<_Dst>::_Ret _Int2; - typedef typename _Land2<_Int1, _Int2>::_Ret _BothInts; - - typedef typename _IsRational<_Src>::_Ret _Rat1; - typedef typename _IsRational<_Dst>::_Ret _Rat2; - typedef typename _Land2<_Rat1, _Rat2>::_Ret _BothRats; - - typedef typename _Lor2<_BothInts, _BothRats>::_Ret _BothNatives; - typedef typename _Land2<_BothNatives, _SameSize>::_Ret _Trivial2; - - typedef typename _Lor2<_Trivial1, _Trivial2>::_Ret _Ret; -}; - -template <class _Src, class _Dst> -struct _TrivialCopy { - typedef typename _TrivialNativeTypeCopy<_Src, _Dst>::_Ret _NativeRet; - -#if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560) - typedef typename __type_traits<_Src>::has_trivial_assignment_operator _Tr1; -#else - typedef typename _UnConstPtr<_Src*>::_Type _Tp3; - typedef typename __type_traits<_Tp3>::has_trivial_assignment_operator _Tr1; -#endif - typedef typename _AreSameUnCVTypes<_Src, _Dst>::_Ret _Tr2; - typedef typename _Land2<_Tr1, _Tr2>::_Ret _UserRet; - - typedef typename _Lor2<_NativeRet, _UserRet>::_Ret _Ret; - static _Ret _Answer() { return _Ret(); } -}; - -template <class _Src, class _Dst> -struct _TrivialUCopy { - typedef typename _TrivialNativeTypeCopy<_Src, _Dst>::_Ret _NativeRet; - -#if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560) - typedef typename __type_traits<_Src>::has_trivial_copy_constructor _Tr1; -#else - typedef typename _UnConstPtr<_Src*>::_Type _Tp3; - typedef typename __type_traits<_Tp3>::has_trivial_copy_constructor _Tr1; -#endif - typedef typename _AreSameUnCVTypes<_Src, _Dst>::_Ret _Tr2; - typedef typename _Land2<_Tr1, _Tr2>::_Ret _UserRet; - - typedef typename _Lor2<_NativeRet, _UserRet>::_Ret _Ret; - static _Ret _Answer() { return _Ret(); } -}; - -template <class _Tp> -struct _DefaultZeroValue { - typedef typename _IsIntegral<_Tp>::_Ret _Tr1; - typedef typename _IsRational<_Tp>::_Ret _Tr2; - typedef typename _IsPtr<_Tp>::_Ret _Tr3; - typedef typename _Lor3<_Tr1, _Tr2, _Tr3>::_Ret _Ret; -}; - -template <class _Tp> -struct _TrivialInit { -#if !defined (__BORLANDC__) || (__BORLANDC__ != 0x560) - typedef typename __type_traits<_Tp>::has_trivial_default_constructor _Tr1; -#else - typedef typename _UnConstPtr<_Tp*>::_Type _Tp1; - typedef typename __type_traits<_Tp1>::has_trivial_copy_constructor _Tr1; -#endif - typedef typename _DefaultZeroValue<_Tp>::_Ret _Tr2; - typedef typename _Not<_Tr2>::_Ret _Tr3; - typedef typename _Land2<_Tr1, _Tr3>::_Ret _Ret; - static _Ret _Answer() { return _Ret(); } -}; - -#endif /* !_STLP_USE_BOOST_SUPPORT */ - -template <class _Tp> -struct _IsPtrType { - typedef typename _IsPtr<_Tp>::_Ret _Type; - static _Type _Ret() { return _Type(); } -}; - -template <class _Tp> -struct _IsRefType { - typedef typename _IsRef<_Tp>::_Ret _Type; - static _Type _Ret() { return _Type();} -}; - -template <class _Tp> -struct __call_traits { -#if defined (_STLP_USE_BOOST_SUPPORT) && !defined (_STLP_NO_EXTENSIONS) - typedef typename __select< ::boost::is_reference<_Tp>::value, - _Tp, typename ::boost::add_reference< typename ::boost::add_const<_Tp>::type >::type>::_Ret param_type; -#else - typedef const _Tp& param_type; -#endif /* _STLP_USE_BOOST_SUPPORT */ -}; - -#if !defined (_STLP_USE_BOOST_SUPPORT) && !defined (_STLP_NO_EXTENSIONS) && defined (_STLP_CLASS_PARTIAL_SPECIALIZATION) -template <class _Tp> -struct __call_traits<_Tp&> -{ typedef _Tp& param_type; }; -#endif - -template <class _Tp1, class _Tp2> -struct _BothPtrType { - typedef typename _IsPtr<_Tp1>::_Ret _IsPtr1; - typedef typename _IsPtr<_Tp2>::_Ret _IsPtr2; - - typedef typename _Land2<_IsPtr1, _IsPtr2>::_Ret _Ret; - static _Ret _Answer() { return _Ret(); } -}; - -template <class _Tp1, class _Tp2, class _IsRef1, class _IsRef2> -struct _OKToSwap { - typedef typename _AreSameUnCVTypes<_Tp1, _Tp2>::_Ret _Same; - typedef typename _Land3<_Same, _IsRef1, _IsRef2>::_Ret _Type; - static _Type _Answer() { return _Type(); } -}; - -template <class _Tp1, class _Tp2, class _IsRef1, class _IsRef2> -inline _OKToSwap<_Tp1, _Tp2, _IsRef1, _IsRef2> -_IsOKToSwap(_Tp1*, _Tp2*, const _IsRef1&, const _IsRef2&) -{ return _OKToSwap<_Tp1, _Tp2, _IsRef1, _IsRef2>(); } - -template <class _Src, class _Dst> -inline _TrivialCopy<_Src, _Dst> _UseTrivialCopy(_Src*, _Dst*) -{ return _TrivialCopy<_Src, _Dst>(); } - -template <class _Src, class _Dst> -inline _TrivialUCopy<_Src, _Dst> _UseTrivialUCopy(_Src*, _Dst*) -{ return _TrivialUCopy<_Src, _Dst>(); } - -template <class _Tp> -inline _TrivialInit<_Tp> _UseTrivialInit(_Tp*) -{ return _TrivialInit<_Tp>(); } - -template <class _Tp> -struct _IsPOD { - typedef typename __type_traits<_Tp>::is_POD_type _Type; - static _Type _Answer() { return _Type(); } -}; - -template <class _Tp> -inline _IsPOD<_Tp> _Is_POD(_Tp*) -{ return _IsPOD<_Tp>(); } - -template <class _Tp> -struct _DefaultZeroValueQuestion { - typedef typename _DefaultZeroValue<_Tp>::_Ret _Ret; - static _Ret _Answer() { return _Ret(); } -}; - -template <class _Tp> -inline _DefaultZeroValueQuestion<_Tp> _HasDefaultZeroValue(_Tp*) -{ return _DefaultZeroValueQuestion<_Tp>(); } - -/* - * Base class used: - * - to simulate partial template specialization - * - to simulate partial function ordering - * - to recognize STLport class from user specialized one - */ -template <class _Tp> -struct __stlport_class -{ typedef _Tp _Type; }; - -template <class _Tp> -struct _IsSTLportClass { - typedef typename _IsConvertible<_Tp, __stlport_class<_Tp> >::_Ret _Ret; -#if defined (__BORLANDC__) - enum { _Is = _IsConvertible<_Tp, __stlport_class<_Tp> >::value }; -#endif -}; - -#if defined (_STLP_USE_PARTIAL_SPEC_WORKAROUND) && !defined (_STLP_FUNCTION_TMPL_PARTIAL_ORDER) -template <class _Tp> -struct _SwapImplemented { - typedef typename _IsSTLportClass<_Tp>::_Ret _Ret; -# if defined (__BORLANDC__) - enum { _Is = _IsSTLportClass<_Tp>::_Is }; -# endif -}; -#endif - -template <class _Tp> -class _TpWithState : private _Tp { - _TpWithState(); - int _state; -}; - -/* This is an internal helper struct used to guess if we are working - * on a stateless class. It can only be instanciated with a class type. */ -template <class _Tp> -struct _IsStateless { - enum { _Is = sizeof(_TpWithState<_Tp>) == sizeof(int) }; - typedef typename __bool2type<_Is>::_Ret _Ret; -}; - -_STLP_END_NAMESPACE - -#ifdef _STLP_CLASS_PARTIAL_SPECIALIZATION -# if defined (__BORLANDC__) || \ - defined (__SUNPRO_CC) || \ - (defined (__MWERKS__) && (__MWERKS__ <= 0x2303)) || \ - (defined (__sgi) && defined (_COMPILER_VERSION)) || \ - defined (__DMC__) -# define _STLP_IS_POD_ITER(_It, _Tp) __type_traits< typename iterator_traits< _Tp >::value_type >::is_POD_type() -# else -# define _STLP_IS_POD_ITER(_It, _Tp) typename __type_traits< typename iterator_traits< _Tp >::value_type >::is_POD_type() -# endif -#else -# define _STLP_IS_POD_ITER(_It, _Tp) _Is_POD( _STLP_VALUE_TYPE( _It, _Tp ) )._Answer() -#endif - -#endif /* _STLP_TYPE_TRAITS_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/streambuf b/WebKit/android/stlport/streambuf deleted file mode 100644 index ead57c9..0000000 --- a/WebKit/android/stlport/streambuf +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_STREAMBUF -#define _STLP_STREAMBUF - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1066 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -# include <stl/_ioserr.h> -# include <stl/_streambuf.h> - -# if (_STLP_OUTERMOST_HEADER_ID == 0x1066) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_STREAMBUF */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/streambuf.h b/WebKit/android/stlport/streambuf.h deleted file mode 100644 index ff2bff5..0000000 --- a/WebKit/android/stlport/streambuf.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -#ifndef _STLP_STREAMBUF_H -#define _STLP_STREAMBUF_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2067 -# include <stl/_prolog.h> -#endif - -#include <stl/_ioserr.h> - -#include <streambuf> - -#include <ios.h> - -#ifndef _STLP_HAS_NO_NAMESPACES -# ifdef _STLP_BROKEN_USING_DIRECTIVE -_STLP_USING_NAMESPACE(stlport) -# else -using _STLP_STD::basic_streambuf; -using _STLP_STD::streambuf; -# ifndef _STLP_NO_WCHAR_T -using _STLP_STD::wstreambuf; -# endif -# endif -#endif /* _STLP_HAS_NO_NAMESPACES */ - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2067) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_STREAMBUF_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/string b/WebKit/android/stlport/string deleted file mode 100644 index c53d67f..0000000 --- a/WebKit/android/stlport/string +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1997-1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRING -# define _STLP_STRING - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x68 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#if defined (_STLP_USE_OWN_NAMESPACE) -# include <stl/_string.h> -#endif - -#include <stl/_string_hash.h> - -#if !defined (_STLP_USE_NO_IOSTREAMS) -# include <stl/_string_io.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x68) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_STRING */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/string.h b/WebKit/android/stlport/string.h deleted file mode 100644 index 737bdb6..0000000 --- a/WebKit/android/stlport/string.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -/* Workaround for a "misbehaviour" when compiling resource scripts using - * eMbedded Visual C++. The standard .rc file includes windows header files, - * which in turn include string.h, which results in warnings and errors - */ -#ifndef _STLP_STRING_H - -#if !defined (RC_INVOKED) - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x269 -# include <stl/_prolog.h> -# elif (_STLP_OUTERMOST_HEADER_ID == 0x269) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -# define _STLP_STRING_H -# endif - -# if defined(_STLP_WCE_EVC3) -struct _exception; -# endif -# if (_STLP_OUTERMOST_HEADER_ID != 0x269) || defined (_STLP_DONT_POP_HEADER_ID) -# include _STLP_NATIVE_C_HEADER(string.h) -# else -# if defined (__BORLANDC__) -# include _STLP_NATIVE_CPP_C_HEADER(_str.h) -# else -# include _STLP_NATIVE_C_HEADER(string.h) -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x269) -# if defined (__BORLANDC__) && defined (_STLP_IMPORT_VENDOR_CSTD) -# include <using/cstring> -# endif /* BORLAND */ -# endif -# endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x269) -# if !defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -# endif -#endif /* RC_INVOKED */ -#endif /* _STLP_STRING_H */ diff --git a/WebKit/android/stlport/strstream b/WebKit/android/stlport/strstream deleted file mode 100644 index 163b5cd..0000000 --- a/WebKit/android/stlport/strstream +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ -// WARNING: The classes defined in this header are DEPRECATED. This -// header is defined in section D.7.1 of the C++ standard, and it -// MAY BE REMOVED in a future standard revision. You should use the -// header <sstream> instead. - - -#ifndef _STLP_STRSTREAM -#define _STLP_STRSTREAM - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x1070 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_ioserr.h> - -#ifndef _STLP_INTERNAL_STRSTREAM -# include <stl/_strstream.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x1070) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_STRSTREAM */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/strstream.h b/WebKit/android/stlport/strstream.h deleted file mode 100644 index e302a16..0000000 --- a/WebKit/android/stlport/strstream.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_STRSTREAM_H -# define _STLP_STRSTREAM_H - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x2071 -# include <stl/_prolog.h> -#endif - -#include <strstream> - -#include <iostream.h> - - -#ifndef _STLP_HAS_NO_NAMESPACES - -# ifdef _STLP_BROKEN_USING_DIRECTIVE - -using namespace _STLP_STD; - -# else - -using _STLP_STD::strstreambuf; -using _STLP_STD::istrstream; -using _STLP_STD::ostrstream; -using _STLP_STD::strstream; - -# endif /* _STLP_BROKEN_USING_DIRECTIVE */ - -#endif /* _STLP_HAS_NO_NAMESPACES */ - -#if (_STLP_OUTERMOST_HEADER_ID == 0x2071) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_STRSTREAM_H */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/time.h b/WebKit/android/stlport/time.h deleted file mode 100644 index 8d10bfc..0000000 --- a/WebKit/android/stlport/time.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x272 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x272) && ! defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#ifdef _STLP_WCE_EVC3 -// only show message when directly including this file in a non-library build -# if !defined(__BUILDING_STLPORT) && (_STLP_OUTERMOST_HEADER_ID == 0x272) -# pragma message("eMbedded Visual C++ 3 doesn't have a time.h header; STLport won't include native time.h here") -# endif -#else -# include _STLP_NATIVE_C_HEADER(time.h) -#endif - - -#if (_STLP_OUTERMOST_HEADER_ID == 0x272) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -/* Local Variables: - * mode:C++ - * End: - */ diff --git a/WebKit/android/stlport/typeinfo b/WebKit/android/stlport/typeinfo deleted file mode 100644 index ffa51a7..0000000 --- a/WebKit/android/stlport/typeinfo +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_TYPEINFO - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x473 -# define _STLP_TYPEINFO -# include <stl/_prolog.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID != 0x473) -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(typeinfo) -#else -# ifndef _STLP_INTERNAL_TYPEINFO -# include <stl/_typeinfo.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x473) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/typeinfo.h b/WebKit/android/stlport/typeinfo.h deleted file mode 100644 index 1b565af..0000000 --- a/WebKit/android/stlport/typeinfo.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_OLDSTD_typeinfo -#define _STLP_OLDSTD_typeinfo - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x874 -# include <stl/_prolog.h> -#endif - -#ifndef _STLP_NO_TYPEINFO - -# if defined (__GNUC__) -# undef _STLP_OLDSTD_typeinfo -# include <typeinfo> -# define _STLP_OLDSTD_typeinfo -# else -# if !defined (__BORLANDC__) || (__BORLANDC__ < 0x580) -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(typeinfo.h) -# else -# include _STLP_NATIVE_CPP_C_HEADER(typeinfo.h) -# endif -# if defined (__BORLANDC__) && (__BORLANDC__ >= 0x580) || \ - defined (__DMC__) -using std::type_info; -using std::bad_typeid; -using std::bad_cast; -# endif -# endif - -// if <typeinfo> already included, do not import anything - -# if defined (_STLP_USE_OWN_NAMESPACE) && !(defined (_STLP_TYPEINFO) && !defined (_STLP_NO_NEW_NEW_HEADER)) - -_STLP_BEGIN_NAMESPACE - -using /*_STLP_VENDOR_EXCEPT_STD */ :: type_info; -# if !(defined(__MRC__) || (defined(__SC__) && !defined(__DMC__))) -using /* _STLP_VENDOR_EXCEPT_STD */ :: bad_typeid; -# endif - -using /* _STLP_VENDOR_EXCEPT_STD */ :: bad_cast; - -_STLP_END_NAMESPACE - -# endif /* _STLP_OWN_NAMESPACE */ - -#endif /* _STLP_NO_TYPEINFO */ - -#if (_STLP_OUTERMOST_HEADER_ID == 0x874) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_OLDSTD_typeinfo */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/unordered_map b/WebKit/android/stlport/unordered_map deleted file mode 100644 index 09fa0d2..0000000 --- a/WebKit/android/stlport/unordered_map +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2004,2005 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_UNORDERED_MAP -#define _STLP_UNORDERED_MAP - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x4030 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_unordered_map.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x4030) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_UNORDERED_MAP */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/unordered_set b/WebKit/android/stlport/unordered_set deleted file mode 100644 index 14de437..0000000 --- a/WebKit/android/stlport/unordered_set +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright (c) 2004,2005 - * Francois Dumont - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_UNORDERED_SET -#define _STLP_UNORDERED_SET - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x4031 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_unordered_set.h> - -#if (_STLP_OUTERMOST_HEADER_ID == 0x4031) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_UNORDERED_SET */ - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/using/cstring b/WebKit/android/stlport/using/cstring deleted file mode 100644 index 7580638..0000000 --- a/WebKit/android/stlport/using/cstring +++ /dev/null @@ -1,59 +0,0 @@ -using _STLP_VENDOR_CSTD::size_t; - -#if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) -# if defined (__MSL__) && __MC68K__ && !_No_BlockMove && __dest_os == __mac_os -# undef memcpy -# undef memmove -inline void* memcpy(void* dst, const void* src, size_t len) -{ return _STLP_VENDOR_CSTD::__memcpy(dst, src, len); } -inline void* memmove(void* dst, const void* src, size_t len) -{ return _STLP_VENDOR_CSTD::__memmove(dst, src, len); } -# else -using _STLP_VENDOR_CSTD::memmove; -using _STLP_VENDOR_CSTD::memcpy; -# endif - -# if !defined (_STLP_WCE) -// these functions just don't exist on Windows CE -# if !defined (ANDROID) -// and these functions just don't exist on Android -using _STLP_VENDOR_CSTD::strcoll; -using _STLP_VENDOR_CSTD::strxfrm; -# endif -using _STLP_VENDOR_CSTD::strerror; -# endif - -# if defined (__BORLANDC__) -extern "C++" { -# endif -using _STLP_VENDOR_CSTD::memchr; -using _STLP_VENDOR_CSTD::strchr; -using _STLP_VENDOR_CSTD::strpbrk; -using _STLP_VENDOR_CSTD::strrchr; -using _STLP_VENDOR_CSTD::strstr; -# if defined (__BORLANDC__) -} -# endif - -using _STLP_VENDOR_CSTD::memcmp; -using _STLP_VENDOR_CSTD::memset; - -using _STLP_VENDOR_CSTD::strcat; - -# if !defined (strcmp) -using _STLP_VENDOR_CSTD::strcmp; -# endif - -# if !defined (strcpy) -using _STLP_VENDOR_CSTD::strcpy; -# endif -using _STLP_VENDOR_CSTD::strcspn; -using _STLP_VENDOR_CSTD::strlen; -using _STLP_VENDOR_CSTD::strncat; -using _STLP_VENDOR_CSTD::strncmp; - -using _STLP_VENDOR_CSTD::strncpy; -using _STLP_VENDOR_CSTD::strspn; - -using _STLP_VENDOR_CSTD::strtok; -#endif /* _STLP_NO_CSTD_FUNCTION_IMPORTS */ diff --git a/WebKit/android/stlport/using/export b/WebKit/android/stlport/using/export deleted file mode 100644 index 2d3afcd..0000000 --- a/WebKit/android/stlport/using/export +++ /dev/null @@ -1,12 +0,0 @@ -cstring -fstream -iomanip -ios -iosfwd -iostream -istream -locale -ostream -sstream -streambuf -strstream diff --git a/WebKit/android/stlport/using/fstream b/WebKit/android/stlport/using/fstream deleted file mode 100644 index e79e048..0000000 --- a/WebKit/android/stlport/using/fstream +++ /dev/null @@ -1,19 +0,0 @@ -#ifdef _STLP_BROKEN_USING_DIRECTIVE -using namespace _STLP_STD; -#else -using _STLP_NEW_IO_NAMESPACE::basic_filebuf; -using _STLP_NEW_IO_NAMESPACE::filebuf; -using _STLP_NEW_IO_NAMESPACE::basic_ifstream; -using _STLP_NEW_IO_NAMESPACE::basic_ofstream; -using _STLP_NEW_IO_NAMESPACE::ifstream; -using _STLP_NEW_IO_NAMESPACE::ofstream; -using _STLP_NEW_IO_NAMESPACE::basic_fstream; -using _STLP_NEW_IO_NAMESPACE::fstream; - -# ifndef _STLP_NO_WIDE_STREAMS -using _STLP_NEW_IO_NAMESPACE::wofstream; -using _STLP_NEW_IO_NAMESPACE::wfilebuf; -using _STLP_NEW_IO_NAMESPACE::wifstream; -using _STLP_NEW_IO_NAMESPACE::wfstream; -# endif -#endif diff --git a/WebKit/android/stlport/using/h/fstream.h b/WebKit/android/stlport/using/h/fstream.h deleted file mode 100644 index 6600568..0000000 --- a/WebKit/android/stlport/using/h/fstream.h +++ /dev/null @@ -1,4 +0,0 @@ -using ::streambuf; -using ::ifstream; -using ::ofstream; -using ::fstream; diff --git a/WebKit/android/stlport/using/h/iomanip.h b/WebKit/android/stlport/using/h/iomanip.h deleted file mode 100644 index 99e48d9..0000000 --- a/WebKit/android/stlport/using/h/iomanip.h +++ /dev/null @@ -1,6 +0,0 @@ -using ::setiosflags; -using ::resetiosflags; -// using ::setbase; -using ::setfill; -using ::setprecision; -using ::setw; diff --git a/WebKit/android/stlport/using/h/iostream.h b/WebKit/android/stlport/using/h/iostream.h deleted file mode 100644 index e85f4e2..0000000 --- a/WebKit/android/stlport/using/h/iostream.h +++ /dev/null @@ -1,24 +0,0 @@ -using _STLP_OLD_IO_NAMESPACE::istream; -using _STLP_OLD_IO_NAMESPACE::ostream; - -/* HP aCC include files re-define these when THREAD_SAFE */ -#if !defined(cin) -using _STLP_OLD_IO_NAMESPACE::cin; -#endif -#if !defined(cout) -using _STLP_OLD_IO_NAMESPACE::cout; -#endif -#if !defined(cerr) -using _STLP_OLD_IO_NAMESPACE::cerr; -#endif -#if !defined(clog) -using _STLP_OLD_IO_NAMESPACE::clog; -#endif - -using _STLP_OLD_IO_NAMESPACE::endl; -using _STLP_OLD_IO_NAMESPACE::ends; - -using _STLP_OLD_IO_NAMESPACE::ios; -using _STLP_OLD_IO_NAMESPACE::flush; - -// using _STLP_OLD_IO_NAMESPACE::ws; diff --git a/WebKit/android/stlport/using/h/ostream.h b/WebKit/android/stlport/using/h/ostream.h deleted file mode 100644 index 6ba3f88..0000000 --- a/WebKit/android/stlport/using/h/ostream.h +++ /dev/null @@ -1,6 +0,0 @@ -using _STLP_OLD_IO_NAMESPACE::ostream; -using _STLP_OLD_IO_NAMESPACE::endl; -using _STLP_OLD_IO_NAMESPACE::ends; -using _STLP_OLD_IO_NAMESPACE::flush; - -// using _STLP_OLD_IO_NAMESPACE::ws; diff --git a/WebKit/android/stlport/using/h/streambuf.h b/WebKit/android/stlport/using/h/streambuf.h deleted file mode 100644 index 459de3d..0000000 --- a/WebKit/android/stlport/using/h/streambuf.h +++ /dev/null @@ -1 +0,0 @@ -using ::streambuf; diff --git a/WebKit/android/stlport/using/h/strstream.h b/WebKit/android/stlport/using/h/strstream.h deleted file mode 100644 index a7d9f11..0000000 --- a/WebKit/android/stlport/using/h/strstream.h +++ /dev/null @@ -1,4 +0,0 @@ -using _STLP_OLD_IO_NAMESPACE::strstreambuf; -using _STLP_OLD_IO_NAMESPACE::istrstream; -using _STLP_OLD_IO_NAMESPACE::ostrstream; -using _STLP_OLD_IO_NAMESPACE::strstream; diff --git a/WebKit/android/stlport/using/iomanip b/WebKit/android/stlport/using/iomanip deleted file mode 100644 index 8a7c792..0000000 --- a/WebKit/android/stlport/using/iomanip +++ /dev/null @@ -1,6 +0,0 @@ -using _STLP_NEW_IO_NAMESPACE::setiosflags; -using _STLP_NEW_IO_NAMESPACE::resetiosflags; -using _STLP_NEW_IO_NAMESPACE::setbase; -using _STLP_NEW_IO_NAMESPACE::setfill; -using _STLP_NEW_IO_NAMESPACE::setprecision; -using _STLP_NEW_IO_NAMESPACE::setw; diff --git a/WebKit/android/stlport/using/ios b/WebKit/android/stlport/using/ios deleted file mode 100644 index d89b495..0000000 --- a/WebKit/android/stlport/using/ios +++ /dev/null @@ -1,41 +0,0 @@ -# ifdef _STLP_BROKEN_USING_DIRECTIVE -using namespace _STLP_NEW_IO_NAMESPACE; -# else - -using _STLP_NEW_IO_NAMESPACE::ios; -using _STLP_NEW_IO_NAMESPACE::streamoff; -using _STLP_NEW_IO_NAMESPACE::streamsize; - -using _STLP_NEW_IO_NAMESPACE::ios_base; -using _STLP_NEW_IO_NAMESPACE::basic_ios; - -// _lib.std.ios.manip_, manipulators: -using _STLP_NEW_IO_NAMESPACE::boolalpha; -using _STLP_NEW_IO_NAMESPACE::noboolalpha; -using _STLP_NEW_IO_NAMESPACE::showbase; -using _STLP_NEW_IO_NAMESPACE::noshowbase; -using _STLP_NEW_IO_NAMESPACE::showpoint; -using _STLP_NEW_IO_NAMESPACE::noshowpoint; -using _STLP_NEW_IO_NAMESPACE::showpos; -using _STLP_NEW_IO_NAMESPACE::noshowpos; -using _STLP_NEW_IO_NAMESPACE::skipws; -using _STLP_NEW_IO_NAMESPACE::noskipws; -using _STLP_NEW_IO_NAMESPACE::uppercase; -using _STLP_NEW_IO_NAMESPACE::nouppercase; - -// _lib.adjustfield.manip_ adjustfield: -using _STLP_NEW_IO_NAMESPACE::internal; -using _STLP_NEW_IO_NAMESPACE::left; -using _STLP_NEW_IO_NAMESPACE::right; - -// _lib.basefield.manip_ basefield: -using _STLP_NEW_IO_NAMESPACE::dec; -using _STLP_NEW_IO_NAMESPACE::hex; -using _STLP_NEW_IO_NAMESPACE::oct; - -// _lib.floatfield.manip_ floatfield: -using _STLP_NEW_IO_NAMESPACE::fixed; -using _STLP_NEW_IO_NAMESPACE::scientific; - -# endif /* _STLP_BROKEN_USING_DIRECTIVE */ - diff --git a/WebKit/android/stlport/using/iosfwd b/WebKit/android/stlport/using/iosfwd deleted file mode 100644 index b564e81..0000000 --- a/WebKit/android/stlport/using/iosfwd +++ /dev/null @@ -1,54 +0,0 @@ -# if defined (_STLP_USE_NEW_IOSTREAMS) -using _STLP_NEW_IO_NAMESPACE::char_traits; -using _STLP_NEW_IO_NAMESPACE::basic_ios; -using _STLP_NEW_IO_NAMESPACE::basic_streambuf; -using _STLP_NEW_IO_NAMESPACE::basic_istream; -using _STLP_NEW_IO_NAMESPACE::basic_ostream; -using _STLP_NEW_IO_NAMESPACE::basic_iostream; -using _STLP_NEW_IO_NAMESPACE::basic_stringbuf; -using _STLP_NEW_IO_NAMESPACE::basic_istringstream; -using _STLP_NEW_IO_NAMESPACE::basic_ostringstream; -using _STLP_NEW_IO_NAMESPACE::basic_stringstream; -using _STLP_NEW_IO_NAMESPACE::basic_filebuf; -using _STLP_NEW_IO_NAMESPACE::basic_ifstream; -using _STLP_NEW_IO_NAMESPACE::basic_ofstream; -using _STLP_NEW_IO_NAMESPACE::basic_fstream; -using _STLP_NEW_IO_NAMESPACE::fpos; -using _STLP_NEW_IO_NAMESPACE::istreambuf_iterator; -using _STLP_NEW_IO_NAMESPACE::ostreambuf_iterator; -using _STLP_NEW_IO_NAMESPACE::stringbuf; -using _STLP_NEW_IO_NAMESPACE::istringstream; -using _STLP_NEW_IO_NAMESPACE::ostringstream; -using _STLP_NEW_IO_NAMESPACE::stringstream; -# endif - -using _STLP_NEW_IO_NAMESPACE::ios; -using _STLP_NEW_IO_NAMESPACE::streambuf; -using _STLP_NEW_IO_NAMESPACE::istream; -using _STLP_NEW_IO_NAMESPACE::ostream; -using _STLP_NEW_IO_NAMESPACE::iostream; - -using _STLP_NEW_IO_NAMESPACE::filebuf; -using _STLP_NEW_IO_NAMESPACE::ifstream; -using _STLP_NEW_IO_NAMESPACE::ofstream; -using _STLP_NEW_IO_NAMESPACE::fstream; - -using _STLP_NEW_IO_NAMESPACE::streampos; -using _STLP_NEW_IO_NAMESPACE::streamoff; - -# if !defined (_STLP_NO_WIDE_STREAMS) -using _STLP_NEW_IO_NAMESPACE::wios; -using _STLP_NEW_IO_NAMESPACE::wstreambuf; -using _STLP_NEW_IO_NAMESPACE::wistream; -using _STLP_NEW_IO_NAMESPACE::wostream; -using _STLP_NEW_IO_NAMESPACE::wiostream; -using _STLP_NEW_IO_NAMESPACE::wstringbuf; -using _STLP_NEW_IO_NAMESPACE::wistringstream; -using _STLP_NEW_IO_NAMESPACE::wostringstream; -using _STLP_NEW_IO_NAMESPACE::wstringstream; -using _STLP_NEW_IO_NAMESPACE::wfilebuf; -using _STLP_NEW_IO_NAMESPACE::wifstream; -using _STLP_NEW_IO_NAMESPACE::wofstream; -using _STLP_NEW_IO_NAMESPACE::wfstream; -using _STLP_NEW_IO_NAMESPACE::wstreampos; -# endif diff --git a/WebKit/android/stlport/using/iostream b/WebKit/android/stlport/using/iostream deleted file mode 100644 index 6169afb..0000000 --- a/WebKit/android/stlport/using/iostream +++ /dev/null @@ -1,14 +0,0 @@ - -# include <using/istream> - -using _STLP_VENDOR_STD::cin; -using _STLP_VENDOR_STD::cout; -using _STLP_VENDOR_STD::cerr; -using _STLP_VENDOR_STD::clog; - -# if ! defined (_STLP_NO_WIDE_STREAMS) -using _STLP_VENDOR_STD::wcin; -using _STLP_VENDOR_STD::wcout; -using _STLP_VENDOR_STD::wcerr; -using _STLP_VENDOR_STD::wclog; -# endif diff --git a/WebKit/android/stlport/using/istream b/WebKit/android/stlport/using/istream deleted file mode 100644 index baf10d2..0000000 --- a/WebKit/android/stlport/using/istream +++ /dev/null @@ -1,16 +0,0 @@ -# include <using/ostream> - -using _STLP_NEW_IO_NAMESPACE::basic_istream; -using _STLP_NEW_IO_NAMESPACE::basic_iostream; - -using _STLP_NEW_IO_NAMESPACE::istream; -using _STLP_NEW_IO_NAMESPACE::iostream; - -# if !defined (_STLP_NO_NATIVE_WIDE_STREAMS) -using _STLP_NEW_IO_NAMESPACE::wistream; -using _STLP_NEW_IO_NAMESPACE::wiostream; -# endif - -#if !(defined (_STLP_MSVC) && (_STLP_MSVC < 1200)) -using _STLP_NEW_IO_NAMESPACE::ws; -#endif diff --git a/WebKit/android/stlport/using/locale b/WebKit/android/stlport/using/locale deleted file mode 100644 index aa99b5b..0000000 --- a/WebKit/android/stlport/using/locale +++ /dev/null @@ -1,65 +0,0 @@ -#if !defined(_STLP_NO_IMPORT_LOCALE) - -// from <cwchar> -#if !defined (_STLP_NO_MBSTATE_T) -using _STLP_VENDOR_MB_NAMESPACE::mbstate_t; -#endif - -// _lib.locale_, locale: -using _STLP_NEW_IO_NAMESPACE::locale; -using _STLP_NEW_IO_NAMESPACE::use_facet; -using _STLP_NEW_IO_NAMESPACE::has_facet; - -// _lib.locale.convenience_, convenience interfaces: -using _STLP_NEW_IO_NAMESPACE::isspace; -using _STLP_NEW_IO_NAMESPACE::isprint; -using _STLP_NEW_IO_NAMESPACE::iscntrl; -using _STLP_NEW_IO_NAMESPACE::isupper; -using _STLP_NEW_IO_NAMESPACE::islower; -using _STLP_NEW_IO_NAMESPACE::isalpha; -using _STLP_NEW_IO_NAMESPACE::isdigit; -using _STLP_NEW_IO_NAMESPACE::ispunct; -using _STLP_NEW_IO_NAMESPACE::isxdigit; -using _STLP_NEW_IO_NAMESPACE::isalnum; -using _STLP_NEW_IO_NAMESPACE::isgraph; -using _STLP_NEW_IO_NAMESPACE::toupper; -using _STLP_NEW_IO_NAMESPACE::tolower; - -// _lib.category.ctype_ and _lib.facet.ctype.special_, ctype: -using _STLP_NEW_IO_NAMESPACE::ctype_base; -using _STLP_NEW_IO_NAMESPACE::ctype; -using _STLP_NEW_IO_NAMESPACE::ctype_byname; -using _STLP_NEW_IO_NAMESPACE::codecvt_base; -using _STLP_NEW_IO_NAMESPACE::codecvt; -using _STLP_NEW_IO_NAMESPACE::codecvt_byname; - -// _lib.category.numeric_ and _lib.facet.numpunct_, numeric: -using _STLP_NEW_IO_NAMESPACE::num_get; -using _STLP_NEW_IO_NAMESPACE::num_put; -using _STLP_NEW_IO_NAMESPACE::numpunct; -using _STLP_NEW_IO_NAMESPACE::numpunct_byname; - -// _lib.category.collate_, collation: -using _STLP_NEW_IO_NAMESPACE::collate; -using _STLP_NEW_IO_NAMESPACE::collate_byname; - -// _lib.category.time_, date and time: -using _STLP_NEW_IO_NAMESPACE::time_base; -using _STLP_NEW_IO_NAMESPACE::time_get; -using _STLP_NEW_IO_NAMESPACE::time_get_byname; -using _STLP_NEW_IO_NAMESPACE::time_put; -using _STLP_NEW_IO_NAMESPACE::time_put_byname; - -// _lib.category.monetary_, money: -using _STLP_NEW_IO_NAMESPACE::money_base; -using _STLP_NEW_IO_NAMESPACE::money_get; -using _STLP_NEW_IO_NAMESPACE::money_put; -using _STLP_NEW_IO_NAMESPACE::moneypunct; -using _STLP_NEW_IO_NAMESPACE::moneypunct_byname; - -#if !defined (_STLP_OWN_IOSTREAMS) && !defined (_STLP_NO_NATIVE_MESSAGE_FACET) -using _STLP_NEW_IO_NAMESPACE::messages_base; -using _STLP_NEW_IO_NAMESPACE::messages; -using _STLP_NEW_IO_NAMESPACE::messages_byname; -#endif // _MSL_NO_MESSAGE_FACET -#endif /* !defined(_STLP_NO_IMPORT_LOCALE) */ diff --git a/WebKit/android/stlport/using/ostream b/WebKit/android/stlport/using/ostream deleted file mode 100644 index 162b32d..0000000 --- a/WebKit/android/stlport/using/ostream +++ /dev/null @@ -1,10 +0,0 @@ -using _STLP_NEW_IO_NAMESPACE::basic_ostream; -using _STLP_NEW_IO_NAMESPACE::ostream; - -# ifndef _STLP_NO_WIDE_STREAMS -using _STLP_NEW_IO_NAMESPACE::wostream; -# endif - -using _STLP_NEW_IO_NAMESPACE::endl; -using _STLP_NEW_IO_NAMESPACE::ends; -using _STLP_NEW_IO_NAMESPACE::flush; diff --git a/WebKit/android/stlport/using/sstream b/WebKit/android/stlport/using/sstream deleted file mode 100644 index 925c37e..0000000 --- a/WebKit/android/stlport/using/sstream +++ /dev/null @@ -1,16 +0,0 @@ -using _STLP_NEW_IO_NAMESPACE::basic_stringbuf; -using _STLP_NEW_IO_NAMESPACE::stringbuf; - -using _STLP_NEW_IO_NAMESPACE::basic_istringstream; -using _STLP_NEW_IO_NAMESPACE::basic_ostringstream; -using _STLP_NEW_IO_NAMESPACE::basic_stringstream; -using _STLP_NEW_IO_NAMESPACE::istringstream; -using _STLP_NEW_IO_NAMESPACE::ostringstream; -using _STLP_NEW_IO_NAMESPACE::stringstream; - -#ifndef _STLP_NO_WIDE_STREAMS -using _STLP_NEW_IO_NAMESPACE::wstringbuf; -using _STLP_NEW_IO_NAMESPACE::wistringstream; -using _STLP_NEW_IO_NAMESPACE::wostringstream; -using _STLP_NEW_IO_NAMESPACE::wstringstream; -#endif diff --git a/WebKit/android/stlport/using/streambuf b/WebKit/android/stlport/using/streambuf deleted file mode 100644 index 308241d..0000000 --- a/WebKit/android/stlport/using/streambuf +++ /dev/null @@ -1,5 +0,0 @@ -using _STLP_NEW_IO_NAMESPACE::basic_streambuf; -using _STLP_NEW_IO_NAMESPACE::streambuf; -#ifndef _STLP_NO_WIDE_STREAMS -using _STLP_NEW_IO_NAMESPACE::wstreambuf; -# endif diff --git a/WebKit/android/stlport/using/strstream b/WebKit/android/stlport/using/strstream deleted file mode 100644 index eb26ac1..0000000 --- a/WebKit/android/stlport/using/strstream +++ /dev/null @@ -1,4 +0,0 @@ -using _STLP_NEW_IO_NAMESPACE::strstreambuf; -using _STLP_NEW_IO_NAMESPACE::istrstream; -using _STLP_NEW_IO_NAMESPACE::ostrstream; -using _STLP_NEW_IO_NAMESPACE::strstream; diff --git a/WebKit/android/stlport/utility b/WebKit/android/stlport/utility deleted file mode 100644 index 323fe1e..0000000 --- a/WebKit/android/stlport/utility +++ /dev/null @@ -1,65 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_UTILITY -#define _STLP_UTILITY - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x75 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#ifndef __TYPE_TRAITS_H -# include <stl/type_traits.h> -#endif - -#if !defined (_STLP_DEBUG_H) && (defined (_STLP_DEBUG) || defined (_STLP_ASSERTIONS)) -# include <stl/debug/_debug.h> -#endif - -#ifndef _STLP_INTERNAL_PAIR_H -# include <stl/_pair.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(utility) -#else -# if defined (_STLP_MSVC) && !defined (_STLP_INTERNAL_ITERATOR_H) -# include <stl/_iterator.h> -# endif -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x75) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_UTILITY */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/valarray b/WebKit/android/stlport/valarray deleted file mode 100644 index 3cf71f3..0000000 --- a/WebKit/android/stlport/valarray +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 1999 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_VALARRAY -#define _STLP_VALARRAY - -#ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x76 -# include <stl/_prolog.h> -#endif - -#ifdef _STLP_PRAGMA_ONCE -# pragma once -#endif - -#include <stl/_valarray.h> - -#if defined (_STLP_IMPORT_VENDOR_STD) -# include _STLP_NATIVE_HEADER(valarray) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x76) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -#endif - -#endif /* _STLP_VALARRAY */ - - -// Local Variables: -// mode:C++ -// End: diff --git a/WebKit/android/stlport/vector b/WebKit/android/stlport/vector deleted file mode 100644 index 7583b9f..0000000 --- a/WebKit/android/stlport/vector +++ /dev/null @@ -1,57 +0,0 @@ -/* - * - * Copyright (c) 1994 - * Hewlett-Packard Company - * - * Copyright (c) 1996,1997 - * Silicon Graphics Computer Systems, Inc. - * - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#ifndef _STLP_VECTOR -#define _STLP_VECTOR - -# ifndef _STLP_OUTERMOST_HEADER_ID -# define _STLP_OUTERMOST_HEADER_ID 0x77 -# include <stl/_prolog.h> -# endif - -# ifdef _STLP_PRAGMA_ONCE -# pragma once -# endif - -# ifndef _STLP_INTERNAL_ALGOBASE_H -# include <stl/_algobase.h> -# endif - -#ifndef _STLP_INTERNAL_VECTOR_H -# include <stl/_vector.h> -#endif - -#if defined (_STLP_IMPORT_VENDOR_STD) && ! defined (_STLP_MINIMUM_IMPORT_STD) -# include _STLP_NATIVE_HEADER(vector) -#endif - -# if (_STLP_OUTERMOST_HEADER_ID == 0x77) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# endif - -#endif /* _STLP_VECTOR */ - -// Local Variables: -// mode:C++ -// End: - diff --git a/WebKit/android/stlport/wchar.h b/WebKit/android/stlport/wchar.h deleted file mode 100644 index 7b49c5d..0000000 --- a/WebKit/android/stlport/wchar.h +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x278 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x278) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -#if !defined (_STLP_WCE_EVC3) && !defined (_STLP_NO_WCHAR_T) - -# if defined (__BORLANDC__) -/* -# include <cstring> -*/ -# include _STLP_NATIVE_CPP_C_HEADER(_str.h) -# ifdef __cplusplus -using _STLP_VENDOR_CSTD::strlen; -using _STLP_VENDOR_CSTD::strspn; -# endif -# endif - -# if (((__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))) && defined (__APPLE__)) || defined (__OpenBSD__) -# include _STLP_NATIVE_C_HEADER(stddef.h) -# elif defined(__MWERKS__) && defined(N_PLAT_NLM) -/* - * MSL library has wrong definition of wint_t (with -wchar_t on) in wchar_t.h header. - * IMHO the best way is to comment line - * typedef wchar_t wint_t; - * (I use this way). - * - * Another solution is to define _WINT_T (to avoid conflict with wint_t definitions in - * Novell SDK headers, _WCHAR_T defined in nlm_prefix.h). But you should define one - * before include any header from Novell's SDK, so this isn't too good choice. - * - * And third solution is don't use anyware (even here) wchar_t.h - * - * - ptr, 2003 and 2005-05-07 - */ -/* -#if __option(wchar_type) -# define _WINT_T -#endif -*/ -# include _STLP_NATIVE_CPP_C_HEADER(wchar_t.h) -# include _STLP_NATIVE_C_HEADER(stddef.h) -# include _STLP_NATIVE_C_HEADER(stdio.h) -# include <unicode.h> -int wcslen( const wchar_t *_wc ); -int wcscmp( const wchar_t *_wc1, const wchar_t *_wc2 ); -int wcsncmp( const wchar_t *_wc1, const wchar_t *_wc2, size_t n ); -wchar_t *wcsstr( const wchar_t *_wc1, const wchar_t *_wc2 ); -wchar_t *wcschr( const wchar_t *_wc1, wchar_t _wc2 ); -wchar_t *wcsrchr( const wchar_t *_wc1, wchar_t _wc2 ); -wchar_t *wcscpy( wchar_t *_wc1, const wchar_t *_wc2 ); -wchar_t *wcsncpy( wchar_t *_wc1, const wchar_t *_wc2, size_t n ); -wchar_t *wcspbrk( const wchar_t *_wc, const wchar_t *_wc2 ); -# else -# include _STLP_NATIVE_C_HEADER(wchar.h) -# endif -#endif /* !defined (_STLP_WCE_EVC3) && !defined (_STLP_NO_WCHAR_T) */ - -#ifndef _STLP_INTERNAL_MBSTATE_T -# include <stl/_mbstate_t.h> -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x278) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -/* - Local Variables: - mode:C++ - End: -*/ diff --git a/WebKit/android/stlport/wctype.h b/WebKit/android/stlport/wctype.h deleted file mode 100644 index 365f0d3..0000000 --- a/WebKit/android/stlport/wctype.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (c) 1999 - * Boris Fomitchev - * - * This material is provided "as is", with absolutely no warranty expressed - * or implied. Any use is at your own risk. - * - * Permission to use or copy this software for any purpose is hereby granted - * without fee, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - */ - -#if !defined (_STLP_OUTERMOST_HEADER_ID) -# define _STLP_OUTERMOST_HEADER_ID 0x279 -# include <stl/_prolog.h> -#elif (_STLP_OUTERMOST_HEADER_ID == 0x279) && !defined (_STLP_DONT_POP_HEADER_ID) -# define _STLP_DONT_POP_HEADER_ID -#endif - -/* evc3 doesn't have wctype.h */ -#if !defined(_STLP_WCE_EVC3) && !defined(N_PLAT_NLM) -# include _STLP_NATIVE_C_HEADER(wctype.h) -#endif - -#if (_STLP_OUTERMOST_HEADER_ID == 0x279) -# if ! defined (_STLP_DONT_POP_HEADER_ID) -# include <stl/_epilog.h> -# undef _STLP_OUTERMOST_HEADER_ID -# else -# undef _STLP_DONT_POP_HEADER_ID -# endif -#endif - -/* Local Variables: - * mode:C++ - * End: - */ |
