Clean up CXFA_FFTabOrderPageWidgetIterator.
- Use shorter, non-Hungarian variable names in
CreateSpaceOrderWidgetArray() and CreateTabOrderWidgetArray().
- Change CreateSpaceOrderWidgetArray() to return a vector instead of
taking it as an out-parameter.
- Stop using pdfium::CollectionSize() in CreateTabOrderWidgetArray() and
consistently use size_t for sizes and indices.
Change-Id: I3bed4616bfab9abe3df9ea4b42661721df42d236
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/70253
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/cxfa_ffpageview.cpp b/xfa/fxfa/cxfa_ffpageview.cpp
index 3e3a7a4..6ff6ee8 100644
--- a/xfa/fxfa/cxfa_ffpageview.cpp
+++ b/xfa/fxfa/cxfa_ffpageview.cpp
@@ -342,47 +342,36 @@
void CXFA_FFTabOrderPageWidgetIterator::CreateTabOrderWidgetArray() {
m_TabOrderWidgetArray.clear();
- std::vector<CXFA_FFWidget*> SpaceOrderWidgetArray;
- CreateSpaceOrderWidgetArray(&SpaceOrderWidgetArray);
- if (SpaceOrderWidgetArray.empty())
+ const std::vector<CXFA_FFWidget*> widgets = CreateSpaceOrderWidgetArray();
+ if (widgets.empty())
return;
- int32_t nWidgetCount = pdfium::CollectionSize<int32_t>(SpaceOrderWidgetArray);
- CXFA_FFWidget* hWidget = SpaceOrderWidgetArray[0];
- while (pdfium::CollectionSize<int32_t>(m_TabOrderWidgetArray) <
- nWidgetCount) {
- if (!pdfium::Contains(m_TabOrderWidgetArray, hWidget->GetLayoutItem())) {
- m_TabOrderWidgetArray.emplace_back(hWidget->GetLayoutItem());
- CXFA_Node* pNode = hWidget->GetNode();
- if (pNode->GetFFWidgetType() == XFA_FFWidgetType::kExclGroup) {
- auto it = std::find(SpaceOrderWidgetArray.begin(),
- SpaceOrderWidgetArray.end(), hWidget);
- int32_t iWidgetIndex = it != SpaceOrderWidgetArray.end()
- ? it - SpaceOrderWidgetArray.begin() + 1
- : 0;
+ CXFA_FFWidget* widget = widgets[0];
+ while (m_TabOrderWidgetArray.size() < widgets.size()) {
+ if (!pdfium::Contains(m_TabOrderWidgetArray, widget->GetLayoutItem())) {
+ m_TabOrderWidgetArray.emplace_back(widget->GetLayoutItem());
+ CXFA_Node* node = widget->GetNode();
+ if (node->GetFFWidgetType() == XFA_FFWidgetType::kExclGroup) {
+ auto it = std::find(widgets.begin(), widgets.end(), widget);
+ size_t index = it != widgets.end() ? it - widgets.begin() + 1 : 0;
while (true) {
- CXFA_FFWidget* radio =
- SpaceOrderWidgetArray[iWidgetIndex % nWidgetCount];
- if (radio->GetNode()->GetExclGroupIfExists() != pNode)
+ CXFA_FFWidget* radio = widgets[index % widgets.size()];
+ if (radio->GetNode()->GetExclGroupIfExists() != node)
break;
- if (!pdfium::Contains(m_TabOrderWidgetArray,
- hWidget->GetLayoutItem())) {
+ if (!pdfium::Contains(m_TabOrderWidgetArray, widget->GetLayoutItem()))
m_TabOrderWidgetArray.emplace_back(radio->GetLayoutItem());
- }
- iWidgetIndex++;
+ ++index;
}
}
- if (CXFA_FFWidget* hTraverseWidget = GetTraverseWidget(hWidget)) {
- hWidget = hTraverseWidget;
+ CXFA_FFWidget* next_widget = GetTraverseWidget(widget);
+ if (next_widget) {
+ widget = next_widget;
continue;
}
}
- auto it = std::find(SpaceOrderWidgetArray.begin(),
- SpaceOrderWidgetArray.end(), hWidget);
- int32_t iWidgetIndex = it != SpaceOrderWidgetArray.end()
- ? it - SpaceOrderWidgetArray.begin() + 1
- : 0;
- hWidget = SpaceOrderWidgetArray[iWidgetIndex % nWidgetCount];
+ auto it = std::find(widgets.begin(), widgets.end(), widget);
+ size_t index = it != widgets.end() ? it - widgets.begin() + 1 : 0;
+ widget = widgets[index % widgets.size()];
}
}
@@ -440,16 +429,17 @@
pContainer->AppendTabParam(pParam.get());
}
-void CXFA_FFTabOrderPageWidgetIterator::CreateSpaceOrderWidgetArray(
- std::vector<CXFA_FFWidget*>* WidgetArray) {
+std::vector<CXFA_FFWidget*>
+CXFA_FFTabOrderPageWidgetIterator::CreateSpaceOrderWidgetArray() {
+ std::vector<CXFA_FFWidget*> widgets;
CXFA_LayoutItemIterator sIterator(m_pPageViewLayout.Get());
auto pParam = std::make_unique<CXFA_TabParam>(nullptr);
bool bCurrentItem = false;
bool bContentArea = false;
OrderContainer(&sIterator, nullptr, pParam.get(), &bCurrentItem,
&bContentArea, false);
- WidgetArray->insert(WidgetArray->end(), pParam->GetChildren().begin(),
- pParam->GetChildren().end());
+ widgets.insert(widgets.end(), pParam->GetChildren().begin(),
+ pParam->GetChildren().end());
sIterator.Reset();
bCurrentItem = false;
@@ -457,8 +447,9 @@
pParam->ClearChildren();
OrderContainer(&sIterator, nullptr, pParam.get(), &bCurrentItem,
&bContentArea, true);
- WidgetArray->insert(WidgetArray->end(), pParam->GetChildren().begin(),
- pParam->GetChildren().end());
+ widgets.insert(widgets.end(), pParam->GetChildren().begin(),
+ pParam->GetChildren().end());
+ return widgets;
}
CXFA_FFWidget* CXFA_FFTabOrderPageWidgetIterator::GetWidget(
diff --git a/xfa/fxfa/cxfa_ffpageview.h b/xfa/fxfa/cxfa_ffpageview.h
index 1025046..5599af0 100644
--- a/xfa/fxfa/cxfa_ffpageview.h
+++ b/xfa/fxfa/cxfa_ffpageview.h
@@ -98,7 +98,7 @@
CXFA_FFWidget* FindWidgetByName(const WideString& wsWidgetName,
CXFA_FFWidget* pRefWidget);
void CreateTabOrderWidgetArray();
- void CreateSpaceOrderWidgetArray(std::vector<CXFA_FFWidget*>* WidgetArray);
+ std::vector<CXFA_FFWidget*> CreateSpaceOrderWidgetArray();
CXFA_FFWidget* GetWidget(CXFA_LayoutItem* pLayoutItem);
void OrderContainer(CXFA_LayoutItemIterator* sIterator,
CXFA_LayoutItem* pViewItem,