summaryrefslogtreecommitdiff
path: root/fxjs/cjs_field.cpp
diff options
context:
space:
mode:
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);