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

Side by Side Diff: xfa/fxfa/app/xfa_ffdoc.cpp

Issue 1919563002: Pass CFX_*StringCs to FX_HashCode_GETA and _GETW hash functions. (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: fix issue from c4 Created 4 years, 7 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 | « xfa/fxfa/app/xfa_ffbarcode.cpp ('k') | xfa/fxfa/app/xfa_ffdocview.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 "xfa/fxfa/include/xfa_ffdoc.h" 7 #include "xfa/fxfa/include/xfa_ffdoc.h"
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_document.h" 10 #include "core/fpdfapi/fpdf_parser/include/cpdf_document.h"
(...skipping 308 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 CPDF_Document* CXFA_FFDoc::GetPDFDoc() { 319 CPDF_Document* CXFA_FFDoc::GetPDFDoc() {
320 return m_pPDFDoc; 320 return m_pPDFDoc;
321 } 321 }
322 322
323 CFX_DIBitmap* CXFA_FFDoc::GetPDFNamedImage(const CFX_WideStringC& wsName, 323 CFX_DIBitmap* CXFA_FFDoc::GetPDFNamedImage(const CFX_WideStringC& wsName,
324 int32_t& iImageXDpi, 324 int32_t& iImageXDpi,
325 int32_t& iImageYDpi) { 325 int32_t& iImageYDpi) {
326 if (!m_pPDFDoc) 326 if (!m_pPDFDoc)
327 return nullptr; 327 return nullptr;
328 328
329 uint32_t dwHash = 329 uint32_t dwHash = FX_HashCode_GetW(wsName, false);
330 FX_HashCode_String_GetW(wsName.c_str(), wsName.GetLength(), FALSE);
331 FX_IMAGEDIB_AND_DPI* imageDIBDpi = nullptr; 330 FX_IMAGEDIB_AND_DPI* imageDIBDpi = nullptr;
332 if (m_mapNamedImages.Lookup((void*)(uintptr_t)dwHash, (void*&)imageDIBDpi)) { 331 if (m_mapNamedImages.Lookup((void*)(uintptr_t)dwHash, (void*&)imageDIBDpi)) {
333 iImageXDpi = imageDIBDpi->iImageXDpi; 332 iImageXDpi = imageDIBDpi->iImageXDpi;
334 iImageYDpi = imageDIBDpi->iImageYDpi; 333 iImageYDpi = imageDIBDpi->iImageYDpi;
335 return static_cast<CFX_DIBitmap*>(imageDIBDpi->pDibSource); 334 return static_cast<CFX_DIBitmap*>(imageDIBDpi->pDibSource);
336 } 335 }
337 336
338 CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot(); 337 CPDF_Dictionary* pRoot = m_pPDFDoc->GetRoot();
339 if (!pRoot) 338 if (!pRoot)
340 return nullptr; 339 return nullptr;
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 pImageFileRead, FXCODEC_IMAGE_UNKNOWN, iImageXDpi, iImageYDpi); 376 pImageFileRead, FXCODEC_IMAGE_UNKNOWN, iImageXDpi, iImageYDpi);
378 imageDIBDpi->iImageXDpi = iImageXDpi; 377 imageDIBDpi->iImageXDpi = iImageXDpi;
379 imageDIBDpi->iImageYDpi = iImageYDpi; 378 imageDIBDpi->iImageYDpi = iImageYDpi;
380 pImageFileRead->Release(); 379 pImageFileRead->Release();
381 } 380 }
382 m_mapNamedImages.SetAt((void*)(uintptr_t)dwHash, imageDIBDpi); 381 m_mapNamedImages.SetAt((void*)(uintptr_t)dwHash, imageDIBDpi);
383 return (CFX_DIBitmap*)imageDIBDpi->pDibSource; 382 return (CFX_DIBitmap*)imageDIBDpi->pDibSource;
384 } 383 }
385 384
386 CFDE_XMLElement* CXFA_FFDoc::GetPackageData(const CFX_WideStringC& wsPackage) { 385 CFDE_XMLElement* CXFA_FFDoc::GetPackageData(const CFX_WideStringC& wsPackage) {
387 uint32_t packetHash = 386 uint32_t packetHash = FX_HashCode_GetW(wsPackage, false);
388 FX_HashCode_String_GetW(wsPackage.c_str(), wsPackage.GetLength());
389 CXFA_Node* pNode = ToNode(m_pDocument->GetXFAObject(packetHash)); 387 CXFA_Node* pNode = ToNode(m_pDocument->GetXFAObject(packetHash));
390 if (!pNode) { 388 if (!pNode) {
391 return NULL; 389 return NULL;
392 } 390 }
393 CFDE_XMLNode* pXMLNode = pNode->GetXMLMappingNode(); 391 CFDE_XMLNode* pXMLNode = pNode->GetXMLMappingNode();
394 return (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element) 392 return (pXMLNode && pXMLNode->GetType() == FDE_XMLNODE_Element)
395 ? static_cast<CFDE_XMLElement*>(pXMLNode) 393 ? static_cast<CFDE_XMLElement*>(pXMLNode)
396 : NULL; 394 : NULL;
397 } 395 }
398 FX_BOOL CXFA_FFDoc::SavePackage(const CFX_WideStringC& wsPackage, 396 FX_BOOL CXFA_FFDoc::SavePackage(const CFX_WideStringC& wsPackage,
399 IFX_FileWrite* pFile, 397 IFX_FileWrite* pFile,
400 CXFA_ChecksumContext* pCSContext) { 398 CXFA_ChecksumContext* pCSContext) {
401 CXFA_DataExporter* pExport = new CXFA_DataExporter(m_pDocument); 399 CXFA_DataExporter* pExport = new CXFA_DataExporter(m_pDocument);
402 uint32_t packetHash = 400 uint32_t packetHash = FX_HashCode_GetW(wsPackage, false);
403 FX_HashCode_String_GetW(wsPackage.c_str(), wsPackage.GetLength());
404 CXFA_Node* pNode = NULL; 401 CXFA_Node* pNode = NULL;
405 if (packetHash == XFA_HASHCODE_Xfa) { 402 if (packetHash == XFA_HASHCODE_Xfa) {
406 pNode = m_pDocument->GetRoot(); 403 pNode = m_pDocument->GetRoot();
407 } else { 404 } else {
408 pNode = ToNode(m_pDocument->GetXFAObject(packetHash)); 405 pNode = ToNode(m_pDocument->GetXFAObject(packetHash));
409 } 406 }
410 FX_BOOL bFlags = FALSE; 407 FX_BOOL bFlags = FALSE;
411 if (pNode) { 408 if (pNode) {
412 CFX_ByteString bsChecksum; 409 CFX_ByteString bsChecksum;
413 if (pCSContext) { 410 if (pCSContext) {
414 pCSContext->GetChecksum(bsChecksum); 411 pCSContext->GetChecksum(bsChecksum);
415 } 412 }
416 bFlags = pExport->Export( 413 bFlags = pExport->Export(
417 pFile, pNode, 0, bsChecksum.GetLength() ? bsChecksum.c_str() : NULL); 414 pFile, pNode, 0, bsChecksum.GetLength() ? bsChecksum.c_str() : NULL);
418 } else { 415 } else {
419 bFlags = pExport->Export(pFile); 416 bFlags = pExport->Export(pFile);
420 } 417 }
421 pExport->Release(); 418 pExport->Release();
422 return bFlags; 419 return bFlags;
423 } 420 }
424 FX_BOOL CXFA_FFDoc::ImportData(IFX_FileRead* pStream, FX_BOOL bXDP) { 421 FX_BOOL CXFA_FFDoc::ImportData(IFX_FileRead* pStream, FX_BOOL bXDP) {
425 std::unique_ptr<CXFA_DataImporter, ReleaseDeleter<CXFA_DataImporter>> 422 std::unique_ptr<CXFA_DataImporter, ReleaseDeleter<CXFA_DataImporter>>
426 importer(new CXFA_DataImporter(m_pDocument)); 423 importer(new CXFA_DataImporter(m_pDocument));
427 424
428 return importer->ImportData(pStream); 425 return importer->ImportData(pStream);
429 } 426 }
OLDNEW
« no previous file with comments | « xfa/fxfa/app/xfa_ffbarcode.cpp ('k') | xfa/fxfa/app/xfa_ffdocview.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698