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

Side by Side Diff: core/fpdfdoc/doc_tagged.cpp

Issue 1853233002: Make down-conversion explicit from CFX_ByteString to CFX_ByteStringC. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Fix CPDF_Name::GetConstString() Created 4 years, 8 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/fpdfdoc/doc_ocg.cpp ('k') | core/fpdfdoc/doc_utils.cpp » ('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 <map> 7 #include <map>
8 8
9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h" 9 #include "core/fpdfapi/fpdf_parser/include/cpdf_array.h"
10 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h" 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_dictionary.h"
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 return TRUE; 198 return TRUE;
199 } 199 }
200 CPDF_StructElementImpl::CPDF_StructElementImpl(CPDF_StructTreeImpl* pTree, 200 CPDF_StructElementImpl::CPDF_StructElementImpl(CPDF_StructTreeImpl* pTree,
201 CPDF_StructElementImpl* pParent, 201 CPDF_StructElementImpl* pParent,
202 CPDF_Dictionary* pDict) 202 CPDF_Dictionary* pDict)
203 : m_RefCount(0) { 203 : m_RefCount(0) {
204 m_pTree = pTree; 204 m_pTree = pTree;
205 m_pDict = pDict; 205 m_pDict = pDict;
206 m_Type = pDict->GetStringBy("S"); 206 m_Type = pDict->GetStringBy("S");
207 if (pTree->m_pRoleMap) { 207 if (pTree->m_pRoleMap) {
208 CFX_ByteString mapped = pTree->m_pRoleMap->GetStringBy(m_Type); 208 CFX_ByteString mapped =
209 pTree->m_pRoleMap->GetStringBy(m_Type.AsByteStringC());
209 if (!mapped.IsEmpty()) { 210 if (!mapped.IsEmpty()) {
210 m_Type = mapped; 211 m_Type = mapped;
211 } 212 }
212 } 213 }
213 m_pParent = pParent; 214 m_pParent = pParent;
214 LoadKids(pDict); 215 LoadKids(pDict);
215 } 216 }
216 CPDF_StructElementImpl::~CPDF_StructElementImpl() { 217 CPDF_StructElementImpl::~CPDF_StructElementImpl() {
217 for (int i = 0; i < m_Kids.GetSize(); i++) { 218 for (int i = 0; i < m_Kids.GetSize(); i++) {
218 if (m_Kids[i].m_Type == CPDF_StructKid::Element && 219 if (m_Kids[i].m_Type == CPDF_StructKid::Element &&
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 if (!pC) 367 if (!pC)
367 return nullptr; 368 return nullptr;
368 369
369 CPDF_Dictionary* pClassMap = m_pTree->m_pTreeRoot->GetDictBy("ClassMap"); 370 CPDF_Dictionary* pClassMap = m_pTree->m_pTreeRoot->GetDictBy("ClassMap");
370 if (!pClassMap) 371 if (!pClassMap)
371 return nullptr; 372 return nullptr;
372 373
373 if (CPDF_Array* pArray = pC->AsArray()) { 374 if (CPDF_Array* pArray = pC->AsArray()) {
374 for (uint32_t i = 0; i < pArray->GetCount(); i++) { 375 for (uint32_t i = 0; i < pArray->GetCount(); i++) {
375 CFX_ByteString class_name = pArray->GetStringAt(i); 376 CFX_ByteString class_name = pArray->GetStringAt(i);
376 CPDF_Dictionary* pClassDict = pClassMap->GetDictBy(class_name); 377 CPDF_Dictionary* pClassDict =
378 pClassMap->GetDictBy(class_name.AsByteStringC());
377 if (pClassDict && pClassDict->GetStringBy("O") == owner) 379 if (pClassDict && pClassDict->GetStringBy("O") == owner)
378 return pClassDict->GetDirectObjectBy(name); 380 return pClassDict->GetDirectObjectBy(name);
379 } 381 }
380 return nullptr; 382 return nullptr;
381 } 383 }
382 CFX_ByteString class_name = pC->GetString(); 384 CFX_ByteString class_name = pC->GetString();
383 CPDF_Dictionary* pClassDict = pClassMap->GetDictBy(class_name); 385 CPDF_Dictionary* pClassDict =
386 pClassMap->GetDictBy(class_name.AsByteStringC());
384 if (pClassDict && pClassDict->GetStringBy("O") == owner) 387 if (pClassDict && pClassDict->GetStringBy("O") == owner)
385 return pClassDict->GetDirectObjectBy(name); 388 return pClassDict->GetDirectObjectBy(name);
386 return nullptr; 389 return nullptr;
387 } 390 }
388 CPDF_Object* CPDF_StructElementImpl::GetAttr(const CFX_ByteStringC& owner, 391 CPDF_Object* CPDF_StructElementImpl::GetAttr(const CFX_ByteStringC& owner,
389 const CFX_ByteStringC& name, 392 const CFX_ByteStringC& name,
390 FX_BOOL bInheritable, 393 FX_BOOL bInheritable,
391 int subindex) { 394 int subindex) {
392 CPDF_Object* pAttr = GetAttr(owner, name, bInheritable); 395 CPDF_Object* pAttr = GetAttr(owner, name, bInheritable);
393 CPDF_Array* pArray = ToArray(pAttr); 396 CPDF_Array* pArray = ToArray(pAttr);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 return ToNumber(pAttr) ? pAttr->GetNumber() : default_value; 434 return ToNumber(pAttr) ? pAttr->GetNumber() : default_value;
432 } 435 }
433 int CPDF_StructElementImpl::GetInteger(const CFX_ByteStringC& owner, 436 int CPDF_StructElementImpl::GetInteger(const CFX_ByteStringC& owner,
434 const CFX_ByteStringC& name, 437 const CFX_ByteStringC& name,
435 int default_value, 438 int default_value,
436 FX_BOOL bInheritable, 439 FX_BOOL bInheritable,
437 int subindex) { 440 int subindex) {
438 CPDF_Object* pAttr = GetAttr(owner, name, bInheritable, subindex); 441 CPDF_Object* pAttr = GetAttr(owner, name, bInheritable, subindex);
439 return ToNumber(pAttr) ? pAttr->GetInteger() : default_value; 442 return ToNumber(pAttr) ? pAttr->GetInteger() : default_value;
440 } 443 }
OLDNEW
« no previous file with comments | « core/fpdfdoc/doc_ocg.cpp ('k') | core/fpdfdoc/doc_utils.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698