diff options
Diffstat (limited to 'core/fpdfapi/edit/cpdf_encryptor.cpp')
-rw-r--r-- | core/fpdfapi/edit/cpdf_encryptor.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/core/fpdfapi/edit/cpdf_encryptor.cpp b/core/fpdfapi/edit/cpdf_encryptor.cpp index 033df38a48..fd969b8b2c 100644 --- a/core/fpdfapi/edit/cpdf_encryptor.cpp +++ b/core/fpdfapi/edit/cpdf_encryptor.cpp @@ -9,21 +9,23 @@ CPDF_Encryptor::CPDF_Encryptor(CPDF_CryptoHandler* pHandler, int objnum, - const uint8_t* src_data, - uint32_t src_size) { - if (src_size == 0) + pdfium::span<const uint8_t> src_data) { + if (src_data.empty()) return; if (!pHandler) { - m_pData = src_data; - m_dwSize = src_size; + m_Span = src_data; return; } - m_dwSize = pHandler->EncryptGetSize(objnum, 0, src_data, src_size); - m_pNewBuf.reset(FX_Alloc(uint8_t, m_dwSize)); - pHandler->EncryptContent(objnum, 0, src_data, src_size, m_pNewBuf.get(), - m_dwSize); - m_pData = m_pNewBuf.get(); + + uint32_t buf_size = + pHandler->EncryptGetSize(objnum, 0, src_data.data(), src_data.size()); + m_NewBuf.resize(buf_size); + pHandler->EncryptContent(objnum, 0, src_data.data(), src_data.size(), + m_NewBuf.data(), + buf_size); // Updates |buf_size| with actual. + m_NewBuf.resize(buf_size); + m_Span = m_NewBuf; } CPDF_Encryptor::~CPDF_Encryptor() {} |