Index: core/src/fxcrt/extension.h |
diff --git a/core/src/fxcrt/extension.h b/core/src/fxcrt/extension.h |
index c459bdcf99609e37ba11c3c2fff4dcf30808b44d..dbee7e676a2c9ab9bcc88cbbfe52302cc42f074c 100644 |
--- a/core/src/fxcrt/extension.h |
+++ b/core/src/fxcrt/extension.h |
@@ -348,7 +348,9 @@ public: |
if (m_dwFlags & FX_MEMSTREAM_Consecutive) { |
if (m_Blocks.GetSize() < 1) { |
FX_LPBYTE pBlock = FX_Alloc(FX_BYTE, FX_MAX(nInitSize, 4096)); |
- m_Blocks.Add(pBlock); |
+ if (pBlock) { |
+ m_Blocks.Add(pBlock); |
+ } |
} |
m_nGrowSize = FX_MAX(nGrowSize, 4096); |
} else if (m_Blocks.GetSize() < 1) { |
@@ -405,6 +407,9 @@ protected: |
m_Blocks.SetSize(m_Blocks.GetSize() + (FX_INT32)size); |
while (size --) { |
FX_LPBYTE pBlock = FX_Alloc(FX_BYTE, m_nGrowSize); |
+ if (!pBlock) { |
+ return FALSE; |
+ } |
m_Blocks.SetAt(iCount ++, pBlock); |
m_nTotalSize += m_nGrowSize; |
} |