genericopenlibs/cppstdlib/stl/stlport/stl/_new.h
branchRCL_3
changeset 54 4332f0f7be53
parent 0 e4d67989cc36
child 56 acd3cd4aaceb
equal deleted inserted replaced
53:9d9daa0f4b62 54:4332f0f7be53
    13  *
    13  *
    14  */
    14  */
    15 
    15 
    16 #ifndef _STLP_INTERNAL_NEW
    16 #ifndef _STLP_INTERNAL_NEW
    17 #define _STLP_INTERNAL_NEW
    17 #define _STLP_INTERNAL_NEW
       
    18 
    18 
    19 
    19 #ifndef _STLP_INTERNAL_CSTDDEF
    20 #ifndef _STLP_INTERNAL_CSTDDEF
    20 // size_t
    21 // size_t
    21 #  include <stl/_cstddef.h>
    22 #  include <stl/_cstddef.h>
    22 #endif
    23 #endif
   136 #    define _STLP_CHECK_NULL_ALLOC(__x) void* __y = __x; if (__y == 0) { _STLP_THROW(_STLP_STD::bad_alloc()); } return __y
   137 #    define _STLP_CHECK_NULL_ALLOC(__x) void* __y = __x; if (__y == 0) { _STLP_THROW(_STLP_STD::bad_alloc()); } return __y
   137 #  else
   138 #  else
   138 #    define _STLP_CHECK_NULL_ALLOC(__x) return __x
   139 #    define _STLP_CHECK_NULL_ALLOC(__x) return __x
   139 #  endif
   140 #  endif
   140 
   141 
       
   142 #ifdef __SYMBIAN32__
       
   143 IMPORT_C void* backend_allocate(size_t);
       
   144 IMPORT_C void  backend_free(void*);
       
   145 #endif
       
   146 
       
   147 
   141 _STLP_BEGIN_NAMESPACE
   148 _STLP_BEGIN_NAMESPACE
   142 
   149 
   143 #  if ((defined (__IBMCPP__) || defined (__OS400__) || defined (__xlC__) || defined (qTidyHeap)) && defined (__DEBUG_ALLOC__))
   150 #  if ((defined (__IBMCPP__) || defined (__OS400__) || defined (__xlC__) || defined (qTidyHeap)) && defined (__DEBUG_ALLOC__))
   144 inline void* _STLP_CALL __stl_new(size_t __n)   { _STLP_CHECK_NULL_ALLOC(::operator _STLP_NEW(__n, __FILE__, __LINE__)); }
   151 inline void* _STLP_CALL __stl_new(size_t __n)   { _STLP_CHECK_NULL_ALLOC(::operator _STLP_NEW(__n, __FILE__, __LINE__)); }
   145 inline void  _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p, __FILE__, __LINE__); }
   152 inline void  _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p, __FILE__, __LINE__); }
   146 #  else
   153 #  else
   147 inline void* _STLP_CALL __stl_new(size_t __n)   { _STLP_CHECK_NULL_ALLOC(::operator _STLP_NEW(__n)); }
   154 inline void* _STLP_CALL __stl_new(size_t __n)
   148 inline void  _STLP_CALL __stl_delete(void* __p) { ::operator delete(__p); }
   155     {
       
   156 #ifdef __SYMBIAN32__
       
   157     return backend_allocate(__n);
       
   158 #else
       
   159     _STLP_CHECK_NULL_ALLOC(::operator _STLP_NEW(__n));
       
   160 #endif
       
   161     }
       
   162 inline void  _STLP_CALL __stl_delete(void* __p)
       
   163     {
       
   164 #ifdef __SYMBIAN32__
       
   165     backend_free(__p);
       
   166 #else
       
   167     ::operator delete(__p);
       
   168 #endif
       
   169     }
   149 #  endif
   170 #  endif
   150 _STLP_END_NAMESPACE
   171 _STLP_END_NAMESPACE
   151 
   172 
   152 #endif /* _STLP_RTTI_BUG */
   173 #endif /* _STLP_RTTI_BUG */
   153 
   174