diff options
Diffstat (limited to 'stlport/stl/_new.h')
-rw-r--r-- | stlport/stl/_new.h | 145 |
1 files changed, 0 insertions, 145 deletions
diff --git a/stlport/stl/_new.h b/stlport/stl/_new.h deleted file mode 100644 index ffa25f4..0000000 --- a/stlport/stl/_new.h +++ /dev/null @@ -1,145 +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__ < 0x570) -// new.h uses ::malloc ;( -# include _STLP_NATIVE_CPP_C_HEADER(cstdlib) -using _STLP_VENDOR_CSTD::malloc; -#endif - -#if !defined (_STLP_NO_NEW_NEW_HEADER) -// 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 - -# if defined (_STLP_HAS_INCLUDE_NEXT) -# include_next <new> -# else -# include _STLP_NATIVE_CPP_RUNTIME_HEADER(new) -# 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_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 */ - -#ifndef _STLP_THROW_BAD_ALLOC -# if !defined (_STLP_USE_EXCEPTIONS) -# ifndef _STLP_INTERNAL_CSTDIO -# include <stl/_cstdio.h> -# endif -# define _STLP_THROW_BAD_ALLOC puts("out of memory\n"); abort() -# else -# define _STLP_THROW_BAD_ALLOC _STLP_THROW(_STLP_STD::bad_alloc()) -# endif -#endif - -#if 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_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 (_STLP_DEBUG_ALLOC)) -inline void* _STLP_CALL __stl_new(size_t __n) { _STLP_CHECK_NULL_ALLOC(::operator 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 new(__n)); } -inline void _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p); } -#endif -_STLP_END_NAMESPACE - -#endif /* _STLP_INTERNAL_NEW */ - -/* - * Local Variables: - * mode:C++ - * End: - */ |