diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-06-20 16:10:13 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-06-20 16:10:13 +0000 |
commit | b6b01cb2cbaf6b38736f4dfebb9b6cdc243960f9 (patch) | |
tree | 3219404f5dbafe19205ce85d19acaf3b1178f977 /core/fpdfapi | |
parent | b3345feca2741cef2073d18da414237589528dd0 (diff) | |
download | pdfium-b6b01cb2cbaf6b38736f4dfebb9b6cdc243960f9.tar.xz |
Re-work some more c_str() usage.
Many of these are converting ByteString => c_str => ByteStringView, since
the ByteStringView ctor is implicit. This is unfortunate, since that
involves a strlen() which the ByteString already knows if we use
AsStringView() instead.
This changed one test result where we can now return the string
"\0" instead of "" -- since strlen no longer eats the NUL. This
seems consistent, say, with String.fromCharCode().
Change-Id: I17f68d1a1f4b352960208f9148e68ab4c4d78bd2
Reviewed-on: https://pdfium-review.googlesource.com/35590
Reviewed-by: dsinclair <dsinclair@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'core/fpdfapi')
-rw-r--r-- | core/fpdfapi/edit/cpdf_creator.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/core/fpdfapi/edit/cpdf_creator.cpp b/core/fpdfapi/edit/cpdf_creator.cpp index ff8d4bb82f..f8beccbad3 100644 --- a/core/fpdfapi/edit/cpdf_creator.cpp +++ b/core/fpdfapi/edit/cpdf_creator.cpp @@ -214,10 +214,7 @@ bool CPDF_Creator::WriteDirectObj(uint32_t objnum, return false; break; } - CPDF_Encryptor encryptor( - GetCryptoHandler(), objnum, - pdfium::make_span(reinterpret_cast<const uint8_t*>(str.c_str()), - str.GetLength())); + CPDF_Encryptor encryptor(GetCryptoHandler(), objnum, str.AsRawSpan()); ByteString content = PDF_EncodeString( ByteString(encryptor.GetSpan().data(), encryptor.GetSpan().size()), bHex); @@ -506,12 +503,12 @@ int32_t CPDF_Creator::WriteDoc_Stage3() { else str = ByteString::Format("%d %d\r\n", i, j - i); - if (!m_Archive->WriteBlock(str.c_str(), str.GetLength())) + if (!m_Archive->WriteString(str.AsStringView())) return -1; while (i < j) { str = ByteString::Format("%010d 00000 n\r\n", m_ObjectOffsets[i++]); - if (!m_Archive->WriteBlock(str.c_str(), str.GetLength())) + if (!m_Archive->WriteString(str.AsStringView())) return -1; } if (i > dwLastObjNum) @@ -540,13 +537,13 @@ int32_t CPDF_Creator::WriteDoc_Stage3() { else str = ByteString::Format("%d %d\r\n", objnum, j - i); - if (!m_Archive->WriteBlock(str.c_str(), str.GetLength())) + if (!m_Archive->WriteString(str.AsStringView())) return -1; while (i < j) { objnum = m_NewObjNumArray[i++]; str = ByteString::Format("%010d 00000 n\r\n", m_ObjectOffsets[objnum]); - if (!m_Archive->WriteBlock(str.c_str(), str.GetLength())) + if (!m_Archive->WriteString(str.AsStringView())) return -1; } } |