Add const version of CXFA_Node::GetChild()
Use it in one place by adding missing const to CFA_Fill::GetColor(),
and then propagate the missing const to its callers.
Change-Id: Ic9296f302f76f948a0821656f9af81e98b846a18
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/84513
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/xfa/fxfa/parser/cxfa_color.cpp b/xfa/fxfa/parser/cxfa_color.cpp
index 1164b8c..d16f14d 100644
--- a/xfa/fxfa/parser/cxfa_color.cpp
+++ b/xfa/fxfa/parser/cxfa_color.cpp
@@ -94,12 +94,12 @@
CXFA_Color::~CXFA_Color() = default;
-FX_ARGB CXFA_Color::GetValue() {
+FX_ARGB CXFA_Color::GetValue() const {
Optional<WideString> val = JSObject()->TryCData(XFA_Attribute::Value, false);
return val.has_value() ? StringToFXARGB(val->AsStringView()) : 0xFF000000;
}
-FX_ARGB CXFA_Color::GetValueOrDefault(FX_ARGB defaultValue) {
+FX_ARGB CXFA_Color::GetValueOrDefault(FX_ARGB defaultValue) const {
Optional<WideString> val = JSObject()->TryCData(XFA_Attribute::Value, false);
return val.has_value() ? StringToFXARGB(val->AsStringView()) : defaultValue;
}
diff --git a/xfa/fxfa/parser/cxfa_color.h b/xfa/fxfa/parser/cxfa_color.h
index 683ce6e..71e03c6 100644
--- a/xfa/fxfa/parser/cxfa_color.h
+++ b/xfa/fxfa/parser/cxfa_color.h
@@ -18,8 +18,8 @@
CONSTRUCT_VIA_MAKE_GARBAGE_COLLECTED;
~CXFA_Color() override;
- FX_ARGB GetValue();
- FX_ARGB GetValueOrDefault(FX_ARGB defaultValue);
+ FX_ARGB GetValue() const;
+ FX_ARGB GetValueOrDefault(FX_ARGB defaultValue) const;
void SetValue(FX_ARGB color);
private:
diff --git a/xfa/fxfa/parser/cxfa_fill.cpp b/xfa/fxfa/parser/cxfa_fill.cpp
index f8646ac..7a4801e 100644
--- a/xfa/fxfa/parser/cxfa_fill.cpp
+++ b/xfa/fxfa/parser/cxfa_fill.cpp
@@ -70,8 +70,8 @@
pColor->SetValue(color);
}
-FX_ARGB CXFA_Fill::GetColor(bool bText) {
- CXFA_Color* pColor = GetChild<CXFA_Color>(0, XFA_Element::Color, false);
+FX_ARGB CXFA_Fill::GetColor(bool bText) const {
+ const auto* pColor = GetChild<CXFA_Color>(0, XFA_Element::Color, false);
if (!pColor)
return bText ? 0xFF000000 : 0xFFFFFFFF;
return pColor->GetValueOrDefault(bText ? 0xFF000000 : 0xFFFFFFFF);
diff --git a/xfa/fxfa/parser/cxfa_fill.h b/xfa/fxfa/parser/cxfa_fill.h
index 2f7fb51..168543a 100644
--- a/xfa/fxfa/parser/cxfa_fill.h
+++ b/xfa/fxfa/parser/cxfa_fill.h
@@ -21,7 +21,7 @@
bool IsVisible();
- FX_ARGB GetColor(bool bText);
+ FX_ARGB GetColor(bool bText) const;
void SetColor(FX_ARGB color);
void Draw(CFGAS_GEGraphics* pGS,
diff --git a/xfa/fxfa/parser/cxfa_node.h b/xfa/fxfa/parser/cxfa_node.h
index 3c294e2..d7dd9c0 100644
--- a/xfa/fxfa/parser/cxfa_node.h
+++ b/xfa/fxfa/parser/cxfa_node.h
@@ -187,6 +187,11 @@
return static_cast<T*>(GetChildInternal(index, eType, bOnlyChild));
}
+ template <typename T>
+ const T* GetChild(size_t index, XFA_Element eType, bool bOnlyChild) const {
+ return static_cast<const T*>(GetChildInternal(index, eType, bOnlyChild));
+ }
+
void InsertChildAndNotify(int32_t index, CXFA_Node* pNode);
void InsertChildAndNotify(CXFA_Node* pNode, CXFA_Node* pBeforeNode);
void RemoveChildAndNotify(CXFA_Node* pNode, bool bNotify);