| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
| <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> |
| <title>oscl_mem.h Source File</title> |
| <link href="doxygen.css" rel="stylesheet" type="text/css"> |
| </head><body> |
| <!-- Generated by Doxygen 1.2.18 --> |
| <center> |
| <a class="qindex" href="index.html">Main Page</a> <a class="qindex" href="modules.html">Modules</a> <a class="qindex" href="hierarchy.html">Class Hierarchy</a> <a class="qindex" href="annotated.html">Data Structures</a> <a class="qindex" href="files.html">File List</a> <a class="qindex" href="functions.html">Data Fields</a> <a class="qindex" href="globals.html">Globals</a> </center> |
| <hr><h1>oscl_mem.h</h1><a href="oscl__mem_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre>00001 <span class="comment">// -*- c++ -*-</span> |
| 00002 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span> |
| 00003 |
| 00004 <span class="comment">// O S C L _ M E M</span> |
| 00005 |
| 00006 <span class="comment">// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =</span> |
| 00007 |
| 00022 <span class="preprocessor">#ifndef OSCL_MEM_H_INCLUDED</span> |
| 00023 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_MEM_H_INCLUDED</span> |
| 00024 <span class="preprocessor"></span> |
| 00025 <span class="preprocessor">#ifndef OSCLCONFIG_MEMORY_H_INCLUDED</span> |
| 00026 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="osclconfig__memory_8h.html">osclconfig_memory.h</a>"</span> |
| 00027 <span class="preprocessor">#endif</span> |
| 00028 <span class="preprocessor"></span> |
| 00029 <span class="preprocessor">#ifndef OSCL_BASE_H_INCLUDED</span> |
| 00030 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> |
| 00031 <span class="preprocessor">#endif</span> |
| 00032 <span class="preprocessor"></span> |
| 00033 <span class="preprocessor">#ifndef OSCL_TYPES_H_INCLUDE</span> |
| 00034 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__types_8h.html">oscl_types.h</a>"</span> |
| 00035 <span class="preprocessor">#endif</span> |
| 00036 <span class="preprocessor"></span> |
| 00037 <span class="preprocessor">#ifndef OSCL_ASSERT_H_INCLUDED</span> |
| 00038 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__assert_8h.html">oscl_assert.h</a>"</span> |
| 00039 <span class="preprocessor">#endif</span> |
| 00040 <span class="preprocessor"></span> |
| 00041 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H</span> |
| 00042 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a>"</span> |
| 00043 <span class="preprocessor">#endif</span> |
| 00044 <span class="preprocessor"></span> |
| 00045 <span class="preprocessor">#ifndef OSCL_LOCK_BASE_H_INCLUDED</span> |
| 00046 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__lock__base_8h.html">oscl_lock_base.h</a>"</span> |
| 00047 <span class="preprocessor">#endif</span> |
| 00048 <span class="preprocessor"></span> |
| 00049 <span class="preprocessor">#define OSCL_DISABLE_WARNING_TRUNCATE_DEBUG_MESSAGE</span> |
| 00050 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="osclconfig__compiler__warnings_8h.html">osclconfig_compiler_warnings.h</a>"</span> |
| 00051 |
| 00052 <span class="preprocessor">#ifndef OSCL_MEM_INST_H_INCLUDED</span> |
| 00053 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__inst_8h.html">oscl_mem_inst.h</a>"</span> |
| 00054 <span class="preprocessor">#endif</span> |
| 00055 <span class="preprocessor"></span> |
| 00056 <span class="preprocessor">#ifndef OSCL_HEAPBASE_H_INCLUDED</span> |
| 00057 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__heapbase_8h.html">oscl_heapbase.h</a>"</span> |
| 00058 <span class="preprocessor">#endif</span> |
| 00059 <span class="preprocessor"></span> |
| 00060 <span class="comment">//Default for OSCL_HAS_GLOBAL_NEW_DELETE in case it is *not* defined</span> |
| 00061 <span class="comment">//in the osclconfig_memory.h</span> |
| 00062 <span class="preprocessor">#ifndef OSCL_HAS_GLOBAL_NEW_DELETE</span> |
| 00063 <span class="preprocessor"></span><span class="preprocessor">#ifdef NDEBUG</span> |
| 00064 <span class="preprocessor"></span><span class="comment">//Release Mode - No definition for global new and delete.</span> |
| 00065 <span class="preprocessor">#define OSCL_HAS_GLOBAL_NEW_DELETE 0</span> |
| 00066 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| 00067 <span class="preprocessor"></span><span class="comment">//Debug Mode - Define global new and delete.</span> |
| <a name="l00068"></a><a class="code" href="group__osclmemory.html#a34">00068</a> <span class="preprocessor">#define OSCL_HAS_GLOBAL_NEW_DELETE 1</span> |
| 00069 <span class="preprocessor"></span><span class="preprocessor">#endif //NDEBUG</span> |
| 00070 <span class="preprocessor"></span><span class="preprocessor">#endif //OSCL_HAS_GLOBAL_NEW_DELETE</span> |
| 00071 <span class="preprocessor"></span> |
| <a name="l00072"></a><a class="code" href="classOsclMem.html">00072</a> <span class="keyword">class </span><a class="code" href="classOsclMem.html">OsclMem</a> |
| 00073 { |
| 00074 <span class="keyword">public</span>: |
| 00084 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classOsclMem.html#d0">Init</a>(); |
| 00085 |
| 00089 OSCL_IMPORT_REF <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classOsclMem.html#d1">Cleanup</a>(); |
| 00090 |
| 00091 }; |
| 00092 |
| 00093 <span class="comment">/*</span> |
| 00094 <span class="comment">** Choose whether to use per-thread or singleton registry for auditing</span> |
| 00095 <span class="comment">*/</span> |
| 00096 <span class="preprocessor">#include "<a class="code" href="oscl__base_8h.html">oscl_base.h</a>"</span> |
| 00097 |
| 00098 <span class="comment">/*</span> |
| 00099 <span class="comment">** Audit control block</span> |
| 00100 <span class="comment">*/</span> |
| 00101 <span class="preprocessor">#if (OSCL_BYPASS_MEMMGT)</span> |
| 00102 <span class="preprocessor"></span><span class="comment">//empty class for compilation only</span> |
| 00103 <span class="keyword">class </span><a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> |
| 00104 { |
| 00105 <span class="keyword">public</span>: |
| 00106 }; |
| 00107 <span class="preprocessor">#else</span> |
| 00108 <span class="preprocessor"></span><span class="keyword">class </span><a class="code" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>; |
| 00109 <span class="keyword">class </span><a class="code" href="classOsclMemAudit.html">OsclMemAudit</a>; |
| <a name="l00110"></a><a class="code" href="classOsclAuditCB.html">00110</a> <span class="keyword">class </span><a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> |
| 00111 { |
| 00112 <span class="keyword">public</span>: |
| <a name="l00113"></a><a class="code" href="classOsclAuditCB.html#m0">00113</a> <span class="keyword">const</span> <a class="code" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>* <a class="code" href="classOsclAuditCB.html#m0">pStatsNode</a>; |
| <a name="l00114"></a><a class="code" href="classOsclAuditCB.html#m1">00114</a> <a class="code" href="classOsclMemAudit.html">OsclMemAudit</a> *<a class="code" href="classOsclAuditCB.html#m1">pAudit</a>; |
| 00115 |
| <a name="l00116"></a><a class="code" href="classOsclAuditCB.html#a0">00116</a> <a class="code" href="classOsclAuditCB.html#a0">OsclAuditCB</a>() : |
| 00117 pStatsNode(<a class="code" href="group__osclbase.html#a81">NULL</a>), |
| 00118 pAudit(<a class="code" href="group__osclbase.html#a81">NULL</a>) |
| 00119 {} |
| 00120 |
| <a name="l00121"></a><a class="code" href="classOsclAuditCB.html#a1">00121</a> <a class="code" href="classOsclAuditCB.html#a0">OsclAuditCB</a>(<span class="keyword">const</span> <a class="code" href="classOsclMemStatsNode.html">OsclMemStatsNode</a>* myStatsNode, |
| 00122 <a class="code" href="classOsclMemAudit.html">OsclMemAudit</a> *ptr) |
| 00123 : |
| 00124 pStatsNode(myStatsNode), |
| 00125 pAudit(ptr) |
| 00126 { |
| 00127 } |
| 00128 }; |
| 00129 <span class="preprocessor">#endif//OSCL_BYPASS_MEMMGT</span> |
| 00130 <span class="preprocessor"></span> |
| 00138 <a class="code" href="group__osclbase.html#a84">OSCL_COND_IMPORT_REF</a> <a class="code" href="group__osclbase.html#a27">uint</a> <a class="code" href="group__osclmemory.html#a16">oscl_mem_aligned_size</a>(<a class="code" href="group__osclbase.html#a27">uint</a> size); |
| 00139 |
| 00147 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="group__osclmemory.html#a17">OsclMemInit</a>(<a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> & auditCB); |
| 00148 |
| <a name="l00156"></a><a class="code" href="group__osclmemory.html#a35">00156</a> <span class="preprocessor">#define OSCL_CLEANUP_BASE_CLASS(T) _OSCL_CLEANUP_BASE_CLASS(T)</span> |
| 00157 <span class="preprocessor"></span> |
| 00175 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00176 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ALLOC_NEW(T_allocator, T, params) new(T_allocator.allocate(1)) T params</span> |
| 00177 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00178 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ALLOC_NEW(T_allocator, T, params) new(T_allocator.allocate_fl(1,__FILE__,__LINE__)) T params</span> |
| 00179 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00180"></a><a class="code" href="group__osclmemory.html#a36">00180</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ALLOC_NEW(T_allocator, T, params) new(T_allocator.allocate(1)) T params</span> |
| 00181 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00182 <span class="preprocessor"></span> |
| 00204 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00205 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_ALLOC_NEW(T_ptr,T_allocator,T,params) _OSCL_TRAP_NEW(T_allocator.allocate(1),T_allocator.deallocate,T_ptr,T,params)</span> |
| 00206 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00207 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_ALLOC_NEW(T_ptr,T_allocator,T,params) _OSCL_TRAP_NEW(T_allocator.allocate_fl(1,__FILE__,__LINE__),T_allocator.deallocate,T_ptr,T,params)</span> |
| 00208 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00209"></a><a class="code" href="group__osclmemory.html#a37">00209</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_ALLOC_NEW(T_ptr,T_allocator,T,params) _OSCL_TRAP_NEW(T_allocator.allocate(1),T_allocator.deallocate,T_ptr,T,params)</span> |
| 00210 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00211 <span class="preprocessor"></span> |
| <a name="l00221"></a><a class="code" href="group__osclmemory.html#a38">00221</a> <span class="preprocessor">#define OSCL_ALLOC_DELETE(ptr, T_allocator, T) \</span> |
| 00222 <span class="preprocessor"> {\</span> |
| 00223 <span class="preprocessor"> ptr->~T();\</span> |
| 00224 <span class="preprocessor"> T_allocator.deallocate(ptr);\</span> |
| 00225 <span class="preprocessor"> }</span> |
| 00226 <span class="preprocessor"></span> |
| 00227 |
| 00232 <span class="comment">//These are for internal use but need to be visible since they're used</span> |
| 00233 <span class="comment">//in macros.</span> |
| 00234 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00235 <span class="preprocessor"></span>OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a18">_oscl_audit_malloc</a>(size_t , <a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> & , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0); |
| 00236 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a19">_oscl_audit_calloc</a>(size_t , size_t, <a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> & , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0); |
| 00237 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a20">_oscl_audit_realloc</a>(<span class="keywordtype">void</span>*, size_t , <a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> & , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0); |
| 00238 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a21">_oscl_audit_new</a>(size_t , <a class="code" href="classOsclAuditCB.html">OsclAuditCB</a> & , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0) ; |
| 00239 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a22">_oscl_default_audit_malloc</a>(size_t , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0); |
| 00240 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a23">_oscl_default_audit_calloc</a>(size_t , size_t, <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0); |
| 00241 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a24">_oscl_default_audit_realloc</a>(<span class="keywordtype">void</span>*, size_t , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0); |
| 00242 OSCL_IMPORT_REF <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(size_t , <span class="keyword">const</span> <span class="keywordtype">char</span> * f = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> l = 0) ; |
| 00243 OSCL_IMPORT_REF <span class="keywordtype">void</span> <a class="code" href="group__osclmemory.html#a26">_oscl_audit_free</a>(<span class="keywordtype">void</span> *); |
| 00244 <span class="preprocessor">#else</span> |
| 00245 <span class="preprocessor"></span>OSCL_IMPORT_REF <span class="keywordtype">void</span>* _oscl_default_new(size_t nBytes); |
| 00246 <span class="preprocessor">#endif//OSCL_BYPASS_MEMMGT</span> |
| 00247 <span class="preprocessor"></span> |
| 00248 <span class="preprocessor">#if (OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00249 <span class="preprocessor"></span><span class="comment">//Global New operator overloaded to check native new operators called</span> |
| 00250 |
| 00251 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| <a name="l00252"></a><a class="code" href="group__osclmemory.html#a27">00252</a> <span class="preprocessor"></span><span class="keyword">inline</span> <span class="keywordtype">void</span> * <a class="code" href="oscl__mem_8h.html#a43">operator new</a>(size_t aSize, <span class="keyword">const</span> <span class="keywordtype">char</span> *aFile, <span class="keywordtype">int</span> aLine) |
| 00253 { |
| 00254 <span class="preprocessor">#if(PVMEM_INST_LEVEL>0)</span> |
| 00255 <span class="preprocessor"></span> <span class="comment">//in case NULL is passed in, record this file & line #</span> |
| 00256 <span class="keywordflow">if</span> (!aFile) |
| 00257 <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, __FILE__, __LINE__); |
| 00258 <span class="preprocessor">#endif</span> |
| 00259 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, aFile, aLine); |
| 00260 }; |
| 00261 <span class="preprocessor">#endif</span> |
| 00262 <span class="preprocessor"></span> |
| <a name="l00263"></a><a class="code" href="oscl__mem_8h.html#a43">00263</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> * <a class="code" href="oscl__mem_8h.html#a43">operator new</a>(size_t aSize) |
| 00264 { |
| 00265 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00266 <span class="preprocessor"></span><span class="preprocessor">#if(PVMEM_INST_LEVEL>0)</span> |
| 00267 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, __FILE__, __LINE__); |
| 00268 <span class="preprocessor">#else</span> |
| 00269 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize); |
| 00270 <span class="preprocessor">#endif</span> |
| 00271 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| 00272 <span class="preprocessor"></span> <span class="keywordflow">return</span> _oscl_default_new(aSize); |
| 00273 <span class="preprocessor">#endif</span> |
| 00274 <span class="preprocessor"></span>}; |
| 00275 |
| <a name="l00276"></a><a class="code" href="oscl__mem_8h.html#a44">00276</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="oscl__mem_8h.html#a44">operator delete</a>(<span class="keywordtype">void</span> *aPtr) |
| 00277 { |
| 00278 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00279 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a26">_oscl_audit_free</a>(aPtr); |
| 00280 <span class="preprocessor">#else</span> |
| 00281 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a10">_oscl_free</a>(aPtr); |
| 00282 <span class="preprocessor">#endif</span> |
| 00283 <span class="preprocessor"></span>}; |
| 00284 |
| 00285 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| <a name="l00286"></a><a class="code" href="group__osclmemory.html#a30">00286</a> <span class="preprocessor"></span><span class="keyword">inline</span> <span class="keywordtype">void</span> * <a class="code" href="group__osclmemory.html#a31">operator new[]</a>(size_t aSize, <span class="keyword">const</span> <span class="keywordtype">char</span> *aFile, <span class="keywordtype">int</span> aLine) |
| 00287 { |
| 00288 <span class="preprocessor">#if(PVMEM_INST_LEVEL>0)</span> |
| 00289 <span class="preprocessor"></span> <span class="comment">//in case NULL is passed in, record this file & line #</span> |
| 00290 <span class="keywordflow">if</span> (!aFile) |
| 00291 <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, __FILE__, __LINE__); |
| 00292 <span class="preprocessor">#endif</span> |
| 00293 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, aFile, aLine); |
| 00294 }; |
| 00295 <span class="preprocessor">#endif</span> |
| 00296 <span class="preprocessor"></span> |
| <a name="l00297"></a><a class="code" href="group__osclmemory.html#a31">00297</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> * <a class="code" href="group__osclmemory.html#a31">operator new[]</a>(size_t aSize) |
| 00298 { |
| 00299 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00300 <span class="preprocessor"></span><span class="preprocessor">#if(PVMEM_INST_LEVEL>0)</span> |
| 00301 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, __FILE__, __LINE__); |
| 00302 <span class="preprocessor">#else</span> |
| 00303 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize); |
| 00304 <span class="preprocessor">#endif</span> |
| 00305 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| 00306 <span class="preprocessor"></span> <span class="keywordflow">return</span> _oscl_default_new(aSize); |
| 00307 <span class="preprocessor">#endif</span> |
| 00308 <span class="preprocessor"></span>}; |
| 00309 |
| <a name="l00310"></a><a class="code" href="group__osclmemory.html#a32">00310</a> <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="group__osclmemory.html#a32">operator delete[]</a>(<span class="keywordtype">void</span> *aPtr) |
| 00311 { |
| 00312 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00313 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a26">_oscl_audit_free</a>(aPtr); |
| 00314 <span class="preprocessor">#else</span> |
| 00315 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a10">_oscl_free</a>(aPtr); |
| 00316 <span class="preprocessor">#endif</span> |
| 00317 <span class="preprocessor"></span>}; |
| 00318 <span class="preprocessor">#endif //OSCL_HAS_GLOBAL_NEW_DELETE</span> |
| 00319 <span class="preprocessor"></span> |
| 00331 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00332 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_MALLOC(count) _oscl_malloc(count)</span> |
| 00333 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00334 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_MALLOC(count) _oscl_default_audit_malloc(count,__FILE__,__LINE__)</span> |
| 00335 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00336"></a><a class="code" href="group__osclmemory.html#a39">00336</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_MALLOC(count) _oscl_default_audit_malloc(count)</span> |
| 00337 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00338 <span class="preprocessor"></span> |
| 00339 <span class="comment">/*</span> |
| 00340 <span class="comment">** The public oscl_malloc call has been deprecated.</span> |
| 00341 <span class="comment">** PV code should call OSCL_MALLOC.</span> |
| 00342 <span class="comment">** This macro is defined for back-compatibility.</span> |
| 00343 <span class="comment">*/</span> |
| <a name="l00344"></a><a class="code" href="group__osclmemory.html#a40">00344</a> <span class="preprocessor">#define oscl_malloc(a) OSCL_MALLOC(a)</span> |
| 00345 <span class="preprocessor"></span> |
| <a name="l00349"></a><a class="code" href="group__osclmemory.html#a41">00349</a> <span class="preprocessor">#define OSCL_DEFAULT_MALLOC(x) OSCL_MALLOC(x)</span> |
| 00350 <span class="preprocessor"></span> |
| 00362 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00363 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_MALLOC(auditCB, count) _oscl_malloc(count)</span> |
| 00364 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00365 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_MALLOC(auditCB, count) _oscl_audit_malloc(count, auditCB, __FILE__, __LINE__)</span> |
| 00366 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00367"></a><a class="code" href="group__osclmemory.html#a42">00367</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_MALLOC(auditCB, count) _oscl_audit_malloc(count, auditCB)</span> |
| 00368 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00369 <span class="preprocessor"></span> |
| 00382 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00383 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_CALLOC(num,size) _oscl_calloc(num,size)</span> |
| 00384 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00385 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_CALLOC(num,size) _oscl_default_audit_calloc(num,size,__FILE__,__LINE__)</span> |
| 00386 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00387"></a><a class="code" href="group__osclmemory.html#a43">00387</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_CALLOC(num,size) _oscl_default_audit_calloc(num,size)</span> |
| 00388 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00389 <span class="preprocessor"></span> |
| 00390 <span class="comment">/*</span> |
| 00391 <span class="comment">** The public oscl_calloc call has been deprecated.</span> |
| 00392 <span class="comment">** PV code should call OSCL_CALLOC.</span> |
| 00393 <span class="comment">** This macro is defined for back-compatibility.</span> |
| 00394 <span class="comment">*/</span> |
| <a name="l00395"></a><a class="code" href="group__osclmemory.html#a44">00395</a> <span class="preprocessor">#define oscl_calloc(a,b) OSCL_CALLOC(a,b)</span> |
| 00396 <span class="preprocessor"></span> |
| 00410 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00411 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_CALLOC(auditCB, num,size) _oscl_calloc(num,size)</span> |
| 00412 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00413 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_CALLOC(auditCB, num,size) _oscl_audit_calloc(num,size, auditCB, __FILE__, __LINE__)</span> |
| 00414 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00415"></a><a class="code" href="group__osclmemory.html#a45">00415</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_CALLOC(auditCB, num,size) _oscl_audit_calloc(num,size, auditCB)</span> |
| 00416 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00417 <span class="preprocessor"></span> |
| 00430 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00431 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_REALLOC(ptr,new_size) _oscl_realloc(ptr,new_size)</span> |
| 00432 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00433 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_REALLOC(ptr,new_size) _oscl_default_audit_realloc(ptr,new_size,__FILE__,__LINE__)</span> |
| 00434 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00435"></a><a class="code" href="group__osclmemory.html#a46">00435</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_REALLOC(ptr,new_size) _oscl_default_audit_realloc(ptr,new_size)</span> |
| 00436 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00437 <span class="preprocessor"></span> |
| 00438 <span class="comment">/*</span> |
| 00439 <span class="comment">** The public oscl_realloc call has been deprecated.</span> |
| 00440 <span class="comment">** PV code should call OSCL_REALLOC. This macro is</span> |
| 00441 <span class="comment">** defined for back-compatibility.</span> |
| 00442 <span class="comment">*/</span> |
| <a name="l00443"></a><a class="code" href="group__osclmemory.html#a47">00443</a> <span class="preprocessor">#define oscl_realloc(a,b) OSCL_REALLOC(a,b)</span> |
| 00444 <span class="preprocessor"></span> |
| 00458 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00459 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_REALLOC(auditCB, ptr,new_size) _oscl_realloc(ptr,new_size)</span> |
| 00460 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00461 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_REALLOC(auditCB, ptr,new_size) _oscl_audit_realloc(ptr,new_size, auditCB, __FILE__, __LINE__)</span> |
| 00462 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00463"></a><a class="code" href="group__osclmemory.html#a48">00463</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_REALLOC(auditCB, ptr,new_size) _oscl_audit_realloc(ptr,new_size, auditCB)</span> |
| 00464 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00465 <span class="preprocessor"></span> |
| 00471 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00472 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_FREE(ptr) _oscl_free(ptr)</span> |
| 00473 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00474"></a><a class="code" href="group__osclmemory.html#a49">00474</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_FREE(ptr) _oscl_audit_free(ptr)</span> |
| 00475 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00476 <span class="preprocessor"></span> |
| 00477 <span class="comment">/*</span> |
| 00478 <span class="comment">** The public oscl_free call has been deprecated.</span> |
| 00479 <span class="comment">** PV code should call OSCL_FREE.</span> |
| 00480 <span class="comment">** This macro is defined for back-compatibility.</span> |
| 00481 <span class="comment">*/</span> |
| <a name="l00482"></a><a class="code" href="group__osclmemory.html#a50">00482</a> <span class="preprocessor">#define oscl_free(x) OSCL_FREE(x)</span> |
| 00483 <span class="preprocessor"></span> |
| <a name="l00487"></a><a class="code" href="group__osclmemory.html#a51">00487</a> <span class="preprocessor">#define OSCL_DEFAULT_FREE(x) OSCL_FREE(x)</span> |
| 00488 <span class="preprocessor"></span> |
| 00506 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00507 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_NEW( T, params) new T params</span> |
| 00508 <span class="preprocessor"></span><span class="preprocessor">#elif!(OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00509 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_NEW( T, params) new T params</span> |
| 00510 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00511 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_NEW( T, params) new(__FILE__,__LINE__) T params</span> |
| 00512 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00513"></a><a class="code" href="group__osclmemory.html#a52">00513</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_NEW( T, params) new T params</span> |
| 00514 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00515 <span class="preprocessor"></span> |
| 00516 <span class="comment">/********************************************************</span> |
| 00517 <span class="comment"> * Macro for placement new</span> |
| 00518 <span class="comment"> *</span> |
| 00519 <span class="comment"> * @param ptr pointer to an object</span> |
| 00520 <span class="comment"> *</span> |
| 00521 <span class="comment"> * @param constructor constructor of the class for the object</span> |
| 00522 <span class="comment"> *</span> |
| 00523 <span class="comment">********************************************************/</span> |
| <a name="l00524"></a><a class="code" href="group__osclmemory.html#a53">00524</a> <span class="preprocessor">#define OSCL_PLACEMENT_NEW(ptr, constructor) new(ptr) constructor</span> |
| 00525 <span class="preprocessor"></span> |
| 00545 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00546 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_NEW(T_ptr,T,params) _OSCL_TRAP_NEW(_oscl_default_new(sizeof(T)),_oscl_free,T_ptr,T,params)</span> |
| 00547 <span class="preprocessor"></span><span class="preprocessor">#elif!(OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00548 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_NEW(T_ptr,T,params) _OSCL_TRAP_NEW(_oscl_default_audit_new(sizeof(T)),_oscl_audit_free,T_ptr,T,params)</span> |
| 00549 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00550 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_NEW(T_ptr,T,params) _OSCL_TRAP_NEW(_oscl_default_audit_new(sizeof(T),__FILE__,__LINE__),_oscl_audit_free,T_ptr,T,params)</span> |
| 00551 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00552"></a><a class="code" href="group__osclmemory.html#a54">00552</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_NEW(T_ptr,T,params) _OSCL_TRAP_NEW(_oscl_default_audit_new(sizeof(T)),_oscl_audit_free,T_ptr,T,params)</span> |
| 00553 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00554 <span class="preprocessor"></span> |
| 00555 |
| 00569 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00570 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_NEW(auditCB, T, params) new(_oscl_default_new(sizeof(T))) T params</span> |
| 00571 <span class="preprocessor"></span><span class="preprocessor">#elif!(OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00572 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_NEW(auditCB, T, params) new(_oscl_audit_new(sizeof(T),auditCB)) T params</span> |
| 00573 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00574 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_NEW(auditCB, T, params) new(_oscl_audit_new(sizeof(T),auditCB,__FILE__,__LINE__)) T params</span> |
| 00575 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00576"></a><a class="code" href="group__osclmemory.html#a55">00576</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_NEW(auditCB, T, params) new(_oscl_audit_new(sizeof(T),auditCB)) T params</span> |
| 00577 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00578 <span class="preprocessor"></span> |
| 00598 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00599 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_AUDIT_NEW(T_ptr,auditCB,T,params) _OSCL_TRAP_NEW(_oscl_default_new(sizeof(T)),_oscl_free,T_ptr,T,params)</span> |
| 00600 <span class="preprocessor"></span><span class="preprocessor">#elif!(OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00601 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_AUDIT_NEW(T_ptr,auditCB,T,params) _OSCL_TRAP_NEW(_oscl_audit_new(sizeof(T),auditCB),_oscl_audit_free,T_ptr,T,params)</span> |
| 00602 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00603 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_AUDIT_NEW(T_ptr,auditCB,T,params) _OSCL_TRAP_NEW(_oscl_audit_new(sizeof(T),auditCB,__FILE__,__LINE__),_oscl_audit_free,T_ptr,T,params)</span> |
| 00604 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00605"></a><a class="code" href="group__osclmemory.html#a56">00605</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_TRAP_AUDIT_NEW(T_ptr,auditCB,T,params) _OSCL_TRAP_NEW(_oscl_audit_new(sizeof(T),auditCB),_oscl_audit_free,T_ptr,T,params)</span> |
| 00606 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00607 <span class="preprocessor"></span> |
| <a name="l00615"></a><a class="code" href="group__osclmemory.html#a57">00615</a> <span class="preprocessor">#define OSCL_DELETE(ptr) {\</span> |
| 00616 <span class="preprocessor"> if(ptr){delete(ptr);}\</span> |
| 00617 <span class="preprocessor">}</span> |
| 00618 <span class="preprocessor"></span> |
| 00619 |
| 00643 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00644 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_ARRAY_NEW(auditCB, T, count) new(_oscl_default_new(sizeof(T)*(count))) T</span> |
| 00645 <span class="preprocessor"></span><span class="preprocessor">#elif!(OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00646 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_ARRAY_NEW(auditCB, T, count) new(_oscl_audit_new(sizeof(T)*(count),auditCB)) T</span> |
| 00647 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00648 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_ARRAY_NEW(auditCB, T, count) new(_oscl_audit_new(sizeof(T)*(count),auditCB,__FILE__,__LINE__)) T</span> |
| 00649 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00650"></a><a class="code" href="group__osclmemory.html#a58">00650</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_AUDIT_ARRAY_NEW(auditCB, T, count) new(_oscl_audit_new(sizeof(T)*(count),auditCB)) T</span> |
| 00651 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00652 <span class="preprocessor"></span> |
| 00666 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00667 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ARRAY_NEW(T, count) new T[count]</span> |
| 00668 <span class="preprocessor"></span><span class="preprocessor">#elif!(OSCL_HAS_GLOBAL_NEW_DELETE)</span> |
| 00669 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ARRAY_NEW(T, count) new T[count]</span> |
| 00670 <span class="preprocessor"></span><span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00671 <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ARRAY_NEW(T, count) new(__FILE__,__LINE__) T[count]</span> |
| 00672 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| <a name="l00673"></a><a class="code" href="group__osclmemory.html#a59">00673</a> <span class="preprocessor"></span><span class="preprocessor">#define OSCL_ARRAY_NEW(T, count) new T[count]</span> |
| 00674 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00675 <span class="preprocessor"></span> |
| <a name="l00683"></a><a class="code" href="group__osclmemory.html#a60">00683</a> <span class="preprocessor">#define OSCL_ARRAY_DELETE(ptr) delete [] ptr</span> |
| 00684 <span class="preprocessor"></span> |
| 00685 |
| 00690 <span class="preprocessor">#ifndef OSCL_DEFALLOC_H_INCLUDED</span> |
| 00691 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__defalloc_8h.html">oscl_defalloc.h</a>"</span> |
| 00692 <span class="preprocessor">#endif</span> |
| 00693 <span class="preprocessor"></span> |
| 00694 <span class="preprocessor">#ifndef OSCL_REFCOUNTER_H_INCLUDED</span> |
| 00695 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__refcounter_8h.html">oscl_refcounter.h</a>"</span> |
| 00696 <span class="preprocessor">#endif</span> |
| 00697 <span class="preprocessor"></span> |
| 00698 <span class="preprocessor">#ifndef OSCL_MEM_BASIC_FUNCTIONS_H_INCLUDED</span> |
| 00699 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__mem__basic__functions_8h.html">oscl_mem_basic_functions.h</a>"</span> |
| 00700 <span class="preprocessor">#endif</span> |
| 00701 <span class="preprocessor"></span> |
| 00702 <span class="preprocessor">#ifndef OSCL_ERROR_H_INCLUDED</span> |
| 00703 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__error_8h.html">oscl_error.h</a>"</span> |
| 00704 <span class="preprocessor">#endif</span> |
| 00705 <span class="preprocessor"></span> |
| 00706 <span class="preprocessor">#ifndef OSCL_EXCEPTION_H_INCLUDED</span> |
| 00707 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="oscl__exception_8h.html">oscl_exception.h</a>"</span> |
| 00708 <span class="preprocessor">#endif</span> |
| 00709 <span class="preprocessor"></span> |
| <a name="l00710"></a><a class="code" href="oscl__mem_8h.html#a28">00710</a> <span class="preprocessor">#define OSCL_DISABLE_WARNING_TRUNCATE_DEBUG_MESSAGE</span> |
| 00711 <span class="preprocessor"></span><span class="preprocessor">#include "<a class="code" href="osclconfig__compiler__warnings_8h.html">osclconfig_compiler_warnings.h</a>"</span> |
| 00712 |
| 00713 <span class="comment">// This macro is defined is osclconfig_compiler_warnings.h</span> |
| 00714 <span class="comment">// This GCC #pragma turns off compiler warning for the rest of this header file</span> |
| 00715 <span class="comment">// This needs to be done because with the GCC 4.1 toolchain, many compiler warnings</span> |
| 00716 <span class="comment">// are generated because Oscl_MemAllocator and Oscl_MemBasicAllocator have virtual functions, but</span> |
| 00717 <span class="comment">// no virtual destructor.</span> |
| 00718 <span class="comment">// An attempt has been made to add the virtual destructors, however, it resulted</span> |
| 00719 <span class="comment">// in run time crashes indicative of double freeing of memory.</span> |
| 00720 <span class="comment">// This is a temporary fix, until the crashes are resolved.</span> |
| 00721 <span class="comment">//</span> |
| 00722 <span class="preprocessor">#ifdef OSCL_DISABLE_GCC_WARNING_SYSTEM_HEADER</span> |
| 00723 <span class="preprocessor"></span><span class="preprocessor">#pragma GCC system_header</span> |
| 00724 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 00725 <span class="preprocessor"></span> |
| <a name="l00731"></a><a class="code" href="classOsclMemAllocator.html">00731</a> <span class="keyword">class </span><a class="code" href="classOsclMemAllocator.html">OsclMemAllocator</a> : <span class="keyword">public</span> <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> |
| 00732 { |
| 00733 <span class="keyword">public</span>: |
| <a name="l00740"></a><a class="code" href="classOsclMemAllocator.html#a0">00740</a> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclMemAllocator.html#a0">allocate</a>(<span class="keyword">const</span> uint32 n) |
| 00741 { |
| 00742 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00743 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* p = <a class="code" href="group__osclmemory.html#a7">_oscl_malloc</a>(n); |
| 00744 <span class="keywordflow">if</span> (!p) |
| 00745 <a class="code" href="classOsclError.html#d8">OsclError::LeaveIfNull</a>(p); |
| 00746 <span class="preprocessor">#if OSCL_MEM_FILL_WITH_PATTERN</span> |
| 00747 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a14">oscl_memset</a>(p, 0x55, n); |
| 00748 <span class="preprocessor">#endif</span> |
| 00749 <span class="preprocessor"></span> <span class="keywordflow">return</span> (p); |
| 00750 <span class="preprocessor">#elif (PVMEM_INST_LEVEL>0)</span> |
| 00751 <span class="preprocessor"></span> <span class="comment">//this is really a usage error-- caller should provide file & line.</span> |
| 00752 <span class="comment">//set a debug breakpoint here...</span> |
| 00753 <span class="keywordflow">return</span> <a class="code" href="classOsclMemAllocator.html#a1">allocate_fl</a>(n, __FILE__, __LINE__); |
| 00754 <span class="preprocessor">#else</span> |
| 00755 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="classOsclMemAllocator.html#a1">allocate_fl</a>(n, <a class="code" href="group__osclbase.html#a81">NULL</a>, 0); |
| 00756 <span class="preprocessor">#endif</span> |
| 00757 <span class="preprocessor"></span> } |
| 00758 |
| 00759 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| <a name="l00760"></a><a class="code" href="classOsclMemAllocator.html#a1">00760</a> <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclMemAllocator.html#a1">allocate_fl</a>(<span class="keyword">const</span> uint32 n, <span class="keyword">const</span> <span class="keywordtype">char</span> * file_name, <span class="keyword">const</span> <span class="keywordtype">int</span> line_num) |
| 00761 { |
| 00762 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* p = <a class="code" href="group__osclmemory.html#a22">_oscl_default_audit_malloc</a>(n, file_name, line_num); |
| 00763 <span class="keywordflow">if</span> (!p) |
| 00764 <a class="code" href="classOsclError.html#d8">OsclError::LeaveIfNull</a>(p); |
| 00765 <span class="preprocessor">#if OSCL_MEM_FILL_WITH_PATTERN</span> |
| 00766 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a14">oscl_memset</a>(p, 0x55, n); |
| 00767 <span class="preprocessor">#endif</span> |
| 00768 <span class="preprocessor"></span> <span class="keywordflow">return</span> (p); |
| 00769 } |
| 00770 <span class="preprocessor">#endif</span> |
| 00771 <span class="preprocessor"></span> |
| <a name="l00772"></a><a class="code" href="classOsclMemAllocator.html#a2">00772</a> <span class="keywordtype">void</span> <a class="code" href="classOsclMemAllocator.html#a2">deallocate</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) |
| 00773 { |
| 00774 <span class="keywordflow">if</span> (p) |
| 00775 <a class="code" href="group__osclmemory.html#a49">OSCL_FREE</a>(p); |
| 00776 } |
| 00777 }; |
| 00778 |
| 00779 |
| <a name="l00787"></a><a class="code" href="classOsclMemBasicAllocator.html">00787</a> <span class="keyword">class </span><a class="code" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> : <span class="keyword">public</span> <a class="code" href="classOscl__DefAlloc.html">Oscl_DefAlloc</a> |
| 00788 { |
| 00789 <span class="keyword">public</span>: |
| <a name="l00796"></a><a class="code" href="classOsclMemBasicAllocator.html#a0">00796</a> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclMemBasicAllocator.html#a0">allocate</a>(<span class="keyword">const</span> uint32 n) |
| 00797 { |
| 00798 <a class="code" href="group__osclbase.html#a25">OsclAny</a>* p = <a class="code" href="group__osclmemory.html#a7">_oscl_malloc</a>(n); |
| 00799 <a class="code" href="classOsclError.html#d8">OsclError::LeaveIfNull</a>(p); |
| 00800 <span class="preprocessor">#if OSCL_MEM_FILL_WITH_PATTERN</span> |
| 00801 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a14">oscl_memset</a>(p, 0x55, n); |
| 00802 <span class="preprocessor">#endif</span> |
| 00803 <span class="preprocessor"></span> <span class="keywordflow">return</span> (p); |
| 00804 } |
| 00805 |
| <a name="l00806"></a><a class="code" href="classOsclMemBasicAllocator.html#a1">00806</a> <span class="keywordtype">void</span> <a class="code" href="classOsclMemBasicAllocator.html#a1">deallocate</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) |
| 00807 { |
| 00808 <span class="keywordflow">if</span> (p) |
| 00809 <a class="code" href="group__osclmemory.html#a10">_oscl_free</a>(p); |
| 00810 } |
| 00811 }; |
| 00812 |
| <a name="l00817"></a><a class="code" href="classOsclMemAllocDestructDealloc.html">00817</a> <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span><a class="code" href="classOsclMemAllocDestructDealloc.html">OsclMemAllocDestructDealloc</a> : <span class="keyword">public</span> <a class="code" href="classOsclAllocDestructDealloc.html">OsclAllocDestructDealloc</a> |
| 00818 { |
| 00819 <span class="keyword">public</span>: |
| 00820 <span class="preprocessor">#if !(OSCL_BYPASS_MEMMGT)</span> |
| <a name="l00821"></a><a class="code" href="classOsclMemAllocDestructDealloc.html#a0">00821</a> <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclMemAllocDestructDealloc.html#a0">allocate_fl</a>(<span class="keyword">const</span> uint32 size, <span class="keyword">const</span> <span class="keywordtype">char</span> * file_name, <span class="keyword">const</span> <span class="keywordtype">int</span> line_num) |
| 00822 { |
| 00823 <span class="keywordflow">return</span> alloc.<a class="code" href="classOsclMemAllocator.html#a1">allocate_fl</a>(size, file_name, line_num); |
| 00824 } |
| 00825 <span class="preprocessor">#endif</span> |
| <a name="l00826"></a><a class="code" href="classOsclMemAllocDestructDealloc.html#a1">00826</a> <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclMemAllocDestructDealloc.html#a1">allocate</a>(<span class="keyword">const</span> uint32 size) |
| 00827 { |
| 00828 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00829 <span class="preprocessor"></span> <span class="keywordflow">return</span> alloc.<a class="code" href="classOsclMemAllocator.html#a0">allocate</a>(size); |
| 00830 <span class="preprocessor">#elif(PVMEM_INST_LEVEL>0)</span> |
| 00831 <span class="preprocessor"></span> <span class="comment">//this is really a usage error-- caller should provide file & line.</span> |
| 00832 <span class="comment">//set a debug breakpoint here...</span> |
| 00833 <span class="keywordflow">return</span> <a class="code" href="classOsclMemAllocDestructDealloc.html#a0">allocate_fl</a>(size, __FILE__, __LINE__); |
| 00834 <span class="preprocessor">#else</span> |
| 00835 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="classOsclMemAllocDestructDealloc.html#a0">allocate_fl</a>(size, <a class="code" href="group__osclbase.html#a81">NULL</a>, 0); |
| 00836 <span class="preprocessor">#endif</span> |
| 00837 <span class="preprocessor"></span> } |
| <a name="l00838"></a><a class="code" href="classOsclMemAllocDestructDealloc.html#a2">00838</a> <span class="keywordtype">void</span> <a class="code" href="classOsclMemAllocDestructDealloc.html#a2">deallocate</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) |
| 00839 { |
| 00840 alloc.<a class="code" href="classOsclMemAllocator.html#a2">deallocate</a>(p); |
| 00841 } |
| <a name="l00842"></a><a class="code" href="classOsclMemAllocDestructDealloc.html#a3">00842</a> <span class="keywordtype">void</span> <a class="code" href="classOsclMemAllocDestructDealloc.html#a3">destruct_and_dealloc</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) |
| 00843 { |
| 00844 T* ptr = reinterpret_cast<T*>(p); |
| 00845 ptr->~T(); |
| 00846 <a class="code" href="classOsclMemAllocDestructDealloc.html#a2">deallocate</a>(p); |
| 00847 <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(ptr); <span class="comment">// removes warning on some compilers</span> |
| 00848 } |
| 00849 <span class="keyword">private</span>: |
| 00850 <a class="code" href="classOsclMemAllocator.html">OsclMemAllocator</a> alloc; |
| 00851 }; |
| 00852 |
| <a name="l00857"></a><a class="code" href="classOsclMemBasicAllocDestructDealloc.html">00857</a> <span class="keyword">template</span> <<span class="keyword">class</span> T> <span class="keyword">class </span><a class="code" href="classOsclMemBasicAllocDestructDealloc.html">OsclMemBasicAllocDestructDealloc</a> : <span class="keyword">public</span> <a class="code" href="classOsclAllocDestructDealloc.html">OsclAllocDestructDealloc</a> |
| 00858 { |
| 00859 <span class="keyword">public</span>: |
| <a name="l00860"></a><a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a0">00860</a> <a class="code" href="group__osclbase.html#a25">OsclAny</a>* <a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a0">allocate</a>(<span class="keyword">const</span> uint32 size) |
| 00861 { |
| 00862 <span class="preprocessor">#if(OSCL_BYPASS_MEMMGT)</span> |
| 00863 <span class="preprocessor"></span> <span class="keywordflow">return</span> alloc.<a class="code" href="classOsclMemBasicAllocator.html#a0">allocate</a>(size); |
| 00864 <span class="preprocessor">#else</span> |
| 00865 <span class="preprocessor"></span> <span class="keywordflow">return</span> alloc.<a class="code" href="classOscl__DefAlloc.html#a1">allocate_fl</a>(size, <a class="code" href="group__osclbase.html#a81">NULL</a>, 0); |
| 00866 <span class="preprocessor">#endif</span> |
| 00867 <span class="preprocessor"></span> } |
| <a name="l00868"></a><a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a1">00868</a> <span class="keywordtype">void</span> <a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a1">deallocate</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) |
| 00869 { |
| 00870 alloc.<a class="code" href="classOsclMemBasicAllocator.html#a1">deallocate</a>(p); |
| 00871 } |
| <a name="l00872"></a><a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a2">00872</a> <span class="keywordtype">void</span> <a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a2">destruct_and_dealloc</a>(<a class="code" href="group__osclbase.html#a25">OsclAny</a>* p) |
| 00873 { |
| 00874 T* ptr = reinterpret_cast<T*>(p); |
| 00875 ptr->~T(); |
| 00876 <a class="code" href="classOsclMemBasicAllocDestructDealloc.html#a1">deallocate</a>(p); |
| 00877 <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(ptr); <span class="comment">// removes warning on some compilers</span> |
| 00878 } |
| 00879 <span class="keyword">private</span>: |
| 00880 <a class="code" href="classOsclMemBasicAllocator.html">OsclMemBasicAllocator</a> alloc; |
| 00881 }; |
| 00882 |
| 00887 <span class="keyword">class </span><a class="code" href="classOsclMemAudit.html">OsclMemAudit</a>; |
| <a name="l00888"></a><a class="code" href="classOsclMemGlobalAuditObject.html">00888</a> <span class="keyword">class </span><a class="code" href="classOsclMemGlobalAuditObject.html">OsclMemGlobalAuditObject</a> |
| 00889 { |
| 00890 <span class="keyword">public</span>: |
| <a name="l00891"></a><a class="code" href="classOsclMemGlobalAuditObject.html#s0">00891</a> <span class="keyword">typedef</span> <a class="code" href="classOsclMemAudit.html">OsclMemAudit</a> <a class="code" href="classOsclMemAudit.html">audit_type</a>; |
| 00896 OSCL_IMPORT_REF <span class="keyword">static</span> audit_type* <a class="code" href="classOsclMemGlobalAuditObject.html#d0">getGlobalMemAuditObject</a>(); |
| 00897 |
| 00898 <span class="keyword">private</span>: |
| 00902 <span class="keyword">static</span> <span class="keywordtype">void</span> createGlobalMemAuditObject(); |
| 00903 |
| 00907 <span class="keyword">static</span> <span class="keywordtype">void</span> deleteGlobalMemAuditObject(); |
| 00908 |
| <a name="l00909"></a><a class="code" href="classOsclMemGlobalAuditObject.html#l0">00909</a> <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classOsclMem.html">OsclMem</a>; |
| 00910 }; |
| 00911 |
| <a name="l00923"></a><a class="code" href="classHeapBase.html">00923</a> <span class="keyword">class </span><a class="code" href="classHeapBase.html">HeapBase</a> : <span class="keyword">public</span> <a class="code" href="class__OsclHeapBase.html">_OsclHeapBase</a> |
| 00924 { |
| 00925 <span class="keyword">public</span>: |
| 00926 <span class="preprocessor">#if (OSCL_HAS_HEAP_BASE_SUPPORT)</span> |
| 00927 <span class="preprocessor"></span> |
| 00928 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00929 <span class="preprocessor"></span> <span class="keyword">static</span> <span class="keywordtype">void</span>* <a class="code" href="oscl__mem_8h.html#a43">operator new</a>(size_t aSize, <span class="keyword">const</span> <span class="keywordtype">char</span> *aFile = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> aLine = 0) |
| 00930 { |
| 00931 <span class="preprocessor">#if(PVMEM_INST_LEVEL>0)</span> |
| 00932 <span class="preprocessor"></span> <span class="comment">//in case NULL is passed in, record this file & line #</span> |
| 00933 <span class="keywordflow">if</span> (!aFile) |
| 00934 <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, __FILE__, __LINE__); |
| 00935 <span class="preprocessor">#endif</span> |
| 00936 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, aFile, aLine); |
| 00937 } |
| 00938 <span class="preprocessor">#else</span> |
| 00939 <span class="preprocessor"></span> <span class="keyword">static</span> <span class="keywordtype">void</span>* <a class="code" href="oscl__mem_8h.html#a43">operator new</a>(size_t aSize) |
| 00940 { |
| 00941 <span class="keywordflow">return</span> _oscl_default_new(aSize); |
| 00942 } |
| 00943 <span class="preprocessor">#endif</span> |
| 00944 <span class="preprocessor"></span> |
| 00945 <span class="keyword">static</span> <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a31">operator new[]</a>(size_t aSize) |
| 00946 { |
| 00947 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00948 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize); |
| 00949 <span class="preprocessor">#else</span> |
| 00950 <span class="preprocessor"></span> <span class="keywordflow">return</span> _oscl_default_new(aSize); |
| 00951 <span class="preprocessor">#endif</span> |
| 00952 <span class="preprocessor"></span> } |
| 00953 |
| 00954 <span class="keyword">static</span> <span class="keywordtype">void</span>* <a class="code" href="group__osclmemory.html#a31">operator new[]</a>(size_t aSize, <span class="keyword">const</span> <span class="keywordtype">char</span> *aFile = <a class="code" href="group__osclbase.html#a81">NULL</a>, <span class="keyword">const</span> <span class="keywordtype">int</span> aLine = 0) |
| 00955 { |
| 00956 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00957 <span class="preprocessor"></span><span class="preprocessor">#if(PVMEM_INST_LEVEL>0)</span> |
| 00958 <span class="preprocessor"></span> <span class="comment">//in case NULL is passed in, record this file & line #</span> |
| 00959 <span class="keywordflow">if</span> (!aFile) |
| 00960 <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, __FILE__, __LINE__); |
| 00961 <span class="preprocessor">#endif</span> |
| 00962 <span class="preprocessor"></span> <span class="keywordflow">return</span> <a class="code" href="group__osclmemory.html#a25">_oscl_default_audit_new</a>(aSize, aFile, aLine); |
| 00963 <span class="preprocessor">#else</span> |
| 00964 <span class="preprocessor"></span> <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(aFile); |
| 00965 <a class="code" href="group__osclbase.html#a89">OSCL_UNUSED_ARG</a>(aLine); |
| 00966 <span class="keywordflow">return</span> _oscl_default_new(aSize); |
| 00967 <span class="preprocessor">#endif</span> |
| 00968 <span class="preprocessor"></span> } |
| 00969 |
| 00970 <span class="keyword">static</span> <span class="keywordtype">void</span>* <a class="code" href="oscl__mem_8h.html#a43">operator new</a>(size_t aSize, <span class="keywordtype">void</span> *aPtr) |
| 00971 { |
| 00972 <span class="keywordflow">return</span> aPtr; |
| 00973 } |
| 00974 |
| 00975 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="oscl__mem_8h.html#a44">operator delete</a>(<span class="keywordtype">void</span>* aPtr) |
| 00976 { |
| 00977 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00978 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a26">_oscl_audit_free</a>(aPtr); |
| 00979 <span class="preprocessor">#else</span> |
| 00980 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a10">_oscl_free</a>(aPtr); |
| 00981 <span class="preprocessor">#endif</span> |
| 00982 <span class="preprocessor"></span> } |
| 00983 |
| 00984 <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="group__osclmemory.html#a32">operator delete[]</a>(<span class="keywordtype">void</span>* aPtr) |
| 00985 { |
| 00986 <span class="preprocessor">#if(!OSCL_BYPASS_MEMMGT)</span> |
| 00987 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a26">_oscl_audit_free</a>(aPtr); |
| 00988 <span class="preprocessor">#else</span> |
| 00989 <span class="preprocessor"></span> <a class="code" href="group__osclmemory.html#a10">_oscl_free</a>(aPtr); |
| 00990 <span class="preprocessor">#endif</span> |
| 00991 <span class="preprocessor"></span> } |
| 00992 <span class="preprocessor">#endif //OSCL_HAS_HEAP_BASE_SUPPORT</span> |
| <a name="l00993"></a><a class="code" href="classHeapBase.html#a0">00993</a> <span class="preprocessor"></span> <a class="code" href="classHeapBase.html#a0">HeapBase</a>() {}; |
| <a name="l00994"></a><a class="code" href="classHeapBase.html#a1">00994</a> <span class="keyword">virtual</span> <a class="code" href="classHeapBase.html#a1">~HeapBase</a>() {}; |
| 00995 }; |
| 00996 |
| <a name="l01013"></a><a class="code" href="group__osclmemory.html#a61">01013</a> <span class="preprocessor">#define _OSCL_TRAP_NEW(exp,freeFunc,T_ptr,T,params)\</span> |
| 01014 <span class="preprocessor">{\</span> |
| 01015 <span class="preprocessor"> int32 __err;\</span> |
| 01016 <span class="preprocessor"> OsclAny*__ptr=exp;\</span> |
| 01017 <span class="preprocessor"> OSCL_TRY(__err,T_ptr=new(__ptr) T params;);\</span> |
| 01018 <span class="preprocessor"> if(__err){\</span> |
| 01019 <span class="preprocessor"> freeFunc(__ptr);\</span> |
| 01020 <span class="preprocessor"> T_ptr=NULL;\</span> |
| 01021 <span class="preprocessor"> OsclError::Leave(__err);\</span> |
| 01022 <span class="preprocessor"> }\</span> |
| 01023 <span class="preprocessor">}</span> |
| 01024 <span class="preprocessor"></span> |
| 01032 <span class="preprocessor">#ifdef PVERROR_IMP_CPP_EXCEPTIONS</span> |
| 01033 <span class="preprocessor"></span><span class="comment">//when using C++ exceptions, base class cleanup is automatic</span> |
| 01034 <span class="preprocessor">#define _OSCL_CLEANUP_BASE_CLASS(T)</span> |
| 01035 <span class="preprocessor"></span><span class="preprocessor">#else</span> |
| 01036 <span class="preprocessor"></span><span class="comment">//otherwise the destructor needs to be called explicitly.</span> |
| <a name="l01037"></a><a class="code" href="group__osclmemory.html#a62">01037</a> <span class="preprocessor">#define _OSCL_CLEANUP_BASE_CLASS(T) this->T::~T()</span> |
| 01038 <span class="preprocessor"></span><span class="preprocessor">#endif</span> |
| 01039 <span class="preprocessor"></span> |
| 01040 |
| 01044 <span class="preprocessor">#if (!OSCL_DISABLE_INLINES)</span> |
| 01045 <span class="preprocessor"></span><span class="preprocessor">#include "oscl_mem.inl"</span> |
| 01046 <span class="preprocessor">#endif</span> |
| 01047 <span class="preprocessor"></span> |
| 01048 <span class="preprocessor">#endif // OSCL_MEM_H_INCLUDED</span> |
| 01049 <span class="preprocessor"></span> |
| 01050 |
| 01051 |
| </pre></div><hr size="1"><img src="pvlogo_small.jpg"><address style="align: right;"><small>OSCL API</small> |
| <address style="align: left;"><small>Posting Version: OPENCORE_20090310 </small> |
| </small></address> |
| </body> |
| </html> |