7#include "core/fxcrt/fx_memory.h"
14#include "build/build_config.h"
15#include "third_party/base/debug/alias.h"
22 return pdfium::internal::Alloc(byte_size, 1);
26 return pdfium::internal::Calloc(num_elems, byte_size);
30 return pdfium::internal::Realloc(pointer, new_size, 1);
40 static int make_this_function_aliased = 0xbd;
41 pdfium::base::debug::Alias(&make_this_function_aliased);
45 constexpr DWORD kOomExceptionCode = 0xe0000008;
46 ULONG_PTR exception_args[] = {size};
47 ::RaiseException(kOomExceptionCode, EXCEPTION_NONCONTINUABLE,
48 std::size(exception_args), exception_args);
57void*
AllocOrDie(size_t num_members, size_t member_size) {
58 void* result = Alloc(num_members, member_size);
66 if (w >= std::numeric_limits<size_t>::max() / h)
69 return AllocOrDie(w * h, member_size);
72 void* result = Calloc(num_members, member_size);
80 if (w >= std::numeric_limits<size_t>::max() / h)
83 return CallocOrDie(w * h, member_size);
86void*
ReallocOrDie(
void* ptr, size_t num_members, size_t member_size) {
87 void* result = Realloc(ptr, num_members, member_size);
95 void* result = StringAlloc(num_members, member_size);
NOINLINE void FX_OutOfMemoryTerminate(size_t size)
void * FXMEM_DefaultAlloc(size_t byte_size)
void * FXMEM_DefaultCalloc(size_t num_elems, size_t byte_size)
void * FXMEM_DefaultRealloc(void *pointer, size_t new_size)
void FXMEM_DefaultFree(void *pointer)
void * CallocOrDie2D(size_t w, size_t h, size_t member_size)
void * AllocOrDie2D(size_t w, size_t h, size_t member_size)
void * StringAllocOrDie(size_t num_members, size_t member_size)
void * ReallocOrDie(void *ptr, size_t num_members, size_t member_size)
void * AllocOrDie(size_t num_members, size_t member_size)
void * CallocOrDie(size_t num_members, size_t member_size)