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 "core/fpdfapi/edit/editint.h" | 7 #include "core/fpdfapi/edit/editint.h" |
8 | 8 |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 1226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1237 FX_BOOL bExistInMap = !!m_pDocument->GetIndirectObject(objnum); | 1237 FX_BOOL bExistInMap = !!m_pDocument->GetIndirectObject(objnum); |
1238 const uint8_t object_type = m_pParser->GetObjectType(objnum); | 1238 const uint8_t object_type = m_pParser->GetObjectType(objnum); |
1239 bool bObjStm = (object_type == 2) && m_pEncryptDict && !m_pXRefStream; | 1239 bool bObjStm = (object_type == 2) && m_pEncryptDict && !m_pXRefStream; |
1240 if (m_pParser->IsVersionUpdated() || m_bSecurityChanged || bExistInMap || | 1240 if (m_pParser->IsVersionUpdated() || m_bSecurityChanged || bExistInMap || |
1241 bObjStm) { | 1241 bObjStm) { |
1242 CPDF_Object* pObj = m_pDocument->GetOrParseIndirectObject(objnum); | 1242 CPDF_Object* pObj = m_pDocument->GetOrParseIndirectObject(objnum); |
1243 if (!pObj) { | 1243 if (!pObj) { |
1244 m_ObjectOffset[objnum] = 0; | 1244 m_ObjectOffset[objnum] = 0; |
1245 return 0; | 1245 return 0; |
1246 } | 1246 } |
1247 if (WriteIndirectObj(pObj)) | 1247 if (WriteIndirectObj(pObj)) { |
1248 return -1; | 1248 return -1; |
1249 if (!bExistInMap) | 1249 } |
1250 m_pDocument->DeleteIndirectObject(objnum); | 1250 if (!bExistInMap) { |
| 1251 m_pDocument->ReleaseIndirectObject(objnum); |
| 1252 } |
1251 } else { | 1253 } else { |
1252 uint8_t* pBuffer; | 1254 uint8_t* pBuffer; |
1253 uint32_t size; | 1255 uint32_t size; |
1254 m_pParser->GetIndirectBinary(objnum, pBuffer, size); | 1256 m_pParser->GetIndirectBinary(objnum, pBuffer, size); |
1255 if (!pBuffer) { | 1257 if (!pBuffer) { |
1256 return 0; | 1258 return 0; |
1257 } | 1259 } |
1258 if (object_type == 2) { | 1260 if (object_type == 2) { |
1259 if (m_pXRefStream) { | 1261 if (m_pXRefStream) { |
1260 if (WriteIndirectObjectToStream(objnum, pBuffer, size) < 0) { | 1262 if (WriteIndirectObjectToStream(objnum, pBuffer, size) < 0) { |
(...skipping 750 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2011 m_pCryptoHandler = nullptr; | 2013 m_pCryptoHandler = nullptr; |
2012 } | 2014 } |
2013 void CPDF_Creator::ResetStandardSecurity() { | 2015 void CPDF_Creator::ResetStandardSecurity() { |
2014 if (!m_bLocalCryptoHandler) | 2016 if (!m_bLocalCryptoHandler) |
2015 return; | 2017 return; |
2016 | 2018 |
2017 delete m_pCryptoHandler; | 2019 delete m_pCryptoHandler; |
2018 m_pCryptoHandler = nullptr; | 2020 m_pCryptoHandler = nullptr; |
2019 m_bLocalCryptoHandler = FALSE; | 2021 m_bLocalCryptoHandler = FALSE; |
2020 } | 2022 } |
OLD | NEW |