예제 #1
0
template <MEMFLAGS F> void* CHeapObj<F>::operator new(size_t size,
      address caller_pc){
    void* p = (void*)AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
#ifdef ASSERT
    if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
#endif
    return p;
  }
inline char* ReallocateHeap(char *old, size_t size, MEMFLAGS flags) {
  char* p = (char*) os::realloc(old, size, flags, CURRENT_PC);
  #ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, "ReallocateHeap", p);
  #endif
  if (p == NULL) vm_exit_out_of_memory(size, "ReallocateHeap");
  return p;
}
예제 #3
0
template <MEMFLAGS F> void* CHeapObj<F>::operator new(size_t size,
      const NativeCallStack& stack) throw() {
  void* p = (void*)AllocateHeap(size, F, stack);
#ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
#endif
  return p;
}
예제 #4
0
template <MEMFLAGS F> void* CHeapObj<F>::operator new (size_t size,
  const std::nothrow_t&  nothrow_constant, address caller_pc) {
  void* p = (void*)AllocateHeap(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC),
      AllocFailStrategy::RETURN_NULL);
#ifdef ASSERT
    if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
#endif
    return p;
}
예제 #5
0
inline char* ReallocateHeap(char *old, size_t size, MEMFLAGS flags,
    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
  char* p = (char*) os::realloc(old, size, flags, CURRENT_PC);
  #ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, "ReallocateHeap", p);
  #endif
  if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) vm_exit_out_of_memory(size, "ReallocateHeap");
  return p;
}
예제 #6
0
template <MEMFLAGS F> void* CHeapObj<F>::operator new (size_t size,
  const std::nothrow_t&  nothrow_constant, const NativeCallStack& stack) throw() {
  void* p = (void*)AllocateHeap(size, F, stack,
      AllocFailStrategy::RETURN_NULL);
#ifdef ASSERT
    if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
#endif
    return p;
  }
예제 #7
0
inline char* ReallocateHeap(char *old, size_t size, const char* name = NULL) {
  char* p = (char*) os::realloc(old,size);
  #ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, name, p);
  #else
  Unused_Variable(name);
  #endif
  if (p == NULL) vm_exit_out_of_memory(size, name);
  return p;
}
template <MEMFLAGS F> void* CHeapObj<F>::operator new (size_t size,
  const std::nothrow_t&  nothrow_constant, address caller_pc) {
#ifdef ASSERT
    void* p = os::malloc(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
    if (PrintMallocFree) trace_heap_malloc(size, "CHeapObj-new", p);
    return p;
#else
    return os::malloc(size, F, (caller_pc != 0 ? caller_pc : CALLER_PC));
#endif
}
// allocate using malloc; will fail if no memory available
inline char* AllocateHeap(size_t size, MEMFLAGS flags, address pc = 0) {
  if (pc == 0) {
    pc = CURRENT_PC;
  }
  char* p = (char*) os::malloc(size, flags, pc);
  #ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, "AllocateHeap", p);
  #endif
  if (p == NULL) vm_exit_out_of_memory(size, "AllocateHeap");
  return p;
}
예제 #10
0
// allocate using malloc; will fail if no memory available
inline char* AllocateHeap(size_t size, MEMFLAGS flags, address pc = 0,
    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
  if (pc == 0) {
    pc = CURRENT_PC;
  }
  char* p = (char*) os::malloc(size, flags, pc);
  #ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, "AllocateHeap", p);
  #endif
  if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) vm_exit_out_of_memory(size, "AllocateHeap");
  return p;
}
예제 #11
0
// allocate using malloc; will fail if no memory available
inline char* AllocateHeap(size_t size, MEMFLAGS flags,
    const NativeCallStack& stack,
    AllocFailType alloc_failmode = AllocFailStrategy::EXIT_OOM) {
  char* p = (char*) os::malloc(size, flags, stack);
  #ifdef ASSERT
  if (PrintMallocFree) trace_heap_malloc(size, "AllocateHeap", p);
  #endif
  if (p == NULL && alloc_failmode == AllocFailStrategy::EXIT_OOM) {
    vm_exit_out_of_memory(size, OOM_MALLOC_ERROR, "AllocateHeap");
  }
  return p;
}