Remove duplicate code in CPWL_EditImpl_Provider.
CPWL_EditImpl_Provider sometimes overrides CPDF_VariableText::Provider
with the same code as the base class. Remove this duplication.
Change-Id: I7388b9050a7b5c49013eb9a019bc8261051712da
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/79056
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdfdoc/cpdf_variabletext.h b/core/fpdfdoc/cpdf_variabletext.h
index 4baa125..8c43b1f 100644
--- a/core/fpdfdoc/cpdf_variabletext.h
+++ b/core/fpdfdoc/cpdf_variabletext.h
@@ -62,6 +62,8 @@
virtual bool IsLatinWord(uint16_t word);
virtual int32_t GetDefaultFontIndex();
+ IPVT_FontMap* GetFontMap() { return m_pFontMap.Get(); }
+
private:
UnownedPtr<IPVT_FontMap> const m_pFontMap;
};
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.cpp b/fpdfsdk/pwl/cpwl_edit_impl.cpp
index 307c635..44a1d67 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.cpp
+++ b/fpdfsdk/pwl/cpwl_edit_impl.cpp
@@ -101,49 +101,28 @@
}
CPWL_EditImpl_Provider::CPWL_EditImpl_Provider(IPVT_FontMap* pFontMap)
- : CPDF_VariableText::Provider(pFontMap), m_pFontMap(pFontMap) {
- DCHECK(m_pFontMap);
-}
+ : CPDF_VariableText::Provider(pFontMap) {}
CPWL_EditImpl_Provider::~CPWL_EditImpl_Provider() = default;
-IPVT_FontMap* CPWL_EditImpl_Provider::GetFontMap() const {
- return m_pFontMap;
-}
-
int CPWL_EditImpl_Provider::GetCharWidth(int32_t nFontIndex, uint16_t word) {
- RetainPtr<CPDF_Font> pPDFFont = m_pFontMap->GetPDFFont(nFontIndex);
+ RetainPtr<CPDF_Font> pPDFFont = GetFontMap()->GetPDFFont(nFontIndex);
if (!pPDFFont)
return 0;
uint32_t charcode = pPDFFont->IsUnicodeCompatible()
? pPDFFont->CharCodeFromUnicode(word)
- : m_pFontMap->CharCodeFromUnicode(nFontIndex, word);
-
+ : GetFontMap()->CharCodeFromUnicode(nFontIndex, word);
if (charcode == CPDF_Font::kInvalidCharCode)
return 0;
return pPDFFont->GetCharWidthF(charcode);
}
-int32_t CPWL_EditImpl_Provider::GetTypeAscent(int32_t nFontIndex) {
- RetainPtr<CPDF_Font> pPDFFont = m_pFontMap->GetPDFFont(nFontIndex);
- return pPDFFont ? pPDFFont->GetTypeAscent() : 0;
-}
-
-int32_t CPWL_EditImpl_Provider::GetTypeDescent(int32_t nFontIndex) {
- RetainPtr<CPDF_Font> pPDFFont = m_pFontMap->GetPDFFont(nFontIndex);
- return pPDFFont ? pPDFFont->GetTypeDescent() : 0;
-}
-
int32_t CPWL_EditImpl_Provider::GetWordFontIndex(uint16_t word,
int32_t charset,
int32_t nFontIndex) {
- return m_pFontMap->GetWordFontIndex(word, charset, nFontIndex);
-}
-
-int32_t CPWL_EditImpl_Provider::GetDefaultFontIndex() {
- return 0;
+ return GetFontMap()->GetWordFontIndex(word, charset, nFontIndex);
}
bool CPWL_EditImpl_Provider::IsLatinWord(uint16_t word) {
diff --git a/fpdfsdk/pwl/cpwl_edit_impl.h b/fpdfsdk/pwl/cpwl_edit_impl.h
index 3e3950a..6a35c3e 100644
--- a/fpdfsdk/pwl/cpwl_edit_impl.h
+++ b/fpdfsdk/pwl/cpwl_edit_impl.h
@@ -445,20 +445,12 @@
explicit CPWL_EditImpl_Provider(IPVT_FontMap* pFontMap);
~CPWL_EditImpl_Provider() override;
- IPVT_FontMap* GetFontMap() const;
-
// CPDF_VariableText::Provider:
int GetCharWidth(int32_t nFontIndex, uint16_t word) override;
- int32_t GetTypeAscent(int32_t nFontIndex) override;
- int32_t GetTypeDescent(int32_t nFontIndex) override;
int32_t GetWordFontIndex(uint16_t word,
int32_t charset,
int32_t nFontIndex) override;
- int32_t GetDefaultFontIndex() override;
bool IsLatinWord(uint16_t word) override;
-
- private:
- UnownedPtr<IPVT_FontMap> m_pFontMap;
};
#endif // FPDFSDK_PWL_CPWL_EDIT_IMPL_H_