summaryrefslogtreecommitdiff
path: root/core/src/fxcrt/fx_basic_memmgr.cpp
diff options
context:
space:
mode:
authorTom Sepez <tsepez@chromium.org>2015-05-15 16:30:52 -0700
committerTom Sepez <tsepez@chromium.org>2015-05-15 16:30:52 -0700
commited099befbb300d6f9c393cb415fdb2a68c2ef471 (patch)
tree58516c42af12b16c521b6f1fdee5b8f059a262c0 /core/src/fxcrt/fx_basic_memmgr.cpp
parent917c7fa7ccb5b7d5a9d89e717357f0ac6dfb9aa9 (diff)
downloadpdfium-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.cpp15
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;