< prev index next >
src/hotspot/share/memory/allocation.cpp
Print this page
*** 35,44 ****
--- 35,87 ----
#include "runtime/task.hpp"
#include "runtime/threadCritical.hpp"
#include "services/memTracker.hpp"
#include "utilities/ostream.hpp"
+ // allocate using malloc; will fail if no memory available
+ char* AllocateHeap(size_t size,
+ MEMFLAGS flags,
+ const NativeCallStack& stack,
+ AllocFailType alloc_failmode) {
+ char* p = (char*) os::malloc(size, flags, stack);
+ if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) {
+ vm_exit_out_of_memory(size, OOM_MALLOC_ERROR, "AllocateHeap");
+ }
+ return p;
+ }
+
+ char* AllocateHeap(size_t size,
+ MEMFLAGS flags) {
+ return AllocateHeap(size, flags, CALLER_PC);
+ }
+ char* AllocateHeap(size_t size,
+ MEMFLAGS flags,
+ const std::nothrow_t& nothrow_constant) {
+ return AllocateHeap(size, flags, CALLER_PC, AllocFailStrategy::RETURN_NULL);
+ }
+ char* AllocateHeap(size_t size,
+ MEMFLAGS flags,
+ const std::nothrow_t& nothrow_constant,
+ const NativeCallStack& stack) {
+ return AllocateHeap(size, flags, stack, AllocFailStrategy::RETURN_NULL);
+ }
+
+ char* ReallocateHeap(char *old,
+ size_t size,
+ MEMFLAGS flag,
+ AllocFailType alloc_failmode) {
+ char* p = (char*) os::realloc(old, size, flag, CALLER_PC);
+ if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) {
+ vm_exit_out_of_memory(size, OOM_MALLOC_ERROR, "ReallocateHeap");
+ }
+ return p;
+ }
+
+ void FreeHeap(void* p) {
+ os::free(p);
+ }
+
void* MetaspaceObj::_shared_metaspace_base = NULL;
void* MetaspaceObj::_shared_metaspace_top = NULL;
void* StackObj::operator new(size_t size) throw() { ShouldNotCallThis(); return 0; }
void StackObj::operator delete(void* p) { ShouldNotCallThis(); }
< prev index next >