Index: xfa/fgas/crt/fgas_memory.cpp |
diff --git a/xfa/fgas/crt/fgas_memory.cpp b/xfa/fgas/crt/fgas_memory.cpp |
index d218f42aa418834329a285d311daf080f18a9e91..e587f5a5b0d49d1f3196773676857bf197086255 100644 |
--- a/xfa/fgas/crt/fgas_memory.cpp |
+++ b/xfa/fgas/crt/fgas_memory.cpp |
@@ -27,10 +27,11 @@ class CFX_DefStore : public IFX_MemoryAllocator, public CFX_Target { |
} // namespace |
-IFX_MemoryAllocator* IFX_MemoryAllocator::Create(FX_ALLOCTYPE eType, |
- size_t chunkSize, |
- size_t blockSize) { |
- return new CFX_DefStore(); |
+std::unique_ptr<IFX_MemoryAllocator> IFX_MemoryAllocator::Create( |
+ FX_ALLOCTYPE eType, |
+ size_t chunkSize, |
+ size_t blockSize) { |
+ return std::unique_ptr<IFX_MemoryAllocator>(new CFX_DefStore()); |
} |
#else // MEMORY_TOOL_REPLACES_ALLOCATOR |
@@ -88,17 +89,19 @@ class CFX_FixedStore : public IFX_MemoryAllocator, public CFX_Target { |
#define FX_4BYTEALIGN(size) (((size) + 3) & ~3) |
-IFX_MemoryAllocator* IFX_MemoryAllocator::Create(FX_ALLOCTYPE eType, |
- size_t chunkSize, |
- size_t blockSize) { |
+std::unique_ptr<IFX_MemoryAllocator> IFX_MemoryAllocator::Create( |
+ FX_ALLOCTYPE eType, |
+ size_t chunkSize, |
+ size_t blockSize) { |
switch (eType) { |
case FX_ALLOCTYPE_Static: |
- return new CFX_StaticStore(chunkSize); |
+ return std::unique_ptr<IFX_MemoryAllocator>( |
+ new CFX_StaticStore(chunkSize)); |
case FX_ALLOCTYPE_Fixed: |
- return new CFX_FixedStore(blockSize, chunkSize); |
+ return std::unique_ptr<IFX_MemoryAllocator>(new CFX_FixedStore(blockSize, chunkSize); |
default: |
ASSERT(0); |
- return nullptr; |
+ return std::unique_ptr<IFX_MemoryAllocator>(); |
} |
} |