Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1367)

Side by Side Diff: core/fpdfapi/fpdf_font/fpdf_font_cid.cpp

Issue 2119013002: Change class member variables in raw pointer type into unique_ptr (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: address comments Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fpdfapi/fpdf_font/font_int.h ('k') | core/fpdfapi/fpdf_font/include/cpdf_font.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 "core/fpdfapi/fpdf_font/font_int.h" 7 #include "core/fpdfapi/fpdf_font/font_int.h"
8 8
9 #include "core/fpdfapi/fpdf_cmaps/cmap_int.h" 9 #include "core/fpdfapi/fpdf_cmaps/cmap_int.h"
10 #include "core/fpdfapi/fpdf_font/ttgsubtable.h" 10 #include "core/fpdfapi/fpdf_font/ttgsubtable.h"
(...skipping 494 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 CPDF_CMap::CPDF_CMap() { 505 CPDF_CMap::CPDF_CMap() {
506 m_Charset = CIDSET_UNKNOWN; 506 m_Charset = CIDSET_UNKNOWN;
507 m_Coding = CIDCODING_UNKNOWN; 507 m_Coding = CIDCODING_UNKNOWN;
508 m_CodingScheme = TwoBytes; 508 m_CodingScheme = TwoBytes;
509 m_bVertical = 0; 509 m_bVertical = 0;
510 m_bLoaded = FALSE; 510 m_bLoaded = FALSE;
511 m_pMapping = nullptr; 511 m_pMapping = nullptr;
512 m_pLeadingBytes = nullptr; 512 m_pLeadingBytes = nullptr;
513 m_pAddMapping = nullptr; 513 m_pAddMapping = nullptr;
514 m_pEmbedMap = nullptr; 514 m_pEmbedMap = nullptr;
515 m_pUseMap = nullptr;
516 m_nCodeRanges = 0; 515 m_nCodeRanges = 0;
517 } 516 }
518 CPDF_CMap::~CPDF_CMap() { 517 CPDF_CMap::~CPDF_CMap() {
519 FX_Free(m_pMapping); 518 FX_Free(m_pMapping);
520 FX_Free(m_pAddMapping); 519 FX_Free(m_pAddMapping);
521 FX_Free(m_pLeadingBytes); 520 FX_Free(m_pLeadingBytes);
522 delete m_pUseMap;
523 } 521 }
524 void CPDF_CMap::Release() { 522 void CPDF_CMap::Release() {
525 if (m_PredefinedCMap.IsEmpty()) { 523 if (m_PredefinedCMap.IsEmpty()) {
526 delete this; 524 delete this;
527 } 525 }
528 } 526 }
529 527
530 FX_BOOL CPDF_CMap::IsLoaded() const { 528 FX_BOOL CPDF_CMap::IsLoaded() const {
531 return m_bLoaded; 529 return m_bLoaded;
532 } 530 }
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
609 if (m_pEmbedMap) { 607 if (m_pEmbedMap) {
610 return FPDFAPI_CIDFromCharCode(m_pEmbedMap, charcode); 608 return FPDFAPI_CIDFromCharCode(m_pEmbedMap, charcode);
611 } 609 }
612 if (!m_pMapping) { 610 if (!m_pMapping) {
613 return (uint16_t)charcode; 611 return (uint16_t)charcode;
614 } 612 }
615 if (charcode >> 16) { 613 if (charcode >> 16) {
616 if (m_pAddMapping) { 614 if (m_pAddMapping) {
617 void* found = FXSYS_bsearch(&charcode, m_pAddMapping + 4, 615 void* found = FXSYS_bsearch(&charcode, m_pAddMapping + 4,
618 *(uint32_t*)m_pAddMapping, 8, CompareCID); 616 *(uint32_t*)m_pAddMapping, 8, CompareCID);
619 if (!found) { 617 if (!found)
620 if (m_pUseMap) {
621 return m_pUseMap->CIDFromCharCode(charcode);
622 }
623 return 0; 618 return 0;
624 }
625 return (uint16_t)(((uint32_t*)found)[1] % 65536 + charcode - 619 return (uint16_t)(((uint32_t*)found)[1] % 65536 + charcode -
626 *(uint32_t*)found); 620 *(uint32_t*)found);
627 } 621 }
628 if (m_pUseMap)
629 return m_pUseMap->CIDFromCharCode(charcode);
630 return 0; 622 return 0;
631 } 623 }
632 uint32_t CID = m_pMapping[charcode]; 624 return m_pMapping[charcode];
633 if (!CID && m_pUseMap)
634 return m_pUseMap->CIDFromCharCode(charcode);
635 return (uint16_t)CID;
636 } 625 }
637 626
638 uint32_t CPDF_CMap::GetNextChar(const FX_CHAR* pString, 627 uint32_t CPDF_CMap::GetNextChar(const FX_CHAR* pString,
639 int nStrLen, 628 int nStrLen,
640 int& offset) const { 629 int& offset) const {
641 switch (m_CodingScheme) { 630 switch (m_CodingScheme) {
642 case OneByte: 631 case OneByte:
643 return ((uint8_t*)pString)[offset++]; 632 return ((uint8_t*)pString)[offset++];
644 case TwoBytes: 633 case TwoBytes:
645 offset += 2; 634 offset += 2;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 m_EmbeddedCount = pFontGlobals->m_EmbeddedToUnicodes[charset].m_Count; 791 m_EmbeddedCount = pFontGlobals->m_EmbeddedToUnicodes[charset].m_Count;
803 } 792 }
804 793
805 CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering) { 794 CIDSet CharsetFromOrdering(const CFX_ByteStringC& ordering) {
806 for (size_t charset = 1; charset < FX_ArraySize(g_CharsetNames); ++charset) { 795 for (size_t charset = 1; charset < FX_ArraySize(g_CharsetNames); ++charset) {
807 if (ordering == g_CharsetNames[charset]) 796 if (ordering == g_CharsetNames[charset])
808 return CIDSetFromSizeT(charset); 797 return CIDSetFromSizeT(charset);
809 } 798 }
810 return CIDSET_UNKNOWN; 799 return CIDSET_UNKNOWN;
811 } 800 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_font/font_int.h ('k') | core/fpdfapi/fpdf_font/include/cpdf_font.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698