src/share/vm/memory/allocation.inline.hpp

changeset 5249
ce9ecec70f99
parent 5103
f9be75d21404
child 5255
a837fa3d3f86
     1.1 --- a/src/share/vm/memory/allocation.inline.hpp	Thu May 16 11:44:33 2013 +0100
     1.2 +++ b/src/share/vm/memory/allocation.inline.hpp	Thu May 23 12:44:18 2013 +0100
     1.3 @@ -86,30 +86,39 @@
     1.4  
     1.5  template <MEMFLAGS F> void* CHeapObj<F>::operator new(size_t size,
     1.6        address caller_pc){
     1.7 +    void* p = (void*)AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
     1.8  #ifdef ASSERT
     1.9 -    void* p = (void*)AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
    1.10      if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
    1.11 +#endif
    1.12      return p;
    1.13 -#else
    1.14 -    return (void *) AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
    1.15 -#endif
    1.16    }
    1.17  
    1.18  template <MEMFLAGS F> void* CHeapObj<F>::operator new (size_t size,
    1.19    const std::nothrow_t&  nothrow_constant, address caller_pc) {
    1.20 -#ifdef ASSERT
    1.21    void* p = (void*)AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC),
    1.22        AllocFailStrategy::RETURN_NULL);
    1.23 +#ifdef ASSERT
    1.24      if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
    1.25 +#endif
    1.26      return p;
    1.27 -#else
    1.28 -  return (void *) AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC),
    1.29 -      AllocFailStrategy::RETURN_NULL);
    1.30 -#endif
    1.31 +}
    1.32 +
    1.33 +template <MEMFLAGS F> void* CHeapObj<F>::operator new [](size_t size,
    1.34 +      address caller_pc){
    1.35 +    return CHeapObj<F>::operator new(size, caller_pc);
    1.36 +}
    1.37 +
    1.38 +template <MEMFLAGS F> void* CHeapObj<F>::operator new [](size_t size,
    1.39 +  const std::nothrow_t&  nothrow_constant, address caller_pc) {
    1.40 +    return CHeapObj<F>::operator new(size, nothrow_constant, caller_pc);
    1.41  }
    1.42  
    1.43  template <MEMFLAGS F> void CHeapObj<F>::operator delete(void* p){
    1.44 -   FreeHeap(p, F);
    1.45 +    FreeHeap(p, F);
    1.46 +}
    1.47 +
    1.48 +template <MEMFLAGS F> void CHeapObj<F>::operator delete [](void* p){
    1.49 +    FreeHeap(p, F);
    1.50  }
    1.51  
    1.52  template <class E, MEMFLAGS F>

mercurial