OLD | NEW |
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 "editint.h" | 7 #include "editint.h" |
8 | 8 |
9 #include "core/include/fxcrt/fx_ext.h" | 9 #include "core/include/fxcrt/fx_ext.h" |
10 #include "core/include/fpdfapi/fpdf_serial.h" | 10 #include "core/include/fpdfapi/fpdf_serial.h" |
(...skipping 1992 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2003 if (flags & FPDFCREATE_PROGRESSIVE) { | 2003 if (flags & FPDFCREATE_PROGRESSIVE) { |
2004 return TRUE; | 2004 return TRUE; |
2005 } | 2005 } |
2006 return Continue(NULL) > -1; | 2006 return Continue(NULL) > -1; |
2007 } | 2007 } |
2008 void CPDF_Creator::InitID(FX_BOOL bDefault) { | 2008 void CPDF_Creator::InitID(FX_BOOL bDefault) { |
2009 CPDF_Array* pOldIDArray = m_pParser ? m_pParser->GetIDArray() : NULL; | 2009 CPDF_Array* pOldIDArray = m_pParser ? m_pParser->GetIDArray() : NULL; |
2010 FX_BOOL bNewId = !m_pIDArray; | 2010 FX_BOOL bNewId = !m_pIDArray; |
2011 if (!m_pIDArray) { | 2011 if (!m_pIDArray) { |
2012 FX_DWORD* pBuffer = NULL; | 2012 FX_DWORD* pBuffer = NULL; |
2013 m_pIDArray = CPDF_Array::Create(); | 2013 m_pIDArray = new CPDF_Array; |
2014 CPDF_Object* pID1 = pOldIDArray ? pOldIDArray->GetElement(0) : NULL; | 2014 CPDF_Object* pID1 = pOldIDArray ? pOldIDArray->GetElement(0) : NULL; |
2015 if (pID1) { | 2015 if (pID1) { |
2016 m_pIDArray->Add(pID1->Clone()); | 2016 m_pIDArray->Add(pID1->Clone()); |
2017 } else { | 2017 } else { |
2018 pBuffer = FX_Alloc(FX_DWORD, 4); | 2018 pBuffer = FX_Alloc(FX_DWORD, 4); |
2019 PDF_GenerateFileID((FX_DWORD)(uintptr_t) this, m_dwLastObjNum, pBuffer); | 2019 PDF_GenerateFileID((FX_DWORD)(uintptr_t) this, m_dwLastObjNum, pBuffer); |
2020 CFX_ByteStringC bsBuffer((const uint8_t*)pBuffer, 4 * sizeof(FX_DWORD)); | 2020 CFX_ByteStringC bsBuffer((const uint8_t*)pBuffer, 4 * sizeof(FX_DWORD)); |
2021 m_pIDArray->Add(CPDF_String::Create(bsBuffer, TRUE), m_pDocument); | 2021 m_pIDArray->Add(new CPDF_String(bsBuffer, TRUE), m_pDocument); |
2022 } | 2022 } |
2023 FX_Free(pBuffer); | 2023 FX_Free(pBuffer); |
2024 } | 2024 } |
2025 if (!bDefault) { | 2025 if (!bDefault) { |
2026 return; | 2026 return; |
2027 } | 2027 } |
2028 if (pOldIDArray) { | 2028 if (pOldIDArray) { |
2029 CPDF_Object* pID2 = pOldIDArray->GetElement(1); | 2029 CPDF_Object* pID2 = pOldIDArray->GetElement(1); |
2030 if ((m_dwFlags & FPDFCREATE_INCREMENTAL) && m_pEncryptDict && pID2) { | 2030 if ((m_dwFlags & FPDFCREATE_INCREMENTAL) && m_pEncryptDict && pID2) { |
2031 m_pIDArray->Add(pID2->Clone()); | 2031 m_pIDArray->Add(pID2->Clone()); |
2032 return; | 2032 return; |
2033 } | 2033 } |
2034 FX_DWORD* pBuffer = FX_Alloc(FX_DWORD, 4); | 2034 FX_DWORD* pBuffer = FX_Alloc(FX_DWORD, 4); |
2035 PDF_GenerateFileID((FX_DWORD)(uintptr_t) this, m_dwLastObjNum, pBuffer); | 2035 PDF_GenerateFileID((FX_DWORD)(uintptr_t) this, m_dwLastObjNum, pBuffer); |
2036 CFX_ByteStringC bsBuffer((const uint8_t*)pBuffer, 4 * sizeof(FX_DWORD)); | 2036 CFX_ByteStringC bsBuffer((const uint8_t*)pBuffer, 4 * sizeof(FX_DWORD)); |
2037 m_pIDArray->Add(CPDF_String::Create(bsBuffer, TRUE), m_pDocument); | 2037 m_pIDArray->Add(new CPDF_String(bsBuffer, TRUE), m_pDocument); |
2038 FX_Free(pBuffer); | 2038 FX_Free(pBuffer); |
2039 return; | 2039 return; |
2040 } | 2040 } |
2041 m_pIDArray->Add(m_pIDArray->GetElement(0)->Clone()); | 2041 m_pIDArray->Add(m_pIDArray->GetElement(0)->Clone()); |
2042 if (m_pEncryptDict && !pOldIDArray && m_pParser && bNewId) { | 2042 if (m_pEncryptDict && !pOldIDArray && m_pParser && bNewId) { |
2043 if (m_pEncryptDict->GetString("Filter") == "Standard") { | 2043 if (m_pEncryptDict->GetString("Filter") == "Standard") { |
2044 CPDF_StandardSecurityHandler handler; | 2044 CPDF_StandardSecurityHandler handler; |
2045 CFX_ByteString user_pass = m_pParser->GetPassword(); | 2045 CFX_ByteString user_pass = m_pParser->GetPassword(); |
2046 FX_DWORD flag = PDF_ENCRYPT_CONTENT; | 2046 FX_DWORD flag = PDF_ENCRYPT_CONTENT; |
2047 handler.OnCreate(m_pEncryptDict, m_pIDArray, (const uint8_t*)user_pass, | 2047 handler.OnCreate(m_pEncryptDict, m_pIDArray, (const uint8_t*)user_pass, |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2103 m_bNewCrypto = FALSE; | 2103 m_bNewCrypto = FALSE; |
2104 if (!m_bStandardSecurity) { | 2104 if (!m_bStandardSecurity) { |
2105 return; | 2105 return; |
2106 } | 2106 } |
2107 if (m_pEncryptDict) { | 2107 if (m_pEncryptDict) { |
2108 m_pEncryptDict->Release(); | 2108 m_pEncryptDict->Release(); |
2109 m_pEncryptDict = NULL; | 2109 m_pEncryptDict = NULL; |
2110 } | 2110 } |
2111 m_bStandardSecurity = FALSE; | 2111 m_bStandardSecurity = FALSE; |
2112 } | 2112 } |
OLD | NEW |