Add a 2-parameter CPDF_String ctor
Prepare for removing the 3-parameter CPDF_String ctor by adding a
2-param ctor that covers the majority of the use cases, where the `bHex`
argument is false.
Change-Id: I6b4f99c87201e71712303b8c9be2f2406597edb1
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/119391
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Thomas Sepez <tsepez@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfapi/page/cpdf_docpagedata.cpp b/core/fpdfapi/page/cpdf_docpagedata.cpp
index 1f57f07..b1f9635 100644
--- a/core/fpdfapi/page/cpdf_docpagedata.cpp
+++ b/core/fpdfapi/page/cpdf_docpagedata.cpp
@@ -755,8 +755,8 @@
pFontDict->SetNewFor<CPDF_Name>("BaseFont", basefont);
auto pCIDSysInfo = pFontDict->SetNewFor<CPDF_Dictionary>("CIDSystemInfo");
- pCIDSysInfo->SetNewFor<CPDF_String>("Registry", "Adobe", false);
- pCIDSysInfo->SetNewFor<CPDF_String>("Ordering", ordering, false);
+ pCIDSysInfo->SetNewFor<CPDF_String>("Registry", "Adobe");
+ pCIDSysInfo->SetNewFor<CPDF_String>("Ordering", ordering);
pCIDSysInfo->SetNewFor<CPDF_Number>("Supplement", supplement);
auto pArray = pBaseDict->SetNewFor<CPDF_Array>("DescendantFonts");
diff --git a/core/fpdfapi/page/cpdf_streamparser.cpp b/core/fpdfapi/page/cpdf_streamparser.cpp
index 83fdc81..ec003a5 100644
--- a/core/fpdfapi/page/cpdf_streamparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamparser.cpp
@@ -328,12 +328,13 @@
if (first_char == '(') {
ByteString str = ReadString();
- return pdfium::MakeRetain<CPDF_String>(m_pPool, str, false);
+ return pdfium::MakeRetain<CPDF_String>(m_pPool, str);
}
if (first_char == '<') {
- if (m_WordSize == 1)
+ if (m_WordSize == 1) {
return pdfium::MakeRetain<CPDF_String>(m_pPool, ReadHexString(), true);
+ }
auto pDict = pdfium::MakeRetain<CPDF_Dictionary>(m_pPool);
while (true) {
diff --git a/core/fpdfapi/parser/cpdf_document_unittest.cpp b/core/fpdfapi/parser/cpdf_document_unittest.cpp
index 49b59cb..99a7978 100644
--- a/core/fpdfapi/parser/cpdf_document_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_document_unittest.cpp
@@ -229,7 +229,7 @@
EXPECT_TRUE(CPDF_Document::IsValidPageObject(dict_type_name_page.Get()));
auto dict_type_string_page = pdfium::MakeRetain<CPDF_Dictionary>();
- dict_type_string_page->SetNewFor<CPDF_String>("Type", "Page", false);
+ dict_type_string_page->SetNewFor<CPDF_String>("Type", "Page");
document.AddIndirectObject(dict_type_string_page);
EXPECT_FALSE(CPDF_Document::IsValidPageObject(dict_type_string_page.Get()));
diff --git a/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp b/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp
index 5f96ee4..f4a0ef2 100644
--- a/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_object_avail_unittest.cpp
@@ -128,7 +128,7 @@
TEST(ObjectAvailTest, OneObject) {
TestHolder holder;
- holder.AddObject(1, pdfium::MakeRetain<CPDF_String>(nullptr, "string", false),
+ holder.AddObject(1, pdfium::MakeRetain<CPDF_String>(nullptr, "string"),
TestHolder::ObjectState::Unavailable);
CPDF_ObjectAvail avail(holder.GetValidator(), &holder, 1);
EXPECT_EQ(CPDF_DataAvail::kDataNotAvailable, avail.CheckAvail());
@@ -140,7 +140,7 @@
TestHolder holder;
holder.AddObject(1, pdfium::MakeRetain<CPDF_Reference>(&holder, 2),
TestHolder::ObjectState::Unavailable);
- holder.AddObject(2, pdfium::MakeRetain<CPDF_String>(nullptr, "string", false),
+ holder.AddObject(2, pdfium::MakeRetain<CPDF_String>(nullptr, "string"),
TestHolder::ObjectState::Unavailable);
CPDF_ObjectAvail avail(holder.GetValidator(), &holder, 1);
EXPECT_EQ(CPDF_DataAvail::kDataNotAvailable, avail.CheckAvail());
@@ -245,8 +245,7 @@
// Add string, which is refered by array item. It is should not be checked.
holder.AddObject(
- 3,
- pdfium::MakeRetain<CPDF_String>(nullptr, "Not available string", false),
+ 3, pdfium::MakeRetain<CPDF_String>(nullptr, "Not available string"),
TestHolder::ObjectState::Unavailable);
CPDF_ObjectAvailExcludeArray avail(holder.GetValidator(), &holder, 1);
EXPECT_EQ(CPDF_DataAvail::kDataAvailable, avail.CheckAvail());
@@ -264,17 +263,15 @@
holder.GetTestObject(2)->GetMutableDict()->SetNewFor<CPDF_Reference>(
"Type", &holder, 3);
// The value of "Type" key is not available at start
- holder.AddObject(
- 3, pdfium::MakeRetain<CPDF_String>(nullptr, "Exclude me", false),
- TestHolder::ObjectState::Unavailable);
+ holder.AddObject(3, pdfium::MakeRetain<CPDF_String>(nullptr, "Exclude me"),
+ TestHolder::ObjectState::Unavailable);
holder.GetTestObject(2)->GetMutableDict()->SetNewFor<CPDF_Reference>(
"OtherData", &holder, 4);
// Add string, which is referred by dictionary item. It is should not be
// checked, because the dictionary with it, should be skipped.
holder.AddObject(
- 4,
- pdfium::MakeRetain<CPDF_String>(nullptr, "Not available string", false),
+ 4, pdfium::MakeRetain<CPDF_String>(nullptr, "Not available string"),
TestHolder::ObjectState::Unavailable);
CPDF_ObjectAvailExcludeTypeKey avail(holder.GetValidator(), &holder, 1);
@@ -303,7 +300,7 @@
TEST(ObjectAvailTest, CheckTwice) {
TestHolder holder;
- holder.AddObject(1, pdfium::MakeRetain<CPDF_String>(nullptr, "string", false),
+ holder.AddObject(1, pdfium::MakeRetain<CPDF_String>(nullptr, "string"),
TestHolder::ObjectState::Unavailable);
CPDF_ObjectAvail avail(holder.GetValidator(), &holder, 1);
@@ -325,7 +322,7 @@
"Dict");
root->SetNewFor<CPDF_Reference>("Self", &holder, 1);
- holder.AddObject(2, pdfium::MakeRetain<CPDF_String>(nullptr, "Data", false),
+ holder.AddObject(2, pdfium::MakeRetain<CPDF_String>(nullptr, "Data"),
TestHolder::ObjectState::Unavailable);
CPDF_ObjectAvail avail(holder.GetValidator(), &holder, root);
diff --git a/core/fpdfapi/parser/cpdf_object_stream_unittest.cpp b/core/fpdfapi/parser/cpdf_object_stream_unittest.cpp
index 513ca9b..9b978b3 100644
--- a/core/fpdfapi/parser/cpdf_object_stream_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_object_stream_unittest.cpp
@@ -101,7 +101,7 @@
TEST(ObjectStreamTest, StreamDictWrongType) {
auto dict = pdfium::MakeRetain<CPDF_Dictionary>();
- dict->SetNewFor<CPDF_String>("Type", "ObjStm", /*bHex=*/false);
+ dict->SetNewFor<CPDF_String>("Type", "ObjStm");
dict->SetNewFor<CPDF_Number>("N", 3);
dict->SetNewFor<CPDF_Number>("First", 5);
diff --git a/core/fpdfapi/parser/cpdf_object_unittest.cpp b/core/fpdfapi/parser/cpdf_object_unittest.cpp
index 16370fb..e8bc399 100644
--- a/core/fpdfapi/parser/cpdf_object_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_object_unittest.cpp
@@ -278,7 +278,7 @@
}
TEST_F(PDFObjectsTest, GetNameFor) {
- m_DictObj->SetNewFor<CPDF_String>("string", "ium", false);
+ m_DictObj->SetNewFor<CPDF_String>("string", "ium");
m_DictObj->SetNewFor<CPDF_Name>("name", "Pdf");
EXPECT_EQ("", m_DictObj->GetNameFor("invalid"));
@@ -552,7 +552,7 @@
auto string_array = pdfium::MakeRetain<CPDF_Array>();
auto name_array = pdfium::MakeRetain<CPDF_Array>();
for (size_t i = 0; i < std::size(vals); ++i) {
- string_array->InsertNewAt<CPDF_String>(i, vals[i], false);
+ string_array->InsertNewAt<CPDF_String>(i, vals[i]);
name_array->InsertNewAt<CPDF_Name>(i, vals[i]);
}
for (size_t i = 0; i < std::size(vals); ++i) {
@@ -682,8 +682,8 @@
arr->InsertNewAt<CPDF_Number>(3, -1234);
arr->InsertNewAt<CPDF_Number>(4, 2345.0f);
arr->InsertNewAt<CPDF_Number>(5, 0.05f);
- arr->InsertNewAt<CPDF_String>(6, "", false);
- arr->InsertNewAt<CPDF_String>(7, "It is a test!", false);
+ arr->InsertNewAt<CPDF_String>(6, "");
+ arr->InsertNewAt<CPDF_String>(7, "It is a test!");
arr->InsertNewAt<CPDF_Name>(8, "NAME");
arr->InsertNewAt<CPDF_Name>(9, "test");
arr->InsertNewAt<CPDF_Null>(10);
@@ -693,12 +693,12 @@
arr_val->AppendNew<CPDF_Number>(2);
auto dict_val = arr->InsertNewAt<CPDF_Dictionary>(12);
- dict_val->SetNewFor<CPDF_String>("key1", "Linda", false);
- dict_val->SetNewFor<CPDF_String>("key2", "Zoe", false);
+ dict_val->SetNewFor<CPDF_String>("key1", "Linda");
+ dict_val->SetNewFor<CPDF_String>("key2", "Zoe");
auto stream_dict = pdfium::MakeRetain<CPDF_Dictionary>();
- stream_dict->SetNewFor<CPDF_String>("key1", "John", false);
- stream_dict->SetNewFor<CPDF_String>("key2", "King", false);
+ stream_dict->SetNewFor<CPDF_String>("key1", "John");
+ stream_dict->SetNewFor<CPDF_String>("key2", "King");
static constexpr uint8_t kData[] = "A stream for test";
// The data buffer will be owned by stream object, so it needs to be
// dynamically allocated.
@@ -765,7 +765,7 @@
auto string_array = pdfium::MakeRetain<CPDF_Array>();
auto name_array = pdfium::MakeRetain<CPDF_Array>();
for (const char* val : kVals) {
- string_array->AppendNew<CPDF_String>(val, false);
+ string_array->AppendNew<CPDF_String>(val);
name_array->AppendNew<CPDF_Name>(val);
}
for (size_t i = 0; i < std::size(kVals); ++i) {
@@ -782,7 +782,7 @@
auto int_obj = pdfium::MakeRetain<CPDF_Number>(-1234);
auto float_obj = pdfium::MakeRetain<CPDF_Number>(2345.089f);
auto str_obj =
- pdfium::MakeRetain<CPDF_String>(nullptr, "Adsfdsf 343434 %&&*\n", false);
+ pdfium::MakeRetain<CPDF_String>(nullptr, "Adsfdsf 343434 %&&*\n");
auto name_obj = pdfium::MakeRetain<CPDF_Name>(nullptr, "Title:");
auto null_obj = pdfium::MakeRetain<CPDF_Null>();
RetainPtr<CPDF_Object> indirect_objs[] = {boolean_obj, int_obj, float_obj,
diff --git a/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp b/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp
index 37ead40..82d8004 100644
--- a/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_page_object_avail_unittest.cpp
@@ -112,9 +112,9 @@
holder.GetTestObject(3)->GetMutableDict()->SetNewFor<CPDF_Reference>(
"OtherPageData", &holder, 4);
// Add unavailable object related to other page.
- holder.AddObject(
- 4, pdfium::MakeRetain<CPDF_String>(nullptr, "Other page data", false),
- TestHolder::ObjectState::Unavailable);
+ holder.AddObject(4,
+ pdfium::MakeRetain<CPDF_String>(nullptr, "Other page data"),
+ TestHolder::ObjectState::Unavailable);
CPDF_PageObjectAvail avail(holder.GetValidator(), &holder, 1);
// Now object should be available, although the object '4' is not available,
diff --git a/core/fpdfapi/parser/cpdf_security_handler.cpp b/core/fpdfapi/parser/cpdf_security_handler.cpp
index 3571c6e..33783e4 100644
--- a/core/fpdfapi/parser/cpdf_security_handler.cpp
+++ b/core/fpdfapi/parser/cpdf_security_handler.cpp
@@ -589,7 +589,7 @@
FXSYS_memcpy(tempbuf, kDefaultPasscode, sizeof(kDefaultPasscode)));
CRYPT_ArcFourCryptBlock(tempbuf,
pdfium::make_span(m_EncryptKey).first(key_len));
- pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(tempbuf, 32), false);
+ pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(tempbuf, 32));
} else {
CRYPT_md5_context md5 = CRYPT_MD5Start();
CRYPT_MD5Update(&md5, kDefaultPasscode);
@@ -611,7 +611,7 @@
}
CRYPT_MD5Generate(pdfium::make_span(digest).first(16u),
pdfium::make_span(digest).subspan(16u).data());
- pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(digest, 32), false);
+ pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(digest, 32));
}
InitCryptoHandler();
@@ -638,7 +638,7 @@
CRYPT_SHA256Finish(&sha2, digest1);
}
UNSAFE_TODO(FXSYS_memcpy(digest1 + 32, digest, 16));
- pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(digest1, 48), false);
+ pEncryptDict->SetNewFor<CPDF_String>("U", ByteString(digest1, 48));
if (m_Revision >= 6) {
Revision6_Hash(password, UNSAFE_TODO(digest + 8), nullptr, digest1);
} else {
@@ -652,7 +652,7 @@
uint8_t iv[16] = {};
CRYPT_AESSetIV(&aes, iv);
CRYPT_AESEncrypt(&aes, digest1, m_EncryptKey.data(), m_EncryptKey.size());
- pEncryptDict->SetNewFor<CPDF_String>("UE", ByteString(digest1, 32), false);
+ pEncryptDict->SetNewFor<CPDF_String>("UE", ByteString(digest1, 32));
}
void CPDF_SecurityHandler::AES256_SetPerms(CPDF_Dictionary* pEncryptDict) {
@@ -683,7 +683,7 @@
uint8_t buf1[16];
CRYPT_AESEncrypt(&aes, buf1, buf, 16);
- pEncryptDict->SetNewFor<CPDF_String>("Perms", ByteString(buf1, 16), false);
+ pEncryptDict->SetNewFor<CPDF_String>("Perms", ByteString(buf1, 16));
}
void CPDF_SecurityHandler::InitCryptoHandler() {
diff --git a/core/fpdfapi/parser/cpdf_string.cpp b/core/fpdfapi/parser/cpdf_string.cpp
index f699eb5..ca0dd53 100644
--- a/core/fpdfapi/parser/cpdf_string.cpp
+++ b/core/fpdfapi/parser/cpdf_string.cpp
@@ -17,6 +17,9 @@
CPDF_String::CPDF_String() = default;
+CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pPool, const ByteString& str)
+ : CPDF_String(pPool, str, false) {}
+
CPDF_String::CPDF_String(WeakPtr<ByteStringPool> pPool,
const ByteString& str,
bool bHex)
diff --git a/core/fpdfapi/parser/cpdf_string.h b/core/fpdfapi/parser/cpdf_string.h
index 5ae6277..3b70d37 100644
--- a/core/fpdfapi/parser/cpdf_string.h
+++ b/core/fpdfapi/parser/cpdf_string.h
@@ -32,6 +32,8 @@
private:
CPDF_String();
+ // Same as the 3-param ctor, with `bHex` set to false.
+ CPDF_String(WeakPtr<ByteStringPool> pPool, const ByteString& str);
CPDF_String(WeakPtr<ByteStringPool> pPool, const ByteString& str, bool bHex);
CPDF_String(WeakPtr<ByteStringPool> pPool, WideStringView str);
~CPDF_String() override;
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
index 2980ecd..bfddc14 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
@@ -533,7 +533,7 @@
if (word == "(") {
ByteString str = ReadString();
- return pdfium::MakeRetain<CPDF_String>(m_pPool, str, false);
+ return pdfium::MakeRetain<CPDF_String>(m_pPool, str);
}
if (word == "<") {
ByteString str = ReadHexString();
diff --git a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
index 08c1607..2ec773e 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
@@ -99,7 +99,7 @@
{
// Invalid 1 decoder pipeline due to wrong type.
auto decoders = pdfium::MakeRetain<CPDF_Array>();
- decoders->AppendNew<CPDF_String>("FlateEncode", false);
+ decoders->AppendNew<CPDF_String>("FlateEncode");
EXPECT_FALSE(ValidateDecoderPipeline(decoders.Get()));
}
{
@@ -119,7 +119,7 @@
{
// Invalid 2 decoder pipeline due to wrong type.
auto decoders = pdfium::MakeRetain<CPDF_Array>();
- decoders->AppendNew<CPDF_String>("AHx", false);
+ decoders->AppendNew<CPDF_String>("AHx");
decoders->AppendNew<CPDF_Name>("LZWDecode");
EXPECT_FALSE(ValidateDecoderPipeline(decoders.Get()));
}
@@ -140,7 +140,7 @@
decoders->AppendNew<CPDF_Name>("A85");
decoders->AppendNew<CPDF_Name>("RunLengthDecode");
decoders->AppendNew<CPDF_Name>("FlateDecode");
- decoders->AppendNew<CPDF_String>("RL", false);
+ decoders->AppendNew<CPDF_String>("RL");
EXPECT_FALSE(ValidateDecoderPipeline(decoders.Get()));
}
}
@@ -177,8 +177,7 @@
{
// Invalid 2 decoder pipeline due to wrong type indirect object.
CPDF_IndirectObjectHolder objects_holder;
- auto decoder =
- pdfium::MakeRetain<CPDF_String>(nullptr, "FlateDecode", false);
+ auto decoder = pdfium::MakeRetain<CPDF_String>(nullptr, "FlateDecode");
uint32_t decoder_number =
objects_holder.AddIndirectObject(std::move(decoder));
@@ -213,7 +212,7 @@
{
// Wrong filter type.
auto dict = pdfium::MakeRetain<CPDF_Dictionary>();
- dict->SetNewFor<CPDF_String>("Filter", "RL", false);
+ dict->SetNewFor<CPDF_String>("Filter", "RL");
std::optional<DecoderArray> decoder_array = GetDecoderArray(dict);
EXPECT_FALSE(decoder_array.has_value());
}
diff --git a/core/fpdfdoc/cpdf_action_unittest.cpp b/core/fpdfdoc/cpdf_action_unittest.cpp
index a787711..cf59a6a 100644
--- a/core/fpdfdoc/cpdf_action_unittest.cpp
+++ b/core/fpdfdoc/cpdf_action_unittest.cpp
@@ -39,14 +39,14 @@
const ByteString& action_type) {
auto dict = pdfium::MakeRetain<CPDF_Dictionary>();
dict->SetNewFor<CPDF_Name>("Type", "Action");
- dict->SetNewFor<CPDF_String>("S", action_type, /*is_hex=*/false);
+ dict->SetNewFor<CPDF_String>("S", action_type);
return dict;
}
RetainPtr<CPDF_Dictionary> CreateInvalidActionDictWithoutType(
const ByteString& action_type) {
auto dict = pdfium::MakeRetain<CPDF_Dictionary>();
- dict->SetNewFor<CPDF_String>("S", action_type, /*is_hex=*/false);
+ dict->SetNewFor<CPDF_String>("S", action_type);
return dict;
}
diff --git a/core/fpdfdoc/cpdf_annotlist.cpp b/core/fpdfdoc/cpdf_annotlist.cpp
index 14c3d14..f3f4a86 100644
--- a/core/fpdfdoc/cpdf_annotlist.cpp
+++ b/core/fpdfdoc/cpdf_annotlist.cpp
@@ -92,9 +92,8 @@
pAnnotDict->SetNewFor<CPDF_Name>(pdfium::annotation::kSubtype, "Popup");
pAnnotDict->SetNewFor<CPDF_String>(
pdfium::form_fields::kT,
- pParentDict->GetByteStringFor(pdfium::form_fields::kT), false);
- pAnnotDict->SetNewFor<CPDF_String>(pdfium::annotation::kContents, contents,
- /*bHex=*/false);
+ pParentDict->GetByteStringFor(pdfium::form_fields::kT));
+ pAnnotDict->SetNewFor<CPDF_String>(pdfium::annotation::kContents, contents);
CFX_FloatRect rect = pParentDict->GetRectFor(pdfium::annotation::kRect);
rect.Normalize();
@@ -166,7 +165,7 @@
pAnnotDict->SetNewFor<CPDF_String>(
pdfium::annotation::kAS,
- pParentDict->GetByteStringFor(pdfium::annotation::kAS), false);
+ pParentDict->GetByteStringFor(pdfium::annotation::kAS));
}
} // namespace
diff --git a/core/fpdfdoc/cpdf_annotlist_unittest.cpp b/core/fpdfdoc/cpdf_annotlist_unittest.cpp
index 653fdff..e15c110 100644
--- a/core/fpdfdoc/cpdf_annotlist_unittest.cpp
+++ b/core/fpdfdoc/cpdf_annotlist_unittest.cpp
@@ -48,8 +48,7 @@
RetainPtr<CPDF_Dictionary> annotation =
page_->GetOrCreateAnnotsArray()->AppendNew<CPDF_Dictionary>();
annotation->SetNewFor<CPDF_Name>(pdfium::annotation::kSubtype, "Text");
- annotation->SetNewFor<CPDF_String>(pdfium::annotation::kContents, contents,
- /*bHex=*/false);
+ annotation->SetNewFor<CPDF_String>(pdfium::annotation::kContents, contents);
}
std::unique_ptr<CPDF_TestDocument> document_;
diff --git a/core/fpdfdoc/cpdf_bafontmap_unittest.cpp b/core/fpdfdoc/cpdf_bafontmap_unittest.cpp
index 25e7da5..db85b9f 100644
--- a/core/fpdfdoc/cpdf_bafontmap_unittest.cpp
+++ b/core/fpdfdoc/cpdf_bafontmap_unittest.cpp
@@ -23,8 +23,7 @@
auto annot_dict = pdfium::MakeRetain<CPDF_Dictionary>();
annot_dict->SetNewFor<CPDF_Name>(pdfium::annotation::kSubtype, "Widget");
- annot_dict->SetNewFor<CPDF_String>("DA", "0 0 0 rg /F1 12 Tf",
- /*bHex=*/false);
+ annot_dict->SetNewFor<CPDF_String>("DA", "0 0 0 rg /F1 12 Tf");
CPDF_BAFontMap font_map(&doc, std::move(annot_dict), "N");
#if !BUILDFLAG(IS_WIN)
@@ -51,8 +50,7 @@
auto annot_dict = pdfium::MakeRetain<CPDF_Dictionary>();
annot_dict->SetNewFor<CPDF_Name>(pdfium::annotation::kSubtype, "Widget");
- annot_dict->SetNewFor<CPDF_String>("DA", "0 0 0 rg /F1 12 Tf",
- /*bHex=*/false);
+ annot_dict->SetNewFor<CPDF_String>("DA", "0 0 0 rg /F1 12 Tf");
CPDF_BAFontMap font_map(&doc, std::move(annot_dict), "N");
EXPECT_EQ(font_map.GetPDFFontAlias(0), "F1");
diff --git a/core/fpdfdoc/cpdf_filespec_unittest.cpp b/core/fpdfdoc/cpdf_filespec_unittest.cpp
index cc2eb9c..11dfb0f 100644
--- a/core/fpdfdoc/cpdf_filespec_unittest.cpp
+++ b/core/fpdfdoc/cpdf_filespec_unittest.cpp
@@ -116,7 +116,7 @@
}
// With all the former fields and 'FS' field suggests 'URL' type.
- dict_obj->SetNewFor<CPDF_String>("FS", "URL", false);
+ dict_obj->SetNewFor<CPDF_String>("FS", "URL");
// Url string is not decoded.
EXPECT_EQ(test_data[4].input, file_spec.GetFileName());
}
@@ -134,7 +134,7 @@
dict_obj->SetNewFor<CPDF_Name>(key, "http://evil.org");
EXPECT_TRUE(file_spec.GetFileName().IsEmpty());
}
- dict_obj->SetNewFor<CPDF_String>("FS", "URL", false);
+ dict_obj->SetNewFor<CPDF_String>("FS", "URL");
EXPECT_TRUE(file_spec.GetFileName().IsEmpty());
}
}
@@ -191,7 +191,7 @@
file_spec.GetFileStream()->GetUnicodeText().ToUTF8());
if (i == 2) {
- dict_obj->SetNewFor<CPDF_String>("FS", "URL", false);
+ dict_obj->SetNewFor<CPDF_String>("FS", "URL");
EXPECT_FALSE(file_spec.GetFileStream());
}
}
diff --git a/core/fpdfdoc/cpdf_interactiveform.cpp b/core/fpdfdoc/cpdf_interactiveform.cpp
index 270cd5e..e2da3f9 100644
--- a/core/fpdfdoc/cpdf_interactiveform.cpp
+++ b/core/fpdfdoc/cpdf_interactiveform.cpp
@@ -308,7 +308,7 @@
if (pFont)
csDA = "/" + PDF_NameEncode(csBaseName) + " 0 Tf ";
csDA += "0 g";
- pFormDict->SetNewFor<CPDF_String>("DA", csDA, /*bHex=*/false);
+ pFormDict->SetNewFor<CPDF_String>("DA", csDA);
return pFormDict;
}
@@ -958,8 +958,7 @@
auto pNewDict = pDoc->New<CPDF_Dictionary>();
pNewDict->SetNewFor<CPDF_Name>("Type", "Filespec");
WideString wsStr = CPDF_FileSpec::EncodeFileName(pdf_path);
- pNewDict->SetNewFor<CPDF_String>(pdfium::stream::kF, wsStr.ToDefANSI(),
- false);
+ pNewDict->SetNewFor<CPDF_String>(pdfium::stream::kF, wsStr.ToDefANSI());
pNewDict->SetNewFor<CPDF_String>("UF", wsStr.AsStringView());
pMainDict->SetFor("F", pNewDict);
}
@@ -997,8 +996,7 @@
ByteString csBExport = PDF_EncodeText(csExport.AsStringView());
RetainPtr<const CPDF_Object> pOpt = pField->GetFieldAttr("Opt");
if (pOpt) {
- pFieldDict->SetNewFor<CPDF_String>(pdfium::form_fields::kV, csBExport,
- false);
+ pFieldDict->SetNewFor<CPDF_String>(pdfium::form_fields::kV, csBExport);
} else {
pFieldDict->SetNewFor<CPDF_Name>(pdfium::form_fields::kV, csBExport);
}
diff --git a/core/fpdfdoc/cpdf_nametree_unittest.cpp b/core/fpdfdoc/cpdf_nametree_unittest.cpp
index 8ee494d..413c914 100644
--- a/core/fpdfdoc/cpdf_nametree_unittest.cpp
+++ b/core/fpdfdoc/cpdf_nametree_unittest.cpp
@@ -13,7 +13,7 @@
namespace {
void AddNameKeyValue(CPDF_Array* names, const char* key, int value) {
- names->AppendNew<CPDF_String>(key, false);
+ names->AppendNew<CPDF_String>(key);
names->AppendNew<CPDF_Number>(value);
}
@@ -30,8 +30,8 @@
const char* least,
const char* greatest) {
auto limits = node->SetNewFor<CPDF_Array>("Limits");
- limits->AppendNew<CPDF_String>(least, false);
- limits->AppendNew<CPDF_String>(greatest, false);
+ limits->AppendNew<CPDF_String>(least);
+ limits->AppendNew<CPDF_String>(greatest);
}
void CheckLimitsArray(const CPDF_Dictionary* node,
diff --git a/fpdfsdk/cpdfsdk_appstream.cpp b/fpdfsdk/cpdfsdk_appstream.cpp
index 55cc243..9bea26f 100644
--- a/fpdfsdk/cpdfsdk_appstream.cpp
+++ b/fpdfsdk/cpdfsdk_appstream.cpp
@@ -1099,7 +1099,7 @@
if (pImageDict->KeyExist("Name"))
return;
- pImageDict->SetNewFor<CPDF_String>("Name", name, false);
+ pImageDict->SetNewFor<CPDF_String>("Name", name);
}
std::optional<CheckStyle> CheckStyleFromCaption(const WideString& caption) {
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp
index c2d58c1..027bd56 100644
--- a/fpdfsdk/cpdfsdk_baannot.cpp
+++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -110,7 +110,7 @@
void CPDFSDK_BAAnnot::SetAppStateOff() {
RetainPtr<CPDF_Dictionary> pDict = GetMutableAnnotDict();
- pDict->SetNewFor<CPDF_String>(pdfium::annotation::kAS, "Off", false);
+ pDict->SetNewFor<CPDF_String>(pdfium::annotation::kAS, "Off");
}
ByteString CPDFSDK_BAAnnot::GetAppState() const {
diff --git a/fpdfsdk/fpdf_annot.cpp b/fpdfsdk/fpdf_annot.cpp
index 637f9c7..ea171fa 100644
--- a/fpdfsdk/fpdf_annot.cpp
+++ b/fpdfsdk/fpdf_annot.cpp
@@ -1490,7 +1490,7 @@
auto action = annot_dict->SetNewFor<CPDF_Dictionary>("A");
action->SetNewFor<CPDF_Name>("Type", "Action");
action->SetNewFor<CPDF_Name>("S", "URI");
- action->SetNewFor<CPDF_String>("URI", uri, /*bHex=*/false);
+ action->SetNewFor<CPDF_String>("URI", uri);
return true;
}
diff --git a/fpdfsdk/fpdf_attachment.cpp b/fpdfsdk/fpdf_attachment.cpp
index 5153d11..89b71f9 100644
--- a/fpdfsdk/fpdf_attachment.cpp
+++ b/fpdfsdk/fpdf_attachment.cpp
@@ -192,8 +192,8 @@
if (stringValue->IsHex()) {
ByteString encoded =
PDF_HexEncodeString(stringValue->GetString().AsStringView());
- value = pdfium::MakeRetain<CPDF_String>(nullptr, encoded, false)
- ->GetUnicodeText();
+ value =
+ pdfium::MakeRetain<CPDF_String>(nullptr, encoded)->GetUnicodeText();
}
}
// SAFETY: required from caller.
@@ -233,8 +233,7 @@
ByteString::Format("D:%d%02d%02d%02d%02d%02d", dateTime.GetYear(),
dateTime.GetMonth(), dateTime.GetDay(),
dateTime.GetHour(), dateTime.GetMinute(),
- dateTime.GetSecond()),
- false);
+ dateTime.GetSecond()));
// SAFETY: required from caller.
pdfium::span<const uint8_t> contents_span = UNSAFE_BUFFERS(
diff --git a/fpdfsdk/fpdf_catalog_unittest.cpp b/fpdfsdk/fpdf_catalog_unittest.cpp
index 7a45cb0..b5f655a 100644
--- a/fpdfsdk/fpdf_catalog_unittest.cpp
+++ b/fpdfsdk/fpdf_catalog_unittest.cpp
@@ -52,7 +52,7 @@
EXPECT_FALSE(FPDFCatalog_IsTagged(m_pDoc.get()));
// Root with other key
- m_pRootObj->SetNewFor<CPDF_String>("OTHER_KEY", "other value", false);
+ m_pRootObj->SetNewFor<CPDF_String>("OTHER_KEY", "other value");
EXPECT_FALSE(FPDFCatalog_IsTagged(m_pDoc.get()));
// Root with empty MarkInfo
diff --git a/fpdfsdk/fpdf_editpage.cpp b/fpdfsdk/fpdf_editpage.cpp
index e6ff79a..49e623a 100644
--- a/fpdfsdk/fpdf_editpage.cpp
+++ b/fpdfsdk/fpdf_editpage.cpp
@@ -174,7 +174,7 @@
RetainPtr<CPDF_Dictionary> pInfoDict = pDoc->GetInfo();
if (pInfoDict) {
if (IsPDFSandboxPolicyEnabled(FPDF_POLICY_MACHINETIME_ACCESS))
- pInfoDict->SetNewFor<CPDF_String>("CreationDate", DateStr, false);
+ pInfoDict->SetNewFor<CPDF_String>("CreationDate", DateStr);
pInfoDict->SetNewFor<CPDF_String>("Creator", L"PDFium");
}
@@ -559,7 +559,7 @@
if (!pParams)
return false;
- pParams->SetNewFor<CPDF_String>(key, value, false);
+ pParams->SetNewFor<CPDF_String>(key, value);
pPageObj->SetDirty(true);
return true;
}
diff --git a/fpdfsdk/fpdf_edittext.cpp b/fpdfsdk/fpdf_edittext.cpp
index fe52b92..9fcf7dd 100644
--- a/fpdfsdk/fpdf_edittext.cpp
+++ b/fpdfsdk/fpdf_edittext.cpp
@@ -114,8 +114,8 @@
// TODO(npm): Maybe use FT_Get_CID_Registry_Ordering_Supplement to get the
// CIDSystemInfo
auto cid_system_info_dict = doc->NewIndirect<CPDF_Dictionary>();
- cid_system_info_dict->SetNewFor<CPDF_String>("Registry", "Adobe", false);
- cid_system_info_dict->SetNewFor<CPDF_String>("Ordering", "Identity", false);
+ cid_system_info_dict->SetNewFor<CPDF_String>("Registry", "Adobe");
+ cid_system_info_dict->SetNewFor<CPDF_String>("Ordering", "Identity");
cid_system_info_dict->SetNewFor<CPDF_Number>("Supplement", 0);
cid_font_dict->SetNewFor<CPDF_Reference>("CIDSystemInfo", doc,
cid_system_info_dict->GetObjNum());
diff --git a/fpdfsdk/fpdf_ppo.cpp b/fpdfsdk/fpdf_ppo.cpp
index 266d021..58e2721 100644
--- a/fpdfsdk/fpdf_ppo.cpp
+++ b/fpdfsdk/fpdf_ppo.cpp
@@ -264,7 +264,7 @@
RetainPtr<CPDF_Dictionary> info = dest()->GetInfo();
if (info) {
- info->SetNewFor<CPDF_String>("Producer", "PDFium", false);
+ info->SetNewFor<CPDF_String>("Producer", "PDFium");
}
if (root->GetByteStringFor("Type", ByteString()).IsEmpty()) {
diff --git a/fpdfsdk/fpdf_save.cpp b/fpdfsdk/fpdf_save.cpp
index d3e03a1..8dee668 100644
--- a/fpdfsdk/fpdf_save.cpp
+++ b/fpdfsdk/fpdf_save.cpp
@@ -119,7 +119,7 @@
auto data_stream = pPDFDocument->NewIndirect<CPDF_Stream>(
pFileWrite, pPDFDocument->New<CPDF_Dictionary>());
int iLast = fxcrt::CollectionSize<int>(*pArray) - 2;
- pArray->InsertNewAt<CPDF_String>(iLast, "datasets", false);
+ pArray->InsertNewAt<CPDF_String>(iLast, "datasets");
pArray->InsertNewAt<CPDF_Reference>(iLast + 1, pPDFDocument,
data_stream->GetObjNum());
}
@@ -139,7 +139,7 @@
auto data_stream = pPDFDocument->NewIndirect<CPDF_Stream>(
pFileWrite, pPDFDocument->New<CPDF_Dictionary>());
int iLast = fxcrt::CollectionSize<int>(*pArray) - 2;
- pArray->InsertNewAt<CPDF_String>(iLast, "form", false);
+ pArray->InsertNewAt<CPDF_String>(iLast, "form");
pArray->InsertNewAt<CPDF_Reference>(iLast + 1, pPDFDocument,
data_stream->GetObjNum());
}