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

Side by Side Diff: core/fpdfapi/fpdf_edit/fpdf_edit_create.cpp

Issue 2334323005: Rename dictionary set and get methods (Closed)
Patch Set: Created 4 years, 3 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
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_edit/editint.h" 7 #include "core/fpdfapi/fpdf_edit/editint.h"
8 8
9 #include <vector> 9 #include <vector>
10 10
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 m_Acc.LoadAllData(pStream, TRUE); 419 m_Acc.LoadAllData(pStream, TRUE);
420 if ((pStream && pStream->GetDict() && 420 if ((pStream && pStream->GetDict() &&
421 pStream->GetDict()->KeyExist("Filter")) || 421 pStream->GetDict()->KeyExist("Filter")) ||
422 !bFlateEncode) { 422 !bFlateEncode) {
423 if (pStream->GetDict()->KeyExist("Filter") && !bFlateEncode) { 423 if (pStream->GetDict()->KeyExist("Filter") && !bFlateEncode) {
424 CPDF_StreamAcc destAcc; 424 CPDF_StreamAcc destAcc;
425 destAcc.LoadAllData(pStream); 425 destAcc.LoadAllData(pStream);
426 m_dwSize = destAcc.GetSize(); 426 m_dwSize = destAcc.GetSize();
427 m_pData = (uint8_t*)destAcc.DetachData(); 427 m_pData = (uint8_t*)destAcc.DetachData();
428 m_pDict = ToDictionary(pStream->GetDict()->Clone()); 428 m_pDict = ToDictionary(pStream->GetDict()->Clone());
429 m_pDict->RemoveAt("Filter"); 429 m_pDict->RemoveFor("Filter");
430 m_bNewData = TRUE; 430 m_bNewData = TRUE;
431 m_bCloned = TRUE; 431 m_bCloned = TRUE;
432 } else { 432 } else {
433 m_pData = (uint8_t*)m_Acc.GetData(); 433 m_pData = (uint8_t*)m_Acc.GetData();
434 m_dwSize = m_Acc.GetSize(); 434 m_dwSize = m_Acc.GetSize();
435 m_pDict = pStream->GetDict(); 435 m_pDict = pStream->GetDict();
436 } 436 }
437 return; 437 return;
438 } 438 }
439 439
440 m_bNewData = TRUE; 440 m_bNewData = TRUE;
441 m_bCloned = TRUE; 441 m_bCloned = TRUE;
442 // TODO(thestig): Move to Init() and check return value. 442 // TODO(thestig): Move to Init() and check return value.
443 ::FlateEncode(m_Acc.GetData(), m_Acc.GetSize(), &m_pData, &m_dwSize); 443 ::FlateEncode(m_Acc.GetData(), m_Acc.GetSize(), &m_pData, &m_dwSize);
444 m_pDict = ToDictionary(pStream->GetDict()->Clone()); 444 m_pDict = ToDictionary(pStream->GetDict()->Clone());
445 m_pDict->SetAtInteger("Length", m_dwSize); 445 m_pDict->SetIntegerFor("Length", m_dwSize);
446 m_pDict->SetAtName("Filter", "FlateDecode"); 446 m_pDict->SetNameFor("Filter", "FlateDecode");
447 m_pDict->RemoveAt("DecodeParms"); 447 m_pDict->RemoveFor("DecodeParms");
448 } 448 }
449 449
450 CPDF_FlateEncoder::CPDF_FlateEncoder(const uint8_t* pBuffer, 450 CPDF_FlateEncoder::CPDF_FlateEncoder(const uint8_t* pBuffer,
451 uint32_t size, 451 uint32_t size,
452 bool bFlateEncode, 452 bool bFlateEncode,
453 bool bXRefStream) 453 bool bXRefStream)
454 : m_pData(nullptr), 454 : m_pData(nullptr),
455 m_dwSize(0), 455 m_dwSize(0),
456 m_pDict(nullptr), 456 m_pDict(nullptr),
457 m_bCloned(FALSE), 457 m_bCloned(FALSE),
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 916
917 uint32_t objnum = pObj->GetObjNum(); 917 uint32_t objnum = pObj->GetObjNum();
918 if (m_pParser && m_pParser->GetObjectGenNum(objnum) > 0) 918 if (m_pParser && m_pParser->GetObjectGenNum(objnum) > 0)
919 return 1; 919 return 1;
920 920
921 if (pObj->IsNumber()) 921 if (pObj->IsNumber())
922 return 1; 922 return 1;
923 923
924 CPDF_Dictionary* pDict = pObj->GetDict(); 924 CPDF_Dictionary* pDict = pObj->GetDict();
925 if (pObj->IsStream()) { 925 if (pObj->IsStream()) {
926 if (pDict && pDict->GetStringBy("Type") == "XRef") 926 if (pDict && pDict->GetStringFor("Type") == "XRef")
927 return 0; 927 return 0;
928 return 1; 928 return 1;
929 } 929 }
930 930
931 if (pDict) { 931 if (pDict) {
932 if (pDict == m_pDocument->m_pRootDict || pDict == m_pEncryptDict) 932 if (pDict == m_pDocument->m_pRootDict || pDict == m_pEncryptDict)
933 return 1; 933 return 1;
934 if (pDict->IsSignatureDict()) 934 if (pDict->IsSignatureDict())
935 return 1; 935 return 1;
936 if (pDict->GetStringBy("Type") == "Page") 936 if (pDict->GetStringFor("Type") == "Page")
937 return 1; 937 return 1;
938 } 938 }
939 939
940 m_pXRefStream->AddObjectNumberToIndexArray(objnum); 940 m_pXRefStream->AddObjectNumberToIndexArray(objnum);
941 if (m_pXRefStream->CompressIndirectObject(objnum, pObj, this) < 0) 941 if (m_pXRefStream->CompressIndirectObject(objnum, pObj, this) < 0)
942 return -1; 942 return -1;
943 if (!IsXRefNeedEnd(m_pXRefStream.get(), m_dwFlags)) 943 if (!IsXRefNeedEnd(m_pXRefStream.get(), m_dwFlags))
944 return 0; 944 return 0;
945 if (!m_pXRefStream->End(this)) 945 if (!m_pXRefStream->End(this))
946 return -1; 946 return -1;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
986 return -1; 986 return -1;
987 } 987 }
988 return 0; 988 return 0;
989 } 989 }
990 int32_t CPDF_Creator::WriteStream(const CPDF_Object* pStream, 990 int32_t CPDF_Creator::WriteStream(const CPDF_Object* pStream,
991 uint32_t objnum, 991 uint32_t objnum,
992 CPDF_CryptoHandler* pCrypto) { 992 CPDF_CryptoHandler* pCrypto) {
993 CPDF_FlateEncoder encoder(const_cast<CPDF_Stream*>(pStream->AsStream()), 993 CPDF_FlateEncoder encoder(const_cast<CPDF_Stream*>(pStream->AsStream()),
994 pStream != m_pMetadata); 994 pStream != m_pMetadata);
995 CPDF_Encryptor encryptor(pCrypto, objnum, encoder.m_pData, encoder.m_dwSize); 995 CPDF_Encryptor encryptor(pCrypto, objnum, encoder.m_pData, encoder.m_dwSize);
996 if ((uint32_t)encoder.m_pDict->GetIntegerBy("Length") != encryptor.m_dwSize) { 996 if ((uint32_t)encoder.m_pDict->GetIntegerFor("Length") !=
997 encryptor.m_dwSize) {
997 encoder.CloneDict(); 998 encoder.CloneDict();
998 encoder.m_pDict->SetAtInteger("Length", encryptor.m_dwSize); 999 encoder.m_pDict->SetIntegerFor("Length", encryptor.m_dwSize);
999 } 1000 }
1000 if (WriteDirectObj(objnum, encoder.m_pDict) < 0) { 1001 if (WriteDirectObj(objnum, encoder.m_pDict) < 0) {
1001 return -1; 1002 return -1;
1002 } 1003 }
1003 int len = m_File.AppendString("stream\r\n"); 1004 int len = m_File.AppendString("stream\r\n");
1004 if (len < 0) { 1005 if (len < 0) {
1005 return -1; 1006 return -1;
1006 } 1007 }
1007 m_Offset += len; 1008 m_Offset += len;
1008 if (m_File.AppendBlock(encryptor.m_pData, encryptor.m_dwSize) < 0) { 1009 if (m_File.AppendBlock(encryptor.m_pData, encryptor.m_dwSize) < 0) {
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
1098 return -1; 1099 return -1;
1099 } 1100 }
1100 m_Offset += len; 1101 m_Offset += len;
1101 break; 1102 break;
1102 } 1103 }
1103 case CPDF_Object::STREAM: { 1104 case CPDF_Object::STREAM: {
1104 CPDF_FlateEncoder encoder(const_cast<CPDF_Stream*>(pObj->AsStream()), 1105 CPDF_FlateEncoder encoder(const_cast<CPDF_Stream*>(pObj->AsStream()),
1105 TRUE); 1106 TRUE);
1106 CPDF_Encryptor encryptor(m_pCryptoHandler, objnum, encoder.m_pData, 1107 CPDF_Encryptor encryptor(m_pCryptoHandler, objnum, encoder.m_pData,
1107 encoder.m_dwSize); 1108 encoder.m_dwSize);
1108 if ((uint32_t)encoder.m_pDict->GetIntegerBy("Length") != 1109 if ((uint32_t)encoder.m_pDict->GetIntegerFor("Length") !=
1109 encryptor.m_dwSize) { 1110 encryptor.m_dwSize) {
1110 encoder.CloneDict(); 1111 encoder.CloneDict();
1111 encoder.m_pDict->SetAtInteger("Length", encryptor.m_dwSize); 1112 encoder.m_pDict->SetIntegerFor("Length", encryptor.m_dwSize);
1112 } 1113 }
1113 if (WriteDirectObj(objnum, encoder.m_pDict) < 0) { 1114 if (WriteDirectObj(objnum, encoder.m_pDict) < 0) {
1114 return -1; 1115 return -1;
1115 } 1116 }
1116 if ((len = m_File.AppendString("stream\r\n")) < 0) { 1117 if ((len = m_File.AppendString("stream\r\n")) < 0) {
1117 return -1; 1118 return -1;
1118 } 1119 }
1119 m_Offset += len; 1120 m_Offset += len;
1120 if (m_File.AppendBlock(encryptor.m_pData, encryptor.m_dwSize) < 0) { 1121 if (m_File.AppendBlock(encryptor.m_pData, encryptor.m_dwSize) < 0) {
1121 return -1; 1122 return -1;
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after
1439 int32_t CPDF_Creator::WriteDoc_Stage1(IFX_Pause* pPause) { 1440 int32_t CPDF_Creator::WriteDoc_Stage1(IFX_Pause* pPause) {
1440 ASSERT(m_iStage > -1 || m_iStage < 20); 1441 ASSERT(m_iStage > -1 || m_iStage < 20);
1441 if (m_iStage == 0) { 1442 if (m_iStage == 0) {
1442 if (!m_pParser) { 1443 if (!m_pParser) {
1443 m_dwFlags &= ~FPDFCREATE_INCREMENTAL; 1444 m_dwFlags &= ~FPDFCREATE_INCREMENTAL;
1444 } 1445 }
1445 if (m_bSecurityChanged && (m_dwFlags & FPDFCREATE_NO_ORIGINAL) == 0) { 1446 if (m_bSecurityChanged && (m_dwFlags & FPDFCREATE_NO_ORIGINAL) == 0) {
1446 m_dwFlags &= ~FPDFCREATE_INCREMENTAL; 1447 m_dwFlags &= ~FPDFCREATE_INCREMENTAL;
1447 } 1448 }
1448 CPDF_Dictionary* pDict = m_pDocument->GetRoot(); 1449 CPDF_Dictionary* pDict = m_pDocument->GetRoot();
1449 m_pMetadata = pDict ? pDict->GetDirectObjectBy("Metadata") : nullptr; 1450 m_pMetadata = pDict ? pDict->GetDirectObjectFor("Metadata") : nullptr;
1450 if (m_dwFlags & FPDFCREATE_OBJECTSTREAM) { 1451 if (m_dwFlags & FPDFCREATE_OBJECTSTREAM) {
1451 m_pXRefStream.reset(new CPDF_XRefStream); 1452 m_pXRefStream.reset(new CPDF_XRefStream);
1452 m_pXRefStream->Start(); 1453 m_pXRefStream->Start();
1453 if ((m_dwFlags & FPDFCREATE_INCREMENTAL) != 0 && m_pParser) { 1454 if ((m_dwFlags & FPDFCREATE_INCREMENTAL) != 0 && m_pParser) {
1454 FX_FILESIZE prev = m_pParser->GetLastXRefOffset(); 1455 FX_FILESIZE prev = m_pParser->GetLastXRefOffset();
1455 m_pXRefStream->m_PrevOffset = prev; 1456 m_pXRefStream->m_PrevOffset = prev;
1456 } 1457 }
1457 } 1458 }
1458 m_iStage = 10; 1459 m_iStage = 10;
1459 } 1460 }
(...skipping 492 matching lines...) Expand 10 before | Expand all | Expand 10 after
1952 return; 1953 return;
1953 } 1954 }
1954 std::vector<uint8_t> buffer = 1955 std::vector<uint8_t> buffer =
1955 PDF_GenerateFileID((uint32_t)(uintptr_t) this, m_dwLastObjNum); 1956 PDF_GenerateFileID((uint32_t)(uintptr_t) this, m_dwLastObjNum);
1956 CFX_ByteString bsBuffer(buffer.data(), buffer.size()); 1957 CFX_ByteString bsBuffer(buffer.data(), buffer.size());
1957 m_pIDArray->Add(new CPDF_String(bsBuffer, TRUE), m_pDocument); 1958 m_pIDArray->Add(new CPDF_String(bsBuffer, TRUE), m_pDocument);
1958 return; 1959 return;
1959 } 1960 }
1960 m_pIDArray->Add(m_pIDArray->GetObjectAt(0)->Clone()); 1961 m_pIDArray->Add(m_pIDArray->GetObjectAt(0)->Clone());
1961 if (m_pEncryptDict && !pOldIDArray && m_pParser && bNewId) { 1962 if (m_pEncryptDict && !pOldIDArray && m_pParser && bNewId) {
1962 if (m_pEncryptDict->GetStringBy("Filter") == "Standard") { 1963 if (m_pEncryptDict->GetStringFor("Filter") == "Standard") {
1963 CFX_ByteString user_pass = m_pParser->GetPassword(); 1964 CFX_ByteString user_pass = m_pParser->GetPassword();
1964 uint32_t flag = PDF_ENCRYPT_CONTENT; 1965 uint32_t flag = PDF_ENCRYPT_CONTENT;
1965 1966
1966 CPDF_SecurityHandler handler; 1967 CPDF_SecurityHandler handler;
1967 handler.OnCreate(m_pEncryptDict, m_pIDArray, user_pass.raw_str(), 1968 handler.OnCreate(m_pEncryptDict, m_pIDArray, user_pass.raw_str(),
1968 user_pass.GetLength(), flag); 1969 user_pass.GetLength(), flag);
1969 if (m_bLocalCryptoHandler) 1970 if (m_bLocalCryptoHandler)
1970 delete m_pCryptoHandler; 1971 delete m_pCryptoHandler;
1971 m_pCryptoHandler = new CPDF_CryptoHandler; 1972 m_pCryptoHandler = new CPDF_CryptoHandler;
1972 m_pCryptoHandler->Init(m_pEncryptDict, &handler); 1973 m_pCryptoHandler->Init(m_pEncryptDict, &handler);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
2015 m_pCryptoHandler = nullptr; 2016 m_pCryptoHandler = nullptr;
2016 } 2017 }
2017 void CPDF_Creator::ResetStandardSecurity() { 2018 void CPDF_Creator::ResetStandardSecurity() {
2018 if (!m_bLocalCryptoHandler) 2019 if (!m_bLocalCryptoHandler)
2019 return; 2020 return;
2020 2021
2021 delete m_pCryptoHandler; 2022 delete m_pCryptoHandler;
2022 m_pCryptoHandler = nullptr; 2023 m_pCryptoHandler = nullptr;
2023 m_bLocalCryptoHandler = FALSE; 2024 m_bLocalCryptoHandler = FALSE;
2024 } 2025 }
OLDNEW
« no previous file with comments | « core/fpdfapi/fpdf_edit/cpdf_pagecontentgenerator.cpp ('k') | core/fpdfapi/fpdf_font/cpdf_cidfont.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698