summaryrefslogtreecommitdiff
path: root/xfa/fgas/crt/fgas_utils.cpp
diff options
context:
space:
mode:
authordan sinclair <dsinclair@chromium.org>2017-03-13 13:26:51 -0400
committerChromium commit bot <commit-bot@chromium.org>2017-03-13 17:48:39 +0000
commitd8f45b3c9f6bc16c74e17b7269269193b0d94f18 (patch)
tree9306edc54baac391497533757fe0e952363495c2 /xfa/fgas/crt/fgas_utils.cpp
parent6fcea1f851880b452bbaaeeeefefa48b49cab331 (diff)
downloadpdfium-d8f45b3c9f6bc16c74e17b7269269193b0d94f18.tar.xz
Replace discrete array with a map.
There is one use of the discrete array, GFGAS_GEFont. This CL replaces that usage with a std::map and removes the fgas_util classes. Change-Id: Ic45812168e9487ebac08abaa131c58080a949d69 Reviewed-on: https://pdfium-review.googlesource.com/2953 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'xfa/fgas/crt/fgas_utils.cpp')
-rw-r--r--xfa/fgas/crt/fgas_utils.cpp77
1 files changed, 0 insertions, 77 deletions
diff --git a/xfa/fgas/crt/fgas_utils.cpp b/xfa/fgas/crt/fgas_utils.cpp
deleted file mode 100644
index 5b7c72f6a4..0000000000
--- a/xfa/fgas/crt/fgas_utils.cpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// 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 "xfa/fgas/crt/fgas_utils.h"
-
-#include <algorithm>
-
-#include "core/fxcrt/fx_basic.h"
-
-struct FX_BASEDISCRETEARRAYDATA {
- int32_t iBlockSize;
- int32_t iChunkSize;
- int32_t iChunkCount;
- CFX_ArrayTemplate<uint8_t*> ChunkBuffer;
-};
-
-CFX_BaseDiscreteArray::CFX_BaseDiscreteArray(int32_t iChunkSize,
- int32_t iBlockSize) {
- ASSERT(iChunkSize > 0 && iBlockSize > 0);
- FX_BASEDISCRETEARRAYDATA* pData = new FX_BASEDISCRETEARRAYDATA;
- m_pData = pData;
- pData->ChunkBuffer.SetSize(16);
- pData->iChunkCount = 0;
- pData->iChunkSize = iChunkSize;
- pData->iBlockSize = iBlockSize;
-}
-CFX_BaseDiscreteArray::~CFX_BaseDiscreteArray() {
- RemoveAll();
- delete static_cast<FX_BASEDISCRETEARRAYDATA*>(m_pData);
-}
-uint8_t* CFX_BaseDiscreteArray::AddSpaceTo(int32_t index) {
- ASSERT(index > -1);
- FX_BASEDISCRETEARRAYDATA* pData = (FX_BASEDISCRETEARRAYDATA*)m_pData;
- int32_t& iChunkCount = pData->iChunkCount;
- int32_t iChunkSize = pData->iChunkSize;
- uint8_t* pChunk = nullptr;
- int32_t iChunk = index / iChunkSize;
- if (iChunk < iChunkCount) {
- pChunk = pData->ChunkBuffer.GetAt(iChunk);
- }
- if (!pChunk) {
- pChunk = FX_Alloc2D(uint8_t, iChunkSize, pData->iBlockSize);
- FXSYS_memset(pChunk, 0, iChunkSize * pData->iBlockSize);
- pData->ChunkBuffer.SetAtGrow(iChunk, pChunk);
- if (iChunkCount <= iChunk) {
- iChunkCount = iChunk + 1;
- }
- }
- return pChunk + (index % iChunkSize) * pData->iBlockSize;
-}
-uint8_t* CFX_BaseDiscreteArray::GetAt(int32_t index) const {
- ASSERT(index >= 0);
- FX_BASEDISCRETEARRAYDATA* pData = (FX_BASEDISCRETEARRAYDATA*)m_pData;
- int32_t iChunkSize = pData->iChunkSize;
- int32_t iChunk = index / iChunkSize;
- if (iChunk >= pData->iChunkCount)
- return nullptr;
-
- uint8_t* pChunk = pData->ChunkBuffer.GetAt(iChunk);
- if (!pChunk)
- return nullptr;
-
- return pChunk + (index % iChunkSize) * pData->iBlockSize;
-}
-void CFX_BaseDiscreteArray::RemoveAll() {
- FX_BASEDISCRETEARRAYDATA* pData = (FX_BASEDISCRETEARRAYDATA*)m_pData;
- CFX_ArrayTemplate<uint8_t*>& ChunkBuffer = pData->ChunkBuffer;
- int32_t& iChunkCount = pData->iChunkCount;
- for (int32_t i = 0; i < iChunkCount; i++)
- FX_Free(ChunkBuffer.GetAt(i));
-
- ChunkBuffer.RemoveAll();
- iChunkCount = 0;
-}