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

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

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 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/fpdf_font.cpp ('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 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 return CIDSET_UNKNOWN; 188 return CIDSET_UNKNOWN;
189 } 189 }
190 return static_cast<CIDSet>(index); 190 return static_cast<CIDSet>(index);
191 } 191 }
192 192
193 CFX_ByteString CMap_GetString(const CFX_ByteStringC& word) { 193 CFX_ByteString CMap_GetString(const CFX_ByteStringC& word) {
194 return word.Mid(1, word.GetLength() - 2); 194 return word.Mid(1, word.GetLength() - 2);
195 } 195 }
196 196
197 int CompareDWORD(const void* data1, const void* data2) { 197 int CompareDWORD(const void* data1, const void* data2) {
198 return (*(FX_DWORD*)data1) - (*(FX_DWORD*)data2); 198 return (*(uint32_t*)data1) - (*(uint32_t*)data2);
199 } 199 }
200 200
201 int CompareCID(const void* key, const void* element) { 201 int CompareCID(const void* key, const void* element) {
202 if ((*(FX_DWORD*)key) < (*(FX_DWORD*)element)) { 202 if ((*(uint32_t*)key) < (*(uint32_t*)element)) {
203 return -1; 203 return -1;
204 } 204 }
205 if ((*(FX_DWORD*)key) > 205 if ((*(uint32_t*)key) >
206 (*(FX_DWORD*)element) + ((FX_DWORD*)element)[1] / 65536) { 206 (*(uint32_t*)element) + ((uint32_t*)element)[1] / 65536) {
207 return 1; 207 return 1;
208 } 208 }
209 return 0; 209 return 0;
210 } 210 }
211 211
212 int CheckCodeRange(uint8_t* codes, 212 int CheckCodeRange(uint8_t* codes,
213 int size, 213 int size,
214 CMap_CodeRange* pRanges, 214 CMap_CodeRange* pRanges,
215 int nRanges) { 215 int nRanges) {
216 int iSeg = nRanges - 1; 216 int iSeg = nRanges - 1;
(...skipping 13 matching lines...) Expand all
230 if (iChar == pRanges[iSeg].m_CharSize) 230 if (iChar == pRanges[iSeg].m_CharSize)
231 return 2; 231 return 2;
232 232
233 if (iChar) 233 if (iChar)
234 return (size == pRanges[iSeg].m_CharSize) ? 2 : 1; 234 return (size == pRanges[iSeg].m_CharSize) ? 2 : 1;
235 iSeg--; 235 iSeg--;
236 } 236 }
237 return 0; 237 return 0;
238 } 238 }
239 239
240 int GetCharSizeImpl(FX_DWORD charcode, 240 int GetCharSizeImpl(uint32_t charcode,
241 CMap_CodeRange* pRanges, 241 CMap_CodeRange* pRanges,
242 int iRangesSize) { 242 int iRangesSize) {
243 if (!iRangesSize) 243 if (!iRangesSize)
244 return 1; 244 return 1;
245 245
246 uint8_t codes[4]; 246 uint8_t codes[4];
247 codes[0] = codes[1] = 0x00; 247 codes[0] = codes[1] = 0x00;
248 codes[2] = (uint8_t)(charcode >> 8 & 0xFF); 248 codes[2] = (uint8_t)(charcode >> 8 & 0xFF);
249 codes[3] = (uint8_t)charcode; 249 codes[3] = (uint8_t)charcode;
250 int offset = 0; 250 int offset = 0;
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 m_Status = 4; 372 m_Status = 4;
373 } else if (word == "/Supplement") { 373 } else if (word == "/Supplement") {
374 m_Status = 5; 374 m_Status = 5;
375 } else if (word == "begincodespacerange") { 375 } else if (word == "begincodespacerange") {
376 m_Status = 7; 376 m_Status = 7;
377 m_CodeSeq = 0; 377 m_CodeSeq = 0;
378 } else if (word == "usecmap") { 378 } else if (word == "usecmap") {
379 } else if (m_Status == 1 || m_Status == 2) { 379 } else if (m_Status == 1 || m_Status == 2) {
380 m_CodePoints[m_CodeSeq] = CMap_GetCode(word); 380 m_CodePoints[m_CodeSeq] = CMap_GetCode(word);
381 m_CodeSeq++; 381 m_CodeSeq++;
382 FX_DWORD StartCode, EndCode; 382 uint32_t StartCode, EndCode;
383 uint16_t StartCID; 383 uint16_t StartCID;
384 if (m_Status == 1) { 384 if (m_Status == 1) {
385 if (m_CodeSeq < 2) { 385 if (m_CodeSeq < 2) {
386 return; 386 return;
387 } 387 }
388 EndCode = StartCode = m_CodePoints[0]; 388 EndCode = StartCode = m_CodePoints[0];
389 StartCID = (uint16_t)m_CodePoints[1]; 389 StartCID = (uint16_t)m_CodePoints[1];
390 } else { 390 } else {
391 if (m_CodeSeq < 3) { 391 if (m_CodeSeq < 3) {
392 return; 392 return;
393 } 393 }
394 StartCode = m_CodePoints[0]; 394 StartCode = m_CodePoints[0];
395 EndCode = m_CodePoints[1]; 395 EndCode = m_CodePoints[1];
396 StartCID = (uint16_t)m_CodePoints[2]; 396 StartCID = (uint16_t)m_CodePoints[2];
397 } 397 }
398 if (EndCode < 0x10000) { 398 if (EndCode < 0x10000) {
399 for (FX_DWORD code = StartCode; code <= EndCode; code++) { 399 for (uint32_t code = StartCode; code <= EndCode; code++) {
400 m_pCMap->m_pMapping[code] = (uint16_t)(StartCID + code - StartCode); 400 m_pCMap->m_pMapping[code] = (uint16_t)(StartCID + code - StartCode);
401 } 401 }
402 } else { 402 } else {
403 FX_DWORD buf[2]; 403 uint32_t buf[2];
404 buf[0] = StartCode; 404 buf[0] = StartCode;
405 buf[1] = ((EndCode - StartCode) << 16) + StartCID; 405 buf[1] = ((EndCode - StartCode) << 16) + StartCID;
406 m_AddMaps.AppendBlock(buf, sizeof buf); 406 m_AddMaps.AppendBlock(buf, sizeof buf);
407 } 407 }
408 m_CodeSeq = 0; 408 m_CodeSeq = 0;
409 } else if (m_Status == 3) { 409 } else if (m_Status == 3) {
410 CMap_GetString(word); 410 CMap_GetString(word);
411 m_Status = 0; 411 m_Status = 0;
412 } else if (m_Status == 4) { 412 } else if (m_Status == 4) {
413 m_pCMap->m_Charset = CharsetFromOrdering(CMap_GetString(word)); 413 m_pCMap->m_Charset = CharsetFromOrdering(CMap_GetString(word));
(...skipping 30 matching lines...) Expand all
444 m_CodeRanges.Add(range); 444 m_CodeRanges.Add(range);
445 } 445 }
446 } 446 }
447 m_CodeSeq++; 447 m_CodeSeq++;
448 } 448 }
449 } 449 }
450 m_LastWord = word; 450 m_LastWord = word;
451 } 451 }
452 452
453 // Static. 453 // Static.
454 FX_DWORD CPDF_CMapParser::CMap_GetCode(const CFX_ByteStringC& word) { 454 uint32_t CPDF_CMapParser::CMap_GetCode(const CFX_ByteStringC& word) {
455 int num = 0; 455 int num = 0;
456 if (word.GetAt(0) == '<') { 456 if (word.GetAt(0) == '<') {
457 for (int i = 1; i < word.GetLength() && std::isxdigit(word.GetAt(i)); ++i) 457 for (int i = 1; i < word.GetLength() && std::isxdigit(word.GetAt(i)); ++i)
458 num = num * 16 + FXSYS_toHexDigit(word.GetAt(i)); 458 num = num * 16 + FXSYS_toHexDigit(word.GetAt(i));
459 return num; 459 return num;
460 } 460 }
461 461
462 for (int i = 0; i < word.GetLength() && std::isdigit(word.GetAt(i)); ++i) 462 for (int i = 0; i < word.GetLength() && std::isdigit(word.GetAt(i)); ++i)
463 num = num * 10 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(word.GetAt(i))); 463 num = num * 10 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(word.GetAt(i)));
464 return num; 464 return num;
(...skipping 15 matching lines...) Expand all
480 range.m_CharSize = (i - 1) / 2; 480 range.m_CharSize = (i - 1) / 2;
481 if (range.m_CharSize > 4) 481 if (range.m_CharSize > 4)
482 return false; 482 return false;
483 483
484 for (i = 0; i < range.m_CharSize; ++i) { 484 for (i = 0; i < range.m_CharSize; ++i) {
485 uint8_t digit1 = first.GetAt(i * 2 + 1); 485 uint8_t digit1 = first.GetAt(i * 2 + 1);
486 uint8_t digit2 = first.GetAt(i * 2 + 2); 486 uint8_t digit2 = first.GetAt(i * 2 + 2);
487 range.m_Lower[i] = FXSYS_toHexDigit(digit1) * 16 + FXSYS_toHexDigit(digit2); 487 range.m_Lower[i] = FXSYS_toHexDigit(digit1) * 16 + FXSYS_toHexDigit(digit2);
488 } 488 }
489 489
490 FX_DWORD size = second.GetLength(); 490 uint32_t size = second.GetLength();
491 for (i = 0; i < range.m_CharSize; ++i) { 491 for (i = 0; i < range.m_CharSize; ++i) {
492 uint8_t digit1 = ((FX_DWORD)i * 2 + 1 < size) 492 uint8_t digit1 = ((uint32_t)i * 2 + 1 < size)
493 ? second.GetAt((FX_STRSIZE)i * 2 + 1) 493 ? second.GetAt((FX_STRSIZE)i * 2 + 1)
494 : '0'; 494 : '0';
495 uint8_t digit2 = ((FX_DWORD)i * 2 + 2 < size) 495 uint8_t digit2 = ((uint32_t)i * 2 + 2 < size)
496 ? second.GetAt((FX_STRSIZE)i * 2 + 2) 496 ? second.GetAt((FX_STRSIZE)i * 2 + 2)
497 : '0'; 497 : '0';
498 range.m_Upper[i] = FXSYS_toHexDigit(digit1) * 16 + FXSYS_toHexDigit(digit2); 498 range.m_Upper[i] = FXSYS_toHexDigit(digit1) * 16 + FXSYS_toHexDigit(digit2);
499 } 499 }
500 return true; 500 return true;
501 } 501 }
502 502
503 CPDF_CMap::CPDF_CMap() { 503 CPDF_CMap::CPDF_CMap() {
504 m_Charset = CIDSET_UNKNOWN; 504 m_Charset = CIDSET_UNKNOWN;
505 m_Coding = CIDCODING_UNKNOWN; 505 m_Coding = CIDCODING_UNKNOWN;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
548 } 548 }
549 } 549 }
550 if (!map) 550 if (!map)
551 return FALSE; 551 return FALSE;
552 552
553 m_Charset = map->m_Charset; 553 m_Charset = map->m_Charset;
554 m_Coding = map->m_Coding; 554 m_Coding = map->m_Coding;
555 m_CodingScheme = map->m_CodingScheme; 555 m_CodingScheme = map->m_CodingScheme;
556 if (m_CodingScheme == MixedTwoBytes) { 556 if (m_CodingScheme == MixedTwoBytes) {
557 m_pLeadingBytes = FX_Alloc(uint8_t, 256); 557 m_pLeadingBytes = FX_Alloc(uint8_t, 256);
558 for (FX_DWORD i = 0; i < map->m_LeadingSegCount; ++i) { 558 for (uint32_t i = 0; i < map->m_LeadingSegCount; ++i) {
559 const uint8_t* segs = map->m_LeadingSegs; 559 const uint8_t* segs = map->m_LeadingSegs;
560 for (int b = segs[i * 2]; b <= segs[i * 2 + 1]; ++b) { 560 for (int b = segs[i * 2]; b <= segs[i * 2 + 1]; ++b) {
561 m_pLeadingBytes[b] = 1; 561 m_pLeadingBytes[b] = 1;
562 } 562 }
563 } 563 }
564 } 564 }
565 FPDFAPI_FindEmbeddedCMap(pName, m_Charset, m_Coding, m_pEmbedMap); 565 FPDFAPI_FindEmbeddedCMap(pName, m_Charset, m_Coding, m_pEmbedMap);
566 if (m_pEmbedMap) { 566 if (m_pEmbedMap) {
567 m_bLoaded = TRUE; 567 m_bLoaded = TRUE;
568 return TRUE; 568 return TRUE;
569 } 569 }
570 return FALSE; 570 return FALSE;
571 } 571 }
572 FX_BOOL CPDF_CMap::LoadEmbedded(const uint8_t* pData, FX_DWORD size) { 572 FX_BOOL CPDF_CMap::LoadEmbedded(const uint8_t* pData, uint32_t size) {
573 m_pMapping = FX_Alloc(uint16_t, 65536); 573 m_pMapping = FX_Alloc(uint16_t, 65536);
574 CPDF_CMapParser parser; 574 CPDF_CMapParser parser;
575 parser.Initialize(this); 575 parser.Initialize(this);
576 CPDF_SimpleParser syntax(pData, size); 576 CPDF_SimpleParser syntax(pData, size);
577 while (1) { 577 while (1) {
578 CFX_ByteStringC word = syntax.GetWord(); 578 CFX_ByteStringC word = syntax.GetWord();
579 if (word.IsEmpty()) { 579 if (word.IsEmpty()) {
580 break; 580 break;
581 } 581 }
582 parser.ParseWord(word); 582 parser.ParseWord(word);
583 } 583 }
584 if (m_CodingScheme == MixedFourBytes && parser.m_AddMaps.GetSize()) { 584 if (m_CodingScheme == MixedFourBytes && parser.m_AddMaps.GetSize()) {
585 m_pAddMapping = FX_Alloc(uint8_t, parser.m_AddMaps.GetSize() + 4); 585 m_pAddMapping = FX_Alloc(uint8_t, parser.m_AddMaps.GetSize() + 4);
586 *(FX_DWORD*)m_pAddMapping = parser.m_AddMaps.GetSize() / 8; 586 *(uint32_t*)m_pAddMapping = parser.m_AddMaps.GetSize() / 8;
587 FXSYS_memcpy(m_pAddMapping + 4, parser.m_AddMaps.GetBuffer(), 587 FXSYS_memcpy(m_pAddMapping + 4, parser.m_AddMaps.GetBuffer(),
588 parser.m_AddMaps.GetSize()); 588 parser.m_AddMaps.GetSize());
589 FXSYS_qsort(m_pAddMapping + 4, parser.m_AddMaps.GetSize() / 8, 8, 589 FXSYS_qsort(m_pAddMapping + 4, parser.m_AddMaps.GetSize() / 8, 8,
590 CompareDWORD); 590 CompareDWORD);
591 } 591 }
592 return TRUE; 592 return TRUE;
593 } 593 }
594 594
595 uint16_t CPDF_CMap::CIDFromCharCode(FX_DWORD charcode) const { 595 uint16_t CPDF_CMap::CIDFromCharCode(uint32_t charcode) const {
596 if (m_Coding == CIDCODING_CID) { 596 if (m_Coding == CIDCODING_CID) {
597 return (uint16_t)charcode; 597 return (uint16_t)charcode;
598 } 598 }
599 if (m_pEmbedMap) { 599 if (m_pEmbedMap) {
600 return FPDFAPI_CIDFromCharCode(m_pEmbedMap, charcode); 600 return FPDFAPI_CIDFromCharCode(m_pEmbedMap, charcode);
601 } 601 }
602 if (!m_pMapping) { 602 if (!m_pMapping) {
603 return (uint16_t)charcode; 603 return (uint16_t)charcode;
604 } 604 }
605 if (charcode >> 16) { 605 if (charcode >> 16) {
606 if (m_pAddMapping) { 606 if (m_pAddMapping) {
607 void* found = FXSYS_bsearch(&charcode, m_pAddMapping + 4, 607 void* found = FXSYS_bsearch(&charcode, m_pAddMapping + 4,
608 *(FX_DWORD*)m_pAddMapping, 8, CompareCID); 608 *(uint32_t*)m_pAddMapping, 8, CompareCID);
609 if (!found) { 609 if (!found) {
610 if (m_pUseMap) { 610 if (m_pUseMap) {
611 return m_pUseMap->CIDFromCharCode(charcode); 611 return m_pUseMap->CIDFromCharCode(charcode);
612 } 612 }
613 return 0; 613 return 0;
614 } 614 }
615 return (uint16_t)(((FX_DWORD*)found)[1] % 65536 + charcode - 615 return (uint16_t)(((uint32_t*)found)[1] % 65536 + charcode -
616 *(FX_DWORD*)found); 616 *(uint32_t*)found);
617 } 617 }
618 if (m_pUseMap) 618 if (m_pUseMap)
619 return m_pUseMap->CIDFromCharCode(charcode); 619 return m_pUseMap->CIDFromCharCode(charcode);
620 return 0; 620 return 0;
621 } 621 }
622 FX_DWORD CID = m_pMapping[charcode]; 622 uint32_t CID = m_pMapping[charcode];
623 if (!CID && m_pUseMap) 623 if (!CID && m_pUseMap)
624 return m_pUseMap->CIDFromCharCode(charcode); 624 return m_pUseMap->CIDFromCharCode(charcode);
625 return (uint16_t)CID; 625 return (uint16_t)CID;
626 } 626 }
627 627
628 FX_DWORD CPDF_CMap::GetNextChar(const FX_CHAR* pString, 628 uint32_t CPDF_CMap::GetNextChar(const FX_CHAR* pString,
629 int nStrLen, 629 int nStrLen,
630 int& offset) const { 630 int& offset) const {
631 switch (m_CodingScheme) { 631 switch (m_CodingScheme) {
632 case OneByte: 632 case OneByte:
633 return ((uint8_t*)pString)[offset++]; 633 return ((uint8_t*)pString)[offset++];
634 case TwoBytes: 634 case TwoBytes:
635 offset += 2; 635 offset += 2;
636 return ((uint8_t*)pString)[offset - 2] * 256 + 636 return ((uint8_t*)pString)[offset - 2] * 256 +
637 ((uint8_t*)pString)[offset - 1]; 637 ((uint8_t*)pString)[offset - 1];
638 case MixedTwoBytes: { 638 case MixedTwoBytes: {
639 uint8_t byte1 = ((uint8_t*)pString)[offset++]; 639 uint8_t byte1 = ((uint8_t*)pString)[offset++];
640 if (!m_pLeadingBytes[byte1]) { 640 if (!m_pLeadingBytes[byte1]) {
641 return byte1; 641 return byte1;
642 } 642 }
643 uint8_t byte2 = ((uint8_t*)pString)[offset++]; 643 uint8_t byte2 = ((uint8_t*)pString)[offset++];
644 return byte1 * 256 + byte2; 644 return byte1 * 256 + byte2;
645 } 645 }
646 case MixedFourBytes: { 646 case MixedFourBytes: {
647 uint8_t codes[4]; 647 uint8_t codes[4];
648 int char_size = 1; 648 int char_size = 1;
649 codes[0] = ((uint8_t*)pString)[offset++]; 649 codes[0] = ((uint8_t*)pString)[offset++];
650 CMap_CodeRange* pRanges = (CMap_CodeRange*)m_pLeadingBytes; 650 CMap_CodeRange* pRanges = (CMap_CodeRange*)m_pLeadingBytes;
651 while (1) { 651 while (1) {
652 int ret = CheckCodeRange(codes, char_size, pRanges, m_nCodeRanges); 652 int ret = CheckCodeRange(codes, char_size, pRanges, m_nCodeRanges);
653 if (ret == 0) { 653 if (ret == 0) {
654 return 0; 654 return 0;
655 } 655 }
656 if (ret == 2) { 656 if (ret == 2) {
657 FX_DWORD charcode = 0; 657 uint32_t charcode = 0;
658 for (int i = 0; i < char_size; i++) { 658 for (int i = 0; i < char_size; i++) {
659 charcode = (charcode << 8) + codes[i]; 659 charcode = (charcode << 8) + codes[i];
660 } 660 }
661 return charcode; 661 return charcode;
662 } 662 }
663 if (char_size == 4 || offset == nStrLen) { 663 if (char_size == 4 || offset == nStrLen) {
664 return 0; 664 return 0;
665 } 665 }
666 codes[char_size++] = ((uint8_t*)pString)[offset++]; 666 codes[char_size++] = ((uint8_t*)pString)[offset++];
667 } 667 }
668 break; 668 break;
669 } 669 }
670 } 670 }
671 return 0; 671 return 0;
672 } 672 }
673 int CPDF_CMap::GetCharSize(FX_DWORD charcode) const { 673 int CPDF_CMap::GetCharSize(uint32_t charcode) const {
674 switch (m_CodingScheme) { 674 switch (m_CodingScheme) {
675 case OneByte: 675 case OneByte:
676 return 1; 676 return 1;
677 case TwoBytes: 677 case TwoBytes:
678 return 2; 678 return 2;
679 case MixedTwoBytes: 679 case MixedTwoBytes:
680 case MixedFourBytes: 680 case MixedFourBytes:
681 if (charcode < 0x100) { 681 if (charcode < 0x100) {
682 return 1; 682 return 1;
683 } 683 }
(...skipping 28 matching lines...) Expand all
712 while (offset < size) { 712 while (offset < size) {
713 GetNextChar(pString, size, offset); 713 GetNextChar(pString, size, offset);
714 count++; 714 count++;
715 } 715 }
716 return count; 716 return count;
717 } 717 }
718 } 718 }
719 return size; 719 return size;
720 } 720 }
721 721
722 int CPDF_CMap::AppendChar(FX_CHAR* str, FX_DWORD charcode) const { 722 int CPDF_CMap::AppendChar(FX_CHAR* str, uint32_t charcode) const {
723 switch (m_CodingScheme) { 723 switch (m_CodingScheme) {
724 case OneByte: 724 case OneByte:
725 str[0] = (uint8_t)charcode; 725 str[0] = (uint8_t)charcode;
726 return 1; 726 return 1;
727 case TwoBytes: 727 case TwoBytes:
728 str[0] = (uint8_t)(charcode / 256); 728 str[0] = (uint8_t)(charcode / 256);
729 str[1] = (uint8_t)(charcode % 256); 729 str[1] = (uint8_t)(charcode % 256);
730 return 2; 730 return 2;
731 case MixedTwoBytes: 731 case MixedTwoBytes:
732 case MixedFourBytes: 732 case MixedFourBytes:
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 FPDFAPI_LoadCID2UnicodeMap(charset, m_pEmbeddedMap, m_EmbeddedCount); 788 FPDFAPI_LoadCID2UnicodeMap(charset, m_pEmbeddedMap, m_EmbeddedCount);
789 } 789 }
790 790
791 CIDSet CharsetFromOrdering(const CFX_ByteString& ordering) { 791 CIDSet CharsetFromOrdering(const CFX_ByteString& ordering) {
792 for (size_t charset = 1; charset < FX_ArraySize(g_CharsetNames); ++charset) { 792 for (size_t charset = 1; charset < FX_ArraySize(g_CharsetNames); ++charset) {
793 if (ordering == CFX_ByteStringC(g_CharsetNames[charset])) 793 if (ordering == CFX_ByteStringC(g_CharsetNames[charset]))
794 return CIDSetFromSizeT(charset); 794 return CIDSetFromSizeT(charset);
795 } 795 }
796 return CIDSET_UNKNOWN; 796 return CIDSET_UNKNOWN;
797 } 797 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_font/fpdf_font.cpp ('k') | core/fpdfapi/fpdf_font/include/cpdf_font.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698