summaryrefslogtreecommitdiff
path: root/fxjs/cjs_field.cpp
diff options
context:
space:
mode:
authorDan Sinclair <dsinclair@chromium.org>2018-04-03 19:52:27 +0000
committerChromium commit bot <commit-bot@chromium.org>2018-04-03 19:52:27 +0000
commit28bb2f2ffe751cf4142329e27238da52ae9f848b (patch)
tree99229667c2b702b79f24d60faea4f89457e4ff32 /fxjs/cjs_field.cpp
parent4c22dd5690cdec725389055bb7c07c300a4b6fe4 (diff)
downloadpdfium-28bb2f2ffe751cf4142329e27238da52ae9f848b.tar.xz
Remove DefaultAppearance HasColor and return an optional instead
This CL converts CPDF_DefaultAppearance to return Optional<CFX_Color:Type> items instead of having a HasColor. This saves the double parse of the appearance stream. Change-Id: Ib3c136da6e2adfb559e495de1d299cce0b4ad25f Reviewed-on: https://pdfium-review.googlesource.com/29630 Reviewed-by: Henrique Nakashima <hnakashima@chromium.org> Commit-Queue: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fxjs/cjs_field.cpp')
-rw-r--r--fxjs/cjs_field.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/fxjs/cjs_field.cpp b/fxjs/cjs_field.cpp
index acc0fe3188..3ae40a97a8 100644
--- a/fxjs/cjs_field.cpp
+++ b/fxjs/cjs_field.cpp
@@ -1885,22 +1885,22 @@ CJS_Return CJS_Field::get_text_color(CJS_Runtime* pRuntime) {
if (!pFormControl)
return CJS_Return(false);
- int iColorType;
+ Optional<CFX_Color::Type> iColorType;
FX_ARGB color;
CPDF_DefaultAppearance FieldAppearance = pFormControl->GetDefaultAppearance();
std::tie(iColorType, color) = FieldAppearance.GetColor();
- int32_t a;
- int32_t r;
- int32_t g;
- int32_t b;
- std::tie(a, r, g, b) = ArgbDecode(color);
-
- CFX_Color crRet =
- CFX_Color(CFX_Color::kRGB, r / 255.0f, g / 255.0f, b / 255.0f);
-
- if (iColorType == CFX_Color::kTransparent)
+ CFX_Color crRet;
+ if (!iColorType || *iColorType == CFX_Color::kTransparent) {
crRet = CFX_Color(CFX_Color::kTransparent);
+ } else {
+ int32_t a;
+ int32_t r;
+ int32_t g;
+ int32_t b;
+ std::tie(a, r, g, b) = ArgbDecode(color);
+ crRet = CFX_Color(CFX_Color::kRGB, r / 255.0f, g / 255.0f, b / 255.0f);
+ }
v8::Local<v8::Value> array =
CJS_Color::ConvertPWLColorToArray(pRuntime, crRet);