summaryrefslogtreecommitdiff
path: root/noncore/unsupported/qpdf/xpdf/Function.cc
Side-by-side diff
Diffstat (limited to 'noncore/unsupported/qpdf/xpdf/Function.cc') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/qpdf/xpdf/Function.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/noncore/unsupported/qpdf/xpdf/Function.cc b/noncore/unsupported/qpdf/xpdf/Function.cc
index 815cc89..ebf3718 100644
--- a/noncore/unsupported/qpdf/xpdf/Function.cc
+++ b/noncore/unsupported/qpdf/xpdf/Function.cc
@@ -4,3 +4,3 @@
//
-// Copyright 2001 Derek B. Noonburg
+// Copyright 2001-2002 Glyph & Cog, LLC
//
@@ -417,3 +417,2 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
ok = gFalse;
- hasN = gFalse;
@@ -427,2 +426,3 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
}
+ hasN = hasRange;
@@ -438,2 +438,3 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
n = obj1.arrayGetLength();
+ hasN = gTrue;
} else if (obj1.arrayGetLength() != n) {
@@ -458,2 +459,3 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
n = obj1.arrayGetLength();
+ hasN = gTrue;
} else if (obj1.arrayGetLength() != n) {
@@ -482,2 +484,9 @@ ExponentialFunction::ExponentialFunction(Object *funcObj, Dict *dict) {
+ // this isn't supposed to happen, but I've run into (broken) PDF
+ // files where it does
+ if (!hasN) {
+ error(-1, "Exponential function does not define number of output values");
+ n = 1;
+ }
+
ok = gTrue;