Clean up CPDF_DefaultAppearance - Disallow copy and assign. - Make GetFont() do string operations more efficiently. Change-Id: I193198bbc28ba2c9a0d3120a8ac7ec1ca014c657 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/131670 Reviewed-by: Tom Sepez <tsepez@chromium.org> Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdfdoc/cpdf_defaultappearance.cpp b/core/fpdfdoc/cpdf_defaultappearance.cpp index 382b75a..9c6c1f1 100644 --- a/core/fpdfdoc/cpdf_defaultappearance.cpp +++ b/core/fpdfdoc/cpdf_defaultappearance.cpp
@@ -61,9 +61,6 @@ CPDF_DefaultAppearance::CPDF_DefaultAppearance(const ByteString& csDA) : da_(csDA) {} -CPDF_DefaultAppearance::CPDF_DefaultAppearance( - const CPDF_DefaultAppearance& cDA) = default; - CPDF_DefaultAppearance::~CPDF_DefaultAppearance() = default; std::optional<ByteString> CPDF_DefaultAppearance::GetFont( @@ -73,14 +70,14 @@ return std::nullopt; } - ByteString csFontNameTag; CPDF_SimpleParser syntax(da_.AsStringView().unsigned_span()); - if (FindTagParamFromStart(&syntax, "Tf", 2)) { - csFontNameTag = ByteString(syntax.GetWord()); - csFontNameTag.Delete(0, 1); - *fFontSize = StringToFloat(syntax.GetWord()); + if (!FindTagParamFromStart(&syntax, "Tf", 2)) { + return ByteString(); } - return PDF_NameDecode(csFontNameTag.AsStringView()); + + ByteString name = PDF_NameDecode(syntax.GetWord().Substr(1)); + *fFontSize = StringToFloat(syntax.GetWord()); + return name; } std::optional<CFX_Color> CPDF_DefaultAppearance::GetColor() const {
diff --git a/core/fpdfdoc/cpdf_defaultappearance.h b/core/fpdfdoc/cpdf_defaultappearance.h index d4d09df..147fab2 100644 --- a/core/fpdfdoc/cpdf_defaultappearance.h +++ b/core/fpdfdoc/cpdf_defaultappearance.h
@@ -17,7 +17,8 @@ class CPDF_DefaultAppearance { public: explicit CPDF_DefaultAppearance(const ByteString& csDA); - CPDF_DefaultAppearance(const CPDF_DefaultAppearance& cDA); + CPDF_DefaultAppearance(const CPDF_DefaultAppearance&) = delete; + CPDF_DefaultAppearance& operator=(const CPDF_DefaultAppearance&) = delete; ~CPDF_DefaultAppearance(); std::optional<ByteString> GetFont(float* fFontSize) const;