diff options
author | Tom Sepez <tsepez@chromium.org> | 2015-05-15 16:30:52 -0700 |
---|---|---|
committer | Tom Sepez <tsepez@chromium.org> | 2015-05-15 16:30:52 -0700 |
commit | ed099befbb300d6f9c393cb415fdb2a68c2ef471 (patch) | |
tree | 58516c42af12b16c521b6f1fdee5b8f059a262c0 /core/src/fxcrt/fx_basic_memmgr.cpp | |
parent | 917c7fa7ccb5b7d5a9d89e717357f0ac6dfb9aa9 (diff) | |
download | pdfium-ed099befbb300d6f9c393cb415fdb2a68c2ef471.tar.xz |
Merge to XFA: Abort on OOM by default in FX_Alloc().
Original Review URL: https://codereview.chromium.org/1128043009
Original Review URL: https://codereview.chromium.org/1142463005
R=thestig@chromium.org
TBR=thestig@chromium.org
Review URL: https://codereview.chromium.org/1144683002
Diffstat (limited to 'core/src/fxcrt/fx_basic_memmgr.cpp')
-rw-r--r-- | core/src/fxcrt/fx_basic_memmgr.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/core/src/fxcrt/fx_basic_memmgr.cpp b/core/src/fxcrt/fx_basic_memmgr.cpp index 3b3211c20f..63c609daec 100644 --- a/core/src/fxcrt/fx_basic_memmgr.cpp +++ b/core/src/fxcrt/fx_basic_memmgr.cpp @@ -4,10 +4,9 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "../../include/fxcrt/fx_basic.h" -#ifdef __cplusplus -extern "C" { -#endif +#include <stdlib.h> // For abort(). +#include "../../include/fxcrt/fx_memory.h" + void* FXMEM_DefaultAlloc(size_t byte_size, int flags) { return (void*)malloc(byte_size); @@ -20,9 +19,13 @@ void FXMEM_DefaultFree(void* pointer, int flags) { free(pointer); } -#ifdef __cplusplus + +NEVER_INLINE void FX_OutOfMemoryTerminate() { + // Termimate cleanly if we can, else crash at a specific address (0xbd). + abort(); + reinterpret_cast<void(*)()>(0xbd)(); } -#endif + CFX_GrowOnlyPool::CFX_GrowOnlyPool(size_t trunk_size) { m_TrunkSize = trunk_size; |