From b6b01cb2cbaf6b38736f4dfebb9b6cdc243960f9 Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Wed, 20 Jun 2018 16:10:13 +0000 Subject: 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 Commit-Queue: Tom Sepez --- core/fpdfapi/edit/cpdf_creator.cpp | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) (limited to 'core/fpdfapi') 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(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; } } -- cgit v1.2.3