| Index: core/src/fxcrt/fx_basic_maps.cpp
 | 
| diff --git a/core/src/fxcrt/fx_basic_maps.cpp b/core/src/fxcrt/fx_basic_maps.cpp
 | 
| index a0b1788a82a0db4aede5fe32da0b1792e3acfe83..e85d35e4ac43c3751b5acaba00e6bbe6219107b1 100644
 | 
| --- a/core/src/fxcrt/fx_basic_maps.cpp
 | 
| +++ b/core/src/fxcrt/fx_basic_maps.cpp
 | 
| @@ -1,7 +1,7 @@
 | 
|  // Copyright 2014 PDFium Authors. All rights reserved.
 | 
|  // Use of this source code is governed by a BSD-style license that can be
 | 
|  // found in the LICENSE file.
 | 
| - 
 | 
| +
 | 
|  // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 | 
|  
 | 
|  #include "../../include/fxcrt/fx_ext.h"
 | 
| @@ -14,9 +14,8 @@ static void DestructElement(CFX_ByteString* pOldData)
 | 
|  {
 | 
|      pOldData->~CFX_ByteString();
 | 
|  }
 | 
| -CFX_MapPtrToPtr::CFX_MapPtrToPtr(int nBlockSize, IFX_Allocator* pAllocator)
 | 
| -    : m_pAllocator(pAllocator)
 | 
| -    , m_pHashTable(NULL)
 | 
| +CFX_MapPtrToPtr::CFX_MapPtrToPtr(int nBlockSize)
 | 
| +    : m_pHashTable(NULL)
 | 
|      , m_nHashTableSize(17)
 | 
|      , m_nCount(0)
 | 
|      , m_pFreeList(NULL)
 | 
| @@ -28,12 +27,12 @@ CFX_MapPtrToPtr::CFX_MapPtrToPtr(int nBlockSize, IFX_Allocator* pAllocator)
 | 
|  void CFX_MapPtrToPtr::RemoveAll()
 | 
|  {
 | 
|      if (m_pHashTable) {
 | 
| -        FX_Allocator_Free(m_pAllocator, m_pHashTable);
 | 
| +        FX_Free(m_pHashTable);
 | 
|          m_pHashTable = NULL;
 | 
|      }
 | 
|      m_nCount = 0;
 | 
|      m_pFreeList = NULL;
 | 
| -    m_pBlocks->FreeDataChain(m_pAllocator);
 | 
| +    m_pBlocks->FreeDataChain();
 | 
|      m_pBlocks = NULL;
 | 
|  }
 | 
|  CFX_MapPtrToPtr::~CFX_MapPtrToPtr()
 | 
| @@ -122,7 +121,7 @@ CFX_MapPtrToPtr::CAssoc*
 | 
|  CFX_MapPtrToPtr::NewAssoc()
 | 
|  {
 | 
|      if (m_pFreeList == NULL) {
 | 
| -        CFX_Plex* newBlock = CFX_Plex::Create(m_pAllocator, m_pBlocks, m_nBlockSize, sizeof(CFX_MapPtrToPtr::CAssoc));
 | 
| +        CFX_Plex* newBlock = CFX_Plex::Create(m_pBlocks, m_nBlockSize, sizeof(CFX_MapPtrToPtr::CAssoc));
 | 
|          CFX_MapPtrToPtr::CAssoc* pAssoc = (CFX_MapPtrToPtr::CAssoc*)newBlock->data();
 | 
|          pAssoc += m_nBlockSize - 1;
 | 
|          for (int i = m_nBlockSize - 1; i >= 0; i--, pAssoc--) {
 | 
| @@ -145,14 +144,11 @@ void CFX_MapPtrToPtr::InitHashTable(
 | 
|      ASSERT(m_nCount == 0);
 | 
|      ASSERT(nHashSize > 0);
 | 
|      if (m_pHashTable != NULL) {
 | 
| -        FX_Allocator_Free(m_pAllocator, m_pHashTable);
 | 
| +        FX_Free(m_pHashTable);
 | 
|          m_pHashTable = NULL;
 | 
|      }
 | 
|      if (bAllocNow) {
 | 
| -        m_pHashTable = FX_Allocator_Alloc(m_pAllocator, CAssoc*, nHashSize);
 | 
| -        if (m_pHashTable) {
 | 
| -            FXSYS_memset32(m_pHashTable, 0, sizeof(CAssoc*) * nHashSize);
 | 
| -        }
 | 
| +        m_pHashTable = FX_Alloc(CAssoc*, nHashSize);
 | 
|      }
 | 
|      m_nHashTableSize = nHashSize;
 | 
|  }
 | 
| @@ -184,9 +180,8 @@ void CFX_MapPtrToPtr::FreeAssoc(CFX_MapPtrToPtr::CAssoc* pAssoc)
 | 
|          RemoveAll();
 | 
|      }
 | 
|  }
 | 
| -CFX_MapByteStringToPtr::CFX_MapByteStringToPtr(int nBlockSize, IFX_Allocator* pAllocator)
 | 
| -    : m_pAllocator(pAllocator)
 | 
| -    , m_pHashTable(NULL)
 | 
| +CFX_MapByteStringToPtr::CFX_MapByteStringToPtr(int nBlockSize)
 | 
| +    : m_pHashTable(NULL)
 | 
|      , m_nHashTableSize(17)
 | 
|      , m_nCount(0)
 | 
|      , m_pFreeList(NULL)
 | 
| @@ -205,12 +200,12 @@ void CFX_MapByteStringToPtr::RemoveAll()
 | 
|                  DestructElement(&pAssoc->key);
 | 
|              }
 | 
|          }
 | 
| -        FX_Allocator_Free(m_pAllocator, m_pHashTable);
 | 
| +        FX_Free(m_pHashTable);
 | 
|          m_pHashTable = NULL;
 | 
|      }
 | 
|      m_nCount = 0;
 | 
|      m_pFreeList = NULL;
 | 
| -    m_pBlocks->FreeDataChain(m_pAllocator);
 | 
| +    m_pBlocks->FreeDataChain();
 | 
|      m_pBlocks = NULL;
 | 
|  }
 | 
|  CFX_MapByteStringToPtr::~CFX_MapByteStringToPtr()
 | 
| @@ -286,7 +281,7 @@ CFX_MapByteStringToPtr::CAssoc*
 | 
|  CFX_MapByteStringToPtr::NewAssoc()
 | 
|  {
 | 
|      if (m_pFreeList == NULL) {
 | 
| -        CFX_Plex* newBlock = CFX_Plex::Create(m_pAllocator, m_pBlocks, m_nBlockSize, sizeof(CFX_MapByteStringToPtr::CAssoc));
 | 
| +        CFX_Plex* newBlock = CFX_Plex::Create(m_pBlocks, m_nBlockSize, sizeof(CFX_MapByteStringToPtr::CAssoc));
 | 
|          CFX_MapByteStringToPtr::CAssoc* pAssoc = (CFX_MapByteStringToPtr::CAssoc*)newBlock->data();
 | 
|          pAssoc += m_nBlockSize - 1;
 | 
|          for (int i = m_nBlockSize - 1; i >= 0; i--, pAssoc--) {
 | 
| @@ -345,14 +340,11 @@ void CFX_MapByteStringToPtr::InitHashTable(
 | 
|      ASSERT(m_nCount == 0);
 | 
|      ASSERT(nHashSize > 0);
 | 
|      if (m_pHashTable != NULL) {
 | 
| -        FX_Allocator_Free(m_pAllocator, m_pHashTable);
 | 
| +        FX_Free(m_pHashTable);
 | 
|          m_pHashTable = NULL;
 | 
|      }
 | 
|      if (bAllocNow) {
 | 
| -        m_pHashTable = FX_Allocator_Alloc(m_pAllocator, CAssoc*, nHashSize);
 | 
| -        if (m_pHashTable) {
 | 
| -            FXSYS_memset32(m_pHashTable, 0, sizeof(CAssoc*) * nHashSize);
 | 
| -        }
 | 
| +        m_pHashTable = FX_Alloc(CAssoc*, nHashSize);
 | 
|      }
 | 
|      m_nHashTableSize = nHashSize;
 | 
|  }
 | 
| @@ -391,10 +383,10 @@ struct _CompactString {
 | 
|      FX_BYTE		m_Unused;
 | 
|      FX_LPBYTE	m_pBuffer;
 | 
|  };
 | 
| -static void _CompactStringRelease(IFX_Allocator* pAllocator, _CompactString* pCompact)
 | 
| +static void _CompactStringRelease(_CompactString* pCompact)
 | 
|  {
 | 
|      if (pCompact->m_CompactLen == 0xff) {
 | 
| -        FX_Allocator_Free(pAllocator, pCompact->m_pBuffer);
 | 
| +        FX_Free(pCompact->m_pBuffer);
 | 
|      }
 | 
|  }
 | 
|  static FX_BOOL _CompactStringSame(_CompactString* pCompact, FX_LPCBYTE pStr, int len)
 | 
| @@ -410,7 +402,7 @@ static FX_BOOL _CompactStringSame(_CompactString* pCompact, FX_LPCBYTE pStr, int
 | 
|      }
 | 
|      return FXSYS_memcmp32(pCompact->m_pBuffer, pStr, len) == 0;
 | 
|  }
 | 
| -static void _CompactStringStore(IFX_Allocator* pAllocator, _CompactString* pCompact, FX_LPCBYTE pStr, int len)
 | 
| +static void _CompactStringStore(_CompactString* pCompact, FX_LPCBYTE pStr, int len)
 | 
|  {
 | 
|      if (len < (int)sizeof(_CompactString)) {
 | 
|          pCompact->m_CompactLen = (FX_BYTE)len;
 | 
| @@ -420,7 +412,7 @@ static void _CompactStringStore(IFX_Allocator* pAllocator, _CompactString* pComp
 | 
|      pCompact->m_CompactLen = 0xff;
 | 
|      pCompact->m_LenHigh = len / 256;
 | 
|      pCompact->m_LenLow = len % 256;
 | 
| -    pCompact->m_pBuffer = FX_Allocator_Alloc(pAllocator, FX_BYTE, len);
 | 
| +    pCompact->m_pBuffer = FX_Alloc(FX_BYTE, len);
 | 
|      if (pCompact->m_pBuffer) {
 | 
|          FXSYS_memcpy32(pCompact->m_pBuffer, pStr, len);
 | 
|      }
 | 
| @@ -437,8 +429,8 @@ static CFX_ByteStringC _CompactStringGet(_CompactString* pCompact)
 | 
|  }
 | 
|  #define CMAP_ALLOC_STEP		8
 | 
|  #define CMAP_INDEX_SIZE		8
 | 
| -CFX_CMapByteStringToPtr::CFX_CMapByteStringToPtr(IFX_Allocator* pAllocator)
 | 
| -    : m_Buffer(sizeof(_CompactString) + sizeof(void*), CMAP_ALLOC_STEP, CMAP_INDEX_SIZE, pAllocator)
 | 
| +CFX_CMapByteStringToPtr::CFX_CMapByteStringToPtr()
 | 
| +    : m_Buffer(sizeof(_CompactString) + sizeof(void*), CMAP_ALLOC_STEP, CMAP_INDEX_SIZE)
 | 
|  {
 | 
|  }
 | 
|  CFX_CMapByteStringToPtr::~CFX_CMapByteStringToPtr()
 | 
| @@ -447,10 +439,9 @@ CFX_CMapByteStringToPtr::~CFX_CMapByteStringToPtr()
 | 
|  }
 | 
|  void CFX_CMapByteStringToPtr::RemoveAll()
 | 
|  {
 | 
| -    IFX_Allocator* pAllocator = m_Buffer.m_pAllocator;
 | 
|      int size = m_Buffer.GetSize();
 | 
| -    for (int i = 0; i < size; i ++) {
 | 
| -        _CompactStringRelease(pAllocator, (_CompactString*)m_Buffer.GetAt(i));
 | 
| +    for (int i = 0; i < size; i++) {
 | 
| +        _CompactStringRelease((_CompactString*)m_Buffer.GetAt(i));
 | 
|      }
 | 
|      m_Buffer.RemoveAll();
 | 
|  }
 | 
| @@ -533,38 +524,36 @@ void CFX_CMapByteStringToPtr::SetAt(FX_BSTR key, void* value)
 | 
|          *(void**)(pKey + 1) = value;
 | 
|          return;
 | 
|      }
 | 
| -    IFX_Allocator* pAllocator = m_Buffer.m_pAllocator;
 | 
|      for (index = 0; index < size; index ++) {
 | 
|          _CompactString* pKey = (_CompactString*)m_Buffer.GetAt(index);
 | 
|          if (pKey->m_CompactLen) {
 | 
|              continue;
 | 
|          }
 | 
| -        _CompactStringStore(pAllocator, pKey, (FX_LPCBYTE)key, key_len);
 | 
| +        _CompactStringStore(pKey, (FX_LPCBYTE)key, key_len);
 | 
|          *(void**)(pKey + 1) = value;
 | 
|          return;
 | 
|      }
 | 
|      _CompactString* pKey = (_CompactString*)m_Buffer.Add();
 | 
| -    _CompactStringStore(pAllocator, pKey, (FX_LPCBYTE)key, key_len);
 | 
| +    _CompactStringStore(pKey, (FX_LPCBYTE)key, key_len);
 | 
|      *(void**)(pKey + 1) = value;
 | 
|  }
 | 
|  void CFX_CMapByteStringToPtr::AddValue(FX_BSTR key, void* value)
 | 
|  {
 | 
|      ASSERT(value != NULL);
 | 
|      _CompactString* pKey = (_CompactString*)m_Buffer.Add();
 | 
| -    _CompactStringStore(m_Buffer.m_pAllocator, pKey, (FX_LPCBYTE)key, key.GetLength());
 | 
| +    _CompactStringStore(pKey, (FX_LPCBYTE)key, key.GetLength());
 | 
|      *(void**)(pKey + 1) = value;
 | 
|  }
 | 
|  void CFX_CMapByteStringToPtr::RemoveKey(FX_BSTR key)
 | 
|  {
 | 
|      int key_len = key.GetLength();
 | 
| -    IFX_Allocator* pAllocator = m_Buffer.m_pAllocator;
 | 
|      int size = m_Buffer.GetSize();
 | 
| -    for (int index = 0; index < size; index ++) {
 | 
| +    for (int index = 0; index < size; index++) {
 | 
|          _CompactString* pKey = (_CompactString*)m_Buffer.GetAt(index);
 | 
|          if (!_CompactStringSame(pKey, (FX_LPCBYTE)key, key_len)) {
 | 
|              continue;
 | 
|          }
 | 
| -        _CompactStringRelease(pAllocator, pKey);
 | 
| +        _CompactStringRelease(pKey);
 | 
|          pKey->m_CompactLen = 0xfe;
 | 
|          return;
 | 
|      }
 | 
| 
 |