| Index: core/src/fxcrt/fx_basic_array.cpp
|
| diff --git a/core/src/fxcrt/fx_basic_array.cpp b/core/src/fxcrt/fx_basic_array.cpp
|
| index aae3a1fa1c5c2612a6df501e386bafbedf88d275..55d27b0a4adeeb48eb7f4363ad9f480b38af68f1 100644
|
| --- a/core/src/fxcrt/fx_basic_array.cpp
|
| +++ b/core/src/fxcrt/fx_basic_array.cpp
|
| @@ -5,9 +5,8 @@
|
| // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
|
|
|
| #include "../../include/fxcrt/fx_basic.h"
|
| -CFX_BasicArray::CFX_BasicArray(int unit_size, IFX_Allocator* pAllocator)
|
| - : m_pAllocator(pAllocator)
|
| - , m_pData(NULL)
|
| +CFX_BasicArray::CFX_BasicArray(int unit_size)
|
| + : m_pData(NULL)
|
| , m_nSize(0)
|
| , m_nMaxSize(0)
|
| , m_nGrowBy(0)
|
| @@ -20,15 +19,15 @@ CFX_BasicArray::CFX_BasicArray(int unit_size, IFX_Allocator* pAllocator)
|
| }
|
| CFX_BasicArray::~CFX_BasicArray()
|
| {
|
| - FX_Allocator_Free(m_pAllocator, m_pData);
|
| + FX_Free(m_pData);
|
| }
|
| FX_BOOL CFX_BasicArray::SetSize(int nNewSize, int nGrowBy)
|
| {
|
| if (nNewSize < 0 || nNewSize > (1 << 28) / m_nUnitSize) {
|
| if (m_pData != NULL) {
|
| - FX_Allocator_Free(m_pAllocator, m_pData);
|
| + FX_Free(m_pData);
|
| m_pData = NULL;
|
| - }
|
| + }
|
| m_nSize = m_nMaxSize = 0;
|
| return FALSE;
|
| }
|
| @@ -37,17 +36,16 @@ FX_BOOL CFX_BasicArray::SetSize(int nNewSize, int nGrowBy)
|
| }
|
| if (nNewSize == 0) {
|
| if (m_pData != NULL) {
|
| - FX_Allocator_Free(m_pAllocator, m_pData);
|
| + FX_Free(m_pData);
|
| m_pData = NULL;
|
| }
|
| m_nSize = m_nMaxSize = 0;
|
| } else if (m_pData == NULL) {
|
| - m_pData = FX_Allocator_Alloc(m_pAllocator, FX_BYTE, nNewSize * m_nUnitSize);
|
| + m_pData = FX_Alloc(FX_BYTE, nNewSize * m_nUnitSize);
|
| if (!m_pData) {
|
| m_nSize = m_nMaxSize = 0;
|
| return FALSE;
|
| }
|
| - FXSYS_memset32(m_pData, 0, nNewSize * m_nUnitSize);
|
| m_nSize = m_nMaxSize = nNewSize;
|
| } else if (nNewSize <= m_nMaxSize) {
|
| if (nNewSize > m_nSize) {
|
| @@ -66,7 +64,7 @@ FX_BOOL CFX_BasicArray::SetSize(int nNewSize, int nGrowBy)
|
| } else {
|
| nNewMax = nNewSize;
|
| }
|
| - FX_LPBYTE pNewData = FX_Allocator_Realloc(m_pAllocator, FX_BYTE, m_pData, nNewMax * m_nUnitSize);
|
| + FX_LPBYTE pNewData = FX_Realloc(FX_BYTE, m_pData, nNewMax * m_nUnitSize);
|
| if (pNewData == NULL) {
|
| return FALSE;
|
| }
|
| @@ -147,9 +145,8 @@ const void* CFX_BasicArray::GetDataPtr(int index) const
|
| }
|
| return m_pData + index * m_nUnitSize;
|
| }
|
| -CFX_BaseSegmentedArray::CFX_BaseSegmentedArray(int unit_size, int segment_units, int index_size, IFX_Allocator* pAllocator)
|
| - : m_pAllocator(pAllocator)
|
| - , m_UnitSize(unit_size)
|
| +CFX_BaseSegmentedArray::CFX_BaseSegmentedArray(int unit_size, int segment_units, int index_size)
|
| + : m_UnitSize(unit_size)
|
| , m_SegmentSize(segment_units)
|
| , m_IndexSize(index_size)
|
| , m_IndexDepth(0)
|
| @@ -168,26 +165,26 @@ CFX_BaseSegmentedArray::~CFX_BaseSegmentedArray()
|
| {
|
| RemoveAll();
|
| }
|
| -static void _ClearIndex(IFX_Allocator* pAllcator, int level, int size, void** pIndex)
|
| +static void _ClearIndex(int level, int size, void** pIndex)
|
| {
|
| if (level == 0) {
|
| - FX_Allocator_Free(pAllcator, pIndex);
|
| + FX_Free(pIndex);
|
| return;
|
| }
|
| - for (int i = 0; i < size; i ++) {
|
| + for (int i = 0; i < size; i++) {
|
| if (pIndex[i] == NULL) {
|
| continue;
|
| }
|
| - _ClearIndex(pAllcator, level - 1, size, (void**)pIndex[i]);
|
| + _ClearIndex(level - 1, size, (void**)pIndex[i]);
|
| }
|
| - FX_Allocator_Free(pAllcator, pIndex);
|
| + FX_Free(pIndex);
|
| }
|
| void CFX_BaseSegmentedArray::RemoveAll()
|
| {
|
| if (m_pIndex == NULL) {
|
| return;
|
| }
|
| - _ClearIndex(m_pAllocator, m_IndexDepth, m_IndexSize, (void**)m_pIndex);
|
| + _ClearIndex(m_IndexDepth, m_IndexSize, (void**)m_pIndex);
|
| m_pIndex = NULL;
|
| m_IndexDepth = 0;
|
| m_DataSize = 0;
|
| @@ -197,7 +194,7 @@ void* CFX_BaseSegmentedArray::Add()
|
| if (m_DataSize % m_SegmentSize) {
|
| return GetAt(m_DataSize ++);
|
| }
|
| - void* pSegment = FX_Allocator_Alloc(m_pAllocator, FX_BYTE, m_UnitSize * m_SegmentSize);
|
| + void* pSegment = FX_Alloc(FX_BYTE, m_UnitSize * m_SegmentSize);
|
| if (!pSegment) {
|
| return NULL;
|
| }
|
| @@ -207,12 +204,11 @@ void* CFX_BaseSegmentedArray::Add()
|
| return pSegment;
|
| }
|
| if (m_IndexDepth == 0) {
|
| - void** pIndex = (void**)FX_Allocator_Alloc(m_pAllocator, void*, m_IndexSize);
|
| + void** pIndex = (void**)FX_Alloc(void*, m_IndexSize);
|
| if (pIndex == NULL) {
|
| - FX_Allocator_Free(m_pAllocator, pSegment);
|
| + FX_Free(pSegment);
|
| return NULL;
|
| }
|
| - FXSYS_memset32(pIndex, 0, sizeof(void*) * m_IndexSize);
|
| pIndex[0] = m_pIndex;
|
| pIndex[1] = pSegment;
|
| m_pIndex = pIndex;
|
| @@ -233,12 +229,11 @@ void* CFX_BaseSegmentedArray::Add()
|
| tree_size *= m_IndexSize;
|
| }
|
| if (m_DataSize == tree_size * m_SegmentSize) {
|
| - void** pIndex = (void**)FX_Allocator_Alloc(m_pAllocator, void*, m_IndexSize);
|
| + void** pIndex = (void**)FX_Alloc(void*, m_IndexSize);
|
| if (pIndex == NULL) {
|
| - FX_Allocator_Free(m_pAllocator, pSegment);
|
| + FX_Free(pSegment);
|
| return NULL;
|
| }
|
| - FXSYS_memset32(pIndex, 0, sizeof(void*) * m_IndexSize);
|
| pIndex[0] = m_pIndex;
|
| m_pIndex = pIndex;
|
| m_IndexDepth ++;
|
| @@ -248,18 +243,17 @@ void* CFX_BaseSegmentedArray::Add()
|
| void** pSpot = (void**)m_pIndex;
|
| for (i = 1; i < m_IndexDepth; i ++) {
|
| if (pSpot[seg_index / tree_size] == NULL) {
|
| - pSpot[seg_index / tree_size] = (void*)FX_Allocator_Alloc(m_pAllocator, void*, m_IndexSize);
|
| + pSpot[seg_index / tree_size] = (void*)FX_Alloc(void*, m_IndexSize);
|
| if (pSpot[seg_index / tree_size] == NULL) {
|
| break;
|
| }
|
| - FXSYS_memset32(pSpot[seg_index / tree_size], 0, sizeof(void*) * m_IndexSize);
|
| }
|
| pSpot = (void**)pSpot[seg_index / tree_size];
|
| seg_index = seg_index % tree_size;
|
| tree_size /= m_IndexSize;
|
| }
|
| if (i < m_IndexDepth) {
|
| - FX_Allocator_Free(m_pAllocator, pSegment);
|
| + FX_Free(pSegment);
|
| RemoveAll();
|
| return NULL;
|
| }
|
| @@ -356,11 +350,11 @@ void CFX_BaseSegmentedArray::Delete(int index, int count)
|
| if(m_IndexDepth) {
|
| for (i = new_segs; i < old_segs; i ++) {
|
| void** pIndex = GetIndex(i);
|
| - FX_Allocator_Free(m_pAllocator, pIndex[i % m_IndexSize]);
|
| + FX_Free(pIndex[i % m_IndexSize]);
|
| pIndex[i % m_IndexSize] = NULL;
|
| }
|
| } else {
|
| - FX_Allocator_Free(m_pAllocator, m_pIndex);
|
| + FX_Free(m_pIndex);
|
| m_pIndex = NULL;
|
| }
|
| }
|
|
|