summaryrefslogtreecommitdiff
path: root/fxjs/cjx_node.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2017-11-16 14:07:17 +0000
committerChromium commit bot <commit-bot@chromium.org>2017-11-16 14:07:17 +0000
commit9d47de6b27b167db46b6aba38352fc42a8b6adae (patch)
tree5e29b94aa126a890cf9c2741b505c4dce9dae42e /fxjs/cjx_node.cpp
parent0bf9aef229ae2c4f2f16ab753d6d2e9e6d718a44 (diff)
downloadpdfium-9d47de6b27b167db46b6aba38352fc42a8b6adae.tar.xz
Convert TryEnum to return an optional
This CL converts CJX_Node::TryEnum to return a pdfium::Optional instead of a bool with an out parameter. Change-Id: Icc1b063ce51656cc5e467aba358eb9e7d6754fea Reviewed-on: https://pdfium-review.googlesource.com/18512 Commit-Queue: dsinclair <dsinclair@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/cjx_node.cpp')
-rw-r--r--fxjs/cjx_node.cpp28
1 files changed, 11 insertions, 17 deletions
diff --git a/fxjs/cjx_node.cpp b/fxjs/cjx_node.cpp
index 0e0f2d0274..860171a6f1 100644
--- a/fxjs/cjx_node.cpp
+++ b/fxjs/cjx_node.cpp
@@ -270,11 +270,12 @@ bool CJX_Node::GetAttribute(XFA_Attribute eAttr,
}
switch (eType) {
case XFA_AttributeType::Enum: {
- XFA_ATTRIBUTEENUM eValue;
- if (!TryEnum(pAttr->eName, eValue, bUseDefault))
+ pdfium::Optional<XFA_ATTRIBUTEENUM> value =
+ TryEnum(pAttr->eName, bUseDefault);
+ if (!value)
return false;
- wsValue = GetAttributeEnumByID(eValue)->pName;
+ wsValue = GetAttributeEnumByID(*value)->pName;
return true;
}
case XFA_AttributeType::CData: {
@@ -3053,24 +3054,18 @@ pdfium::Optional<int32_t> CJX_Node::TryInteger(XFA_Attribute eAttr,
return GetXFANode()->GetDefaultInteger(eAttr);
}
-bool CJX_Node::TryEnum(XFA_Attribute eAttr,
- XFA_ATTRIBUTEENUM& eValue,
- bool bUseDefault) {
+pdfium::Optional<XFA_ATTRIBUTEENUM> CJX_Node::TryEnum(XFA_Attribute eAttr,
+ bool bUseDefault) {
void* pKey = GetMapKey_Element(GetXFANode()->GetElementType(), eAttr);
void* pValue = nullptr;
if (GetMapModuleValue(pKey, pValue)) {
- eValue = (XFA_ATTRIBUTEENUM)(uintptr_t)pValue;
- return true;
+ return {
+ static_cast<XFA_ATTRIBUTEENUM>(reinterpret_cast<uintptr_t>(pValue))};
}
if (!bUseDefault)
- return false;
-
- pdfium::Optional<XFA_ATTRIBUTEENUM> ret = GetXFANode()->GetDefaultEnum(eAttr);
- if (!ret)
- return false;
+ return {};
- eValue = *ret;
- return true;
+ return GetXFANode()->GetDefaultEnum(eAttr);
}
bool CJX_Node::SetEnum(XFA_Attribute eAttr,
@@ -3081,8 +3076,7 @@ bool CJX_Node::SetEnum(XFA_Attribute eAttr,
}
XFA_ATTRIBUTEENUM CJX_Node::GetEnum(XFA_Attribute eAttr) {
- XFA_ATTRIBUTEENUM eValue;
- return TryEnum(eAttr, eValue, true) ? eValue : XFA_ATTRIBUTEENUM_Unknown;
+ return TryEnum(eAttr, true).value_or(XFA_ATTRIBUTEENUM_Unknown);
}
bool CJX_Node::SetMeasure(XFA_Attribute eAttr,