< prev index next >

src/hotspot/share/memory/allocation.hpp

Print this page

        

*** 152,177 **** #endif // INCLUDE_NMT class NativeCallStack; template <MEMFLAGS F> class CHeapObj ALLOCATION_SUPER_CLASS_SPEC { public: ! NOINLINE void* operator new(size_t size, const NativeCallStack& stack) throw(); ! NOINLINE void* operator new(size_t size) throw(); ! NOINLINE void* operator new (size_t size, const std::nothrow_t& nothrow_constant, ! const NativeCallStack& stack) throw(); ! NOINLINE void* operator new (size_t size, const std::nothrow_t& nothrow_constant) ! throw(); ! NOINLINE void* operator new [](size_t size, const NativeCallStack& stack) throw(); ! NOINLINE void* operator new [](size_t size) throw(); ! NOINLINE void* operator new [](size_t size, const std::nothrow_t& nothrow_constant, ! const NativeCallStack& stack) throw(); ! NOINLINE void* operator new [](size_t size, const std::nothrow_t& nothrow_constant) ! throw(); ! void operator delete(void* p); ! void operator delete [] (void* p); }; // Base class for objects allocated on the stack only. // Calling new or delete will result in fatal error. --- 152,226 ---- #endif // INCLUDE_NMT class NativeCallStack; + char* AllocateHeap(size_t size, + MEMFLAGS flags, + const NativeCallStack& stack, + AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM); + char* AllocateHeap(size_t size, + MEMFLAGS flags); + char* AllocateHeap(size_t size, + MEMFLAGS flags, + const std::nothrow_t& nothrow_constant); + char* AllocateHeap(size_t size, + MEMFLAGS flags, + const std::nothrow_t& nothrow_constant, + const NativeCallStack& stack); + + char* ReallocateHeap(char *old, + size_t size, + MEMFLAGS flag, + AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM); + + void FreeHeap(void* p); + template <MEMFLAGS F> class CHeapObj ALLOCATION_SUPER_CLASS_SPEC { public: ! ALWAYSINLINE void* operator new(size_t size) throw() { ! return (void*)AllocateHeap(size, F); ! } ! ! ALWAYSINLINE void* operator new(size_t size, ! const NativeCallStack& stack) throw() { ! return (void*)AllocateHeap(size, F, stack); ! } ! ! ALWAYSINLINE void* operator new(size_t size, ! const std::nothrow_t& nothrow_constant, ! const NativeCallStack& stack) throw() { ! return (void*)AllocateHeap(size, F, nothrow_constant, stack); ! } ! ! ALWAYSINLINE void* operator new(size_t size, ! const std::nothrow_t& nothrow_constant) throw() { ! return (void*)AllocateHeap(size, F, nothrow_constant); ! } ! ! ALWAYSINLINE void* operator new[](size_t size) throw() { ! return (void*)AllocateHeap(size, F); ! } ! ! ALWAYSINLINE void* operator new[](size_t size, ! const NativeCallStack& stack) throw() { ! return (void*)AllocateHeap(size, F, stack); ! } ! ! ALWAYSINLINE void* operator new[](size_t size, ! const std::nothrow_t& nothrow_constant, ! const NativeCallStack& stack) throw() { ! return (void*)AllocateHeap(size, F, nothrow_constant, stack); ! } ! ! ALWAYSINLINE void* operator new[](size_t size, ! const std::nothrow_t& nothrow_constant) throw() { ! return (void*)AllocateHeap(size, F, nothrow_constant); ! } ! ! void operator delete(void* p) { FreeHeap(p); } ! void operator delete [] (void* p) { FreeHeap(p); } }; // Base class for objects allocated on the stack only. // Calling new or delete will result in fatal error.
< prev index next >