Use modern enum style for CFX_BidiChar::Direction.
Use kFoo style for this enum's values. Also change it to an enum class.
Bug: pdfium:547
Change-Id: Iee4f29b2347eeec0eb6e3d28c84012af6c334cd0
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96090
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 073f7f3..e758ede 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -148,7 +148,8 @@
if (wChar)
str += wChar;
}
- return CFX_BidiString(str).OverallDirection() == CFX_BidiChar::RIGHT;
+ return CFX_BidiString(str).OverallDirection() ==
+ CFX_BidiChar::Direction::kRight;
}
int GetCharWidth(uint32_t charCode, CPDF_Font* pFont) {
@@ -734,14 +735,14 @@
bidi.SetOverallDirectionRight();
CFX_BidiChar::Direction eCurrentDirection = bidi.OverallDirection();
for (const auto& segment : bidi) {
- if (segment.direction == CFX_BidiChar::RIGHT ||
- (segment.direction == CFX_BidiChar::NEUTRAL &&
- eCurrentDirection == CFX_BidiChar::RIGHT)) {
- eCurrentDirection = CFX_BidiChar::RIGHT;
+ if (segment.direction == CFX_BidiChar::Direction::kRight ||
+ (segment.direction == CFX_BidiChar::Direction::kNeutral &&
+ eCurrentDirection == CFX_BidiChar::Direction::kRight)) {
+ eCurrentDirection = CFX_BidiChar::Direction::kRight;
for (int m = segment.start + segment.count; m > segment.start; --m)
AddCharInfoByRLDirection(str[m - 1], m_TempCharList[m - 1]);
} else {
- eCurrentDirection = CFX_BidiChar::LEFT;
+ eCurrentDirection = CFX_BidiChar::Direction::kLeft;
for (int m = segment.start; m < segment.start + segment.count; ++m)
AddCharInfoByLRDirection(str[m], m_TempCharList[m]);
}
diff --git a/core/fxcrt/fx_bidi.cpp b/core/fxcrt/fx_bidi.cpp
index 48b6afa..491403b 100644
--- a/core/fxcrt/fx_bidi.cpp
+++ b/core/fxcrt/fx_bidi.cpp
@@ -12,7 +12,8 @@
#include "third_party/base/check.h"
CFX_BidiChar::CFX_BidiChar()
- : m_CurrentSegment({0, 0, NEUTRAL}), m_LastSegment({0, 0, NEUTRAL}) {}
+ : m_CurrentSegment({0, 0, Direction::kNeutral}),
+ m_LastSegment({0, 0, Direction::kNeutral}) {}
bool CFX_BidiChar::AppendChar(wchar_t wch) {
Direction direction;
@@ -20,14 +21,14 @@
case FX_BIDICLASS::kL:
case FX_BIDICLASS::kAN:
case FX_BIDICLASS::kEN:
- direction = LEFT;
+ direction = Direction::kLeft;
break;
case FX_BIDICLASS::kR:
case FX_BIDICLASS::kAL:
- direction = RIGHT;
+ direction = Direction::kRight;
break;
default:
- direction = NEUTRAL;
+ direction = Direction::kNeutral;
break;
}
@@ -40,7 +41,7 @@
}
bool CFX_BidiChar::EndChar() {
- StartNewSegment(NEUTRAL);
+ StartNewSegment(Direction::kNeutral);
return m_LastSegment.count > 0;
}
@@ -60,15 +61,15 @@
if (bidi.EndChar())
m_Order.push_back(bidi.GetSegmentInfo());
- size_t nR2L = std::count_if(m_Order.begin(), m_Order.end(),
- [](const CFX_BidiChar::Segment& seg) {
- return seg.direction == CFX_BidiChar::RIGHT;
- });
+ size_t nR2L = std::count_if(
+ m_Order.begin(), m_Order.end(), [](const CFX_BidiChar::Segment& seg) {
+ return seg.direction == CFX_BidiChar::Direction::kRight;
+ });
- size_t nL2R = std::count_if(m_Order.begin(), m_Order.end(),
- [](const CFX_BidiChar::Segment& seg) {
- return seg.direction == CFX_BidiChar::LEFT;
- });
+ size_t nL2R = std::count_if(
+ m_Order.begin(), m_Order.end(), [](const CFX_BidiChar::Segment& seg) {
+ return seg.direction == CFX_BidiChar::Direction::kLeft;
+ });
if (nR2L > 0 && nR2L >= nL2R)
SetOverallDirectionRight();
@@ -77,13 +78,13 @@
CFX_BidiString::~CFX_BidiString() = default;
CFX_BidiChar::Direction CFX_BidiString::OverallDirection() const {
- DCHECK(m_eOverallDirection != CFX_BidiChar::NEUTRAL);
+ DCHECK(m_eOverallDirection != CFX_BidiChar::Direction::kNeutral);
return m_eOverallDirection;
}
void CFX_BidiString::SetOverallDirectionRight() {
- if (m_eOverallDirection != CFX_BidiChar::RIGHT) {
+ if (m_eOverallDirection != CFX_BidiChar::Direction::kRight) {
std::reverse(m_Order.begin(), m_Order.end());
- m_eOverallDirection = CFX_BidiChar::RIGHT;
+ m_eOverallDirection = CFX_BidiChar::Direction::kRight;
}
}
diff --git a/core/fxcrt/fx_bidi.h b/core/fxcrt/fx_bidi.h
index 9bc0b17..7d7bca3 100644
--- a/core/fxcrt/fx_bidi.h
+++ b/core/fxcrt/fx_bidi.h
@@ -16,7 +16,7 @@
// Processes characters and group them into segments based on text direction.
class CFX_BidiChar {
public:
- enum Direction { NEUTRAL, LEFT, RIGHT };
+ enum class Direction { kNeutral, kLeft, kRight };
struct Segment {
int32_t start; // Start position.
int32_t count; // Character count.
@@ -65,7 +65,7 @@
private:
const WideString& m_Str;
std::vector<CFX_BidiChar::Segment> m_Order;
- CFX_BidiChar::Direction m_eOverallDirection = CFX_BidiChar::LEFT;
+ CFX_BidiChar::Direction m_eOverallDirection = CFX_BidiChar::Direction::kLeft;
};
#endif // CORE_FXCRT_FX_BIDI_H_
diff --git a/core/fxcrt/fx_bidi_unittest.cpp b/core/fxcrt/fx_bidi_unittest.cpp
index ad598a6..56d4554 100644
--- a/core/fxcrt/fx_bidi_unittest.cpp
+++ b/core/fxcrt/fx_bidi_unittest.cpp
@@ -18,7 +18,7 @@
CFX_BidiChar::Segment info;
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, info.direction);
EXPECT_EQ(0, info.start);
EXPECT_EQ(0, info.count);
EXPECT_FALSE(bidi.EndChar());
@@ -37,13 +37,13 @@
EXPECT_FALSE(bidi.AppendChar(kLeftChar));
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, info.direction);
EXPECT_EQ(0, info.start);
EXPECT_EQ(0, info.count);
EXPECT_TRUE(bidi.EndChar());
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::LEFT, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, info.direction);
EXPECT_EQ(0, info.start);
EXPECT_EQ(3, info.count);
@@ -71,13 +71,13 @@
EXPECT_FALSE(bidi.AppendChar(kNeutralChar));
EXPECT_TRUE(bidi.AppendChar(kRightChar));
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, info.direction);
EXPECT_EQ(3, info.start);
EXPECT_EQ(4, info.count);
EXPECT_TRUE(bidi.EndChar());
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::RIGHT, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, info.direction);
EXPECT_EQ(7, info.start);
EXPECT_EQ(1, info.count);
@@ -105,13 +105,13 @@
EXPECT_FALSE(bidi.AppendChar(kRightChar));
EXPECT_TRUE(bidi.AppendChar(kLeftChar));
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::RIGHT, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, info.direction);
EXPECT_EQ(3, info.start);
EXPECT_EQ(4, info.count);
EXPECT_TRUE(bidi.EndChar());
info = bidi.GetSegmentInfo();
- EXPECT_EQ(CFX_BidiChar::LEFT, info.direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, info.direction);
EXPECT_EQ(7, info.start);
EXPECT_EQ(1, info.count);
@@ -120,7 +120,7 @@
TEST(fxcrt, BidiStringEmpty) {
CFX_BidiString bidi(L"");
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
EXPECT_TRUE(bidi.begin() == bidi.end());
}
@@ -128,26 +128,26 @@
{
const wchar_t str[] = {kNeutralChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
auto it = bidi.begin();
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
++it;
EXPECT_TRUE(it == bidi.end());
}
{
const wchar_t str[] = {kNeutralChar, kNeutralChar, kNeutralChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
auto it = bidi.begin();
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(3, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
++it;
EXPECT_TRUE(it == bidi.end());
}
@@ -157,19 +157,19 @@
{
const wchar_t str[] = {kLeftChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
auto it = bidi.begin();
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(0, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
@@ -178,19 +178,19 @@
{
const wchar_t str[] = {kLeftChar, kLeftChar, kLeftChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
auto it = bidi.begin();
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(0, it->start);
EXPECT_EQ(3, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
@@ -202,19 +202,19 @@
{
const wchar_t str[] = {kRightChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, bidi.OverallDirection());
auto it = bidi.begin();
EXPECT_EQ(0, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
@@ -223,19 +223,19 @@
{
const wchar_t str[] = {kRightChar, kRightChar, kRightChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, bidi.OverallDirection());
auto it = bidi.begin();
EXPECT_EQ(0, it->start);
EXPECT_EQ(3, it->count);
- EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
@@ -246,37 +246,37 @@
TEST(fxcrt, BidiStringLeftNeutralLeftRight) {
const wchar_t str[] = {kLeftChar, kNeutralChar, kLeftChar, kRightChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
auto it = bidi.begin();
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(0, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(1, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(2, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(3, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
@@ -286,37 +286,37 @@
TEST(fxcrt, BidiStringRightNeutralLeftRight) {
const wchar_t str[] = {kRightChar, kNeutralChar, kLeftChar, kRightChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, bidi.OverallDirection());
auto it = bidi.begin();
EXPECT_EQ(3, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(2, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(1, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
EXPECT_EQ(0, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
@@ -326,39 +326,39 @@
TEST(fxcrt, BidiStringReverse) {
const wchar_t str[] = {kLeftChar, kNeutralChar, kRightChar, kLeftChar, 0};
CFX_BidiString bidi(str);
- EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
bidi.SetOverallDirectionRight();
auto it = bidi.begin();
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(3, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(2, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
ASSERT_FALSE(it == bidi.end());
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(1, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(1, it->count);
- EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
++it;
ASSERT_FALSE(it == bidi.end());
EXPECT_EQ(0, it->start);
EXPECT_EQ(0, it->count);
- EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+ EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
++it;
EXPECT_TRUE(it == bidi.end());