Encapsulate `CPDF_TextPage::CharInfo::m_CharCode`
Add getter and setter, and rename to follow Google C++ style.
Change-Id: Ic94394b8f2965562906d5118a70f2b7b838bd865
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/124735
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 5c4adef..12f5b67 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -236,7 +236,7 @@
bool is_vert_writing = charinfo.text_object()->GetFont()->IsVertWriting();
if (is_vert_writing && charinfo.text_object()->GetFont()->IsCIDFont()) {
CPDF_CIDFont* pCIDFont = charinfo.text_object()->GetFont()->AsCIDFont();
- uint16_t cid = pCIDFont->CIDFromCharCode(charinfo.m_CharCode);
+ uint16_t cid = pCIDFont->CIDFromCharCode(charinfo.char_code());
CFX_Point16 vertical_origin = pCIDFont->GetVertOrigin(cid);
double offsetx = (vertical_origin.x - 500) * font_size / 1000.0;
@@ -255,7 +255,7 @@
int descent = charinfo.text_object()->GetFont()->GetTypeDescent();
if (ascent != descent) {
float width = charinfo.matrix().a *
- charinfo.text_object()->GetCharWidth(charinfo.m_CharCode);
+ charinfo.text_object()->GetCharWidth(charinfo.char_code());
float font_scale = charinfo.matrix().a * font_size / (ascent - descent);
float left = charinfo.origin().x;
@@ -305,7 +305,7 @@
const CharInfo& charinfo = m_CharList[i];
if (charinfo.char_type() == CPDF_TextPage::CharType::kGenerated ||
(charinfo.m_Unicode != 0 && !IsControlChar(charinfo)) ||
- (charinfo.m_Unicode == 0 && charinfo.m_CharCode != 0)) {
+ (charinfo.m_Unicode == 0 && charinfo.char_code() != 0)) {
m_CharIndices.back().count++;
skipped = true;
} else {
@@ -911,8 +911,8 @@
CharInfo charinfo;
charinfo.m_Unicode = wChar;
- charinfo.m_CharCode = pFont->CharCodeFromUnicode(wChar);
charinfo.set_char_type(CPDF_TextPage::CharType::kPiece);
+ charinfo.set_char_code(pFont->CharCodeFromUnicode(wChar));
charinfo.set_text_object(pTextObj);
charinfo.set_origin(pTextObj->GetPos());
CFX_FloatRect char_box(rect);
@@ -1078,13 +1078,13 @@
charinfo.m_Unicode = L' ';
charinfo.set_char_type(CPDF_TextPage::CharType::kGenerated);
charinfo.set_text_object(pTextObj);
- m_TempTextBuf.AppendChar(L' ');
- charinfo.m_CharCode = CPDF_Font::kInvalidCharCode;
+ charinfo.set_char_code(CPDF_Font::kInvalidCharCode);
charinfo.set_origin(matrix.Transform(item.m_Origin));
charinfo.set_char_box(
CFX_FloatRect(charinfo.origin().x, charinfo.origin().y,
charinfo.origin().x, charinfo.origin().y));
charinfo.set_matrix(form_matrix);
+ m_TempTextBuf.AppendChar(L' ');
m_TempCharList.push_back(charinfo);
}
if (item.m_CharCode == CPDF_Font::kInvalidCharCode)
@@ -1097,14 +1097,14 @@
wstrItem += static_cast<wchar_t>(item.m_CharCode);
bNoUnicode = true;
}
- charinfo.m_CharCode = item.m_CharCode;
charinfo.set_char_type(bNoUnicode ? CPDF_TextPage::CharType::kNotUnicode
: CPDF_TextPage::CharType::kNormal);
+ charinfo.set_char_code(item.m_CharCode);
charinfo.set_text_object(pTextObj);
charinfo.set_origin(matrix.Transform(item.m_Origin));
const FX_RECT rect =
- charinfo.text_object()->GetFont()->GetCharBBox(charinfo.m_CharCode);
+ charinfo.text_object()->GetFont()->GetCharBBox(charinfo.char_code());
const float fFontSize = pTextObj->GetFontSize() / 1000;
CFX_FloatRect char_box(rect.left * fFontSize + item.m_Origin.x,
rect.bottom * fFontSize + item.m_Origin.y,
@@ -1115,7 +1115,7 @@
}
if (fabsf(char_box.right - char_box.left) < kSizeEpsilon) {
char_box.right =
- char_box.left + pTextObj->GetCharWidth(charinfo.m_CharCode);
+ char_box.left + pTextObj->GetCharWidth(charinfo.char_code());
}
char_box = matrix.TransformRect(char_box);
charinfo.set_char_box(char_box);
@@ -1136,7 +1136,7 @@
n > fxcrt::CollectionSize<int>(m_TempCharList) - count; --n) {
const CharInfo& charinfo1 = m_TempCharList[n - 1];
CFX_PointF diff = charinfo1.origin() - charinfo.origin();
- if (charinfo1.m_CharCode == charinfo.m_CharCode &&
+ if (charinfo1.char_code() == charinfo.char_code() &&
charinfo1.text_object()->GetFont() ==
charinfo.text_object()->GetFont() &&
fabs(diff.x) < threshold && fabs(diff.y) < threshold) {
@@ -1424,14 +1424,14 @@
return std::nullopt;
CharInfo info;
- info.m_CharCode = CPDF_Font::kInvalidCharCode;
- info.m_Unicode = unicode;
info.set_char_type(CPDF_TextPage::CharType::kGenerated);
+ info.set_char_code(CPDF_Font::kInvalidCharCode);
+ info.m_Unicode = unicode;
int pre_width = 0;
if (pPrevCharInfo->text_object() &&
- pPrevCharInfo->m_CharCode != CPDF_Font::kInvalidCharCode) {
- pre_width = GetCharWidth(pPrevCharInfo->m_CharCode,
+ pPrevCharInfo->char_code() != CPDF_Font::kInvalidCharCode) {
+ pre_width = GetCharWidth(pPrevCharInfo->char_code(),
pPrevCharInfo->text_object()->GetFont().Get());
}
diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h
index 63e3c69..7aad82e 100644
--- a/core/fpdftext/cpdf_textpage.h
+++ b/core/fpdftext/cpdf_textpage.h
@@ -52,6 +52,9 @@
CharType char_type() const { return char_type_; }
void set_char_type(CharType char_type) { char_type_ = char_type; }
+ uint32_t char_code() const { return char_code_; }
+ void set_char_code(uint32_t char_code) { char_code_ = char_code; }
+
const CFX_PointF& origin() const { return origin_; }
void set_origin(const CFX_PointF& origin) { origin_ = origin; }
@@ -67,11 +70,11 @@
text_object_ = text_object;
}
- uint32_t m_CharCode = 0;
wchar_t m_Unicode = 0;
private:
CharType char_type_ = CharType::kNormal;
+ uint32_t char_code_ = 0;
CFX_PointF origin_;
CFX_FloatRect char_box_;
CFX_Matrix matrix_;