| OLD | NEW |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #include "xfa/fee/fde_txtedtbuf.h" | 7 #include "xfa/fee/fde_txtedtbuf.h" |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 | 10 |
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 363 ASSERT(nChunkSize); | 363 ASSERT(nChunkSize); |
| 364 ASSERT(nDefChunkCount); | 364 ASSERT(nDefChunkCount); |
| 365 if (m_pAllocator) { | 365 if (m_pAllocator) { |
| 366 m_pAllocator->Release(); | 366 m_pAllocator->Release(); |
| 367 m_pAllocator = NULL; | 367 m_pAllocator = NULL; |
| 368 } | 368 } |
| 369 m_Chunks.RemoveAll(); | 369 m_Chunks.RemoveAll(); |
| 370 m_nChunkSize = nChunkSize; | 370 m_nChunkSize = nChunkSize; |
| 371 int32_t nChunkLength = | 371 int32_t nChunkLength = |
| 372 sizeof(FDE_CHUNKHEADER) + (m_nChunkSize - 1) * sizeof(FX_WCHAR); | 372 sizeof(FDE_CHUNKHEADER) + (m_nChunkSize - 1) * sizeof(FX_WCHAR); |
| 373 m_pAllocator = | 373 m_pAllocator = IFX_MemoryAllocator::Create(FX_ALLOCTYPE_Fixed, nDefChunkCount, |
| 374 FX_CreateAllocator(FX_ALLOCTYPE_Fixed, nDefChunkCount, nChunkLength); | 374 nChunkLength); |
| 375 ASSERT(m_pAllocator); | |
| 376 FDE_CHUNKHEADER* lpChunkHeader = | 375 FDE_CHUNKHEADER* lpChunkHeader = |
| 377 static_cast<FDE_CHUNKHEADER*>(m_pAllocator->Alloc(nChunkLength)); | 376 static_cast<FDE_CHUNKHEADER*>(m_pAllocator->Alloc(nChunkLength)); |
| 378 ASSERT(lpChunkHeader); | 377 ASSERT(lpChunkHeader); |
| 379 lpChunkHeader->nUsed = 0; | 378 lpChunkHeader->nUsed = 0; |
| 380 m_Chunks.Add(lpChunkHeader); | 379 m_Chunks.Add(lpChunkHeader); |
| 381 m_nTotal = 0; | 380 m_nTotal = 0; |
| 382 } | 381 } |
| 383 int32_t CFDE_TxtEdtBuf::CP2Index(const FDE_CHUNKPLACE& cp) const { | 382 int32_t CFDE_TxtEdtBuf::CP2Index(const FDE_CHUNKPLACE& cp) const { |
| 384 int32_t nTotal = cp.nCharIndex; | 383 int32_t nTotal = cp.nCharIndex; |
| 385 int32_t i = 0; | 384 int32_t i = 0; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 400 int32_t nCount = m_Chunks.GetSize(); | 399 int32_t nCount = m_Chunks.GetSize(); |
| 401 for (; i < nCount; i++) { | 400 for (; i < nCount; i++) { |
| 402 nTotal += m_Chunks[i]->nUsed; | 401 nTotal += m_Chunks[i]->nUsed; |
| 403 if (nTotal > nIndex) { | 402 if (nTotal > nIndex) { |
| 404 break; | 403 break; |
| 405 } | 404 } |
| 406 } | 405 } |
| 407 cp.nChunkIndex = i; | 406 cp.nChunkIndex = i; |
| 408 cp.nCharIndex = m_Chunks[i]->nUsed - (nTotal - nIndex); | 407 cp.nCharIndex = m_Chunks[i]->nUsed - (nTotal - nIndex); |
| 409 } | 408 } |
| OLD | NEW |