< 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 >