From 9674abc542603a0c6b38420e98b11c35ae2ba0f2 Mon Sep 17 00:00:00 2001 From: Nicholas Nethercote Date: Thu, 14 Aug 2014 20:34:53 -0700 Subject: [PATCH] Ignore setGState no-ops. For the document in #2504, 11% of the ops are `setGState` with a `gStateObj` that is an empty array, which is a no-op. This is possible because we ignore various setGState keys (OP, OPM, BG, etc). This change prevents these ops from being inserted into the operator list. --- src/core/evaluator.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core/evaluator.js b/src/core/evaluator.js index 603f248d4..adb6562cd 100644 --- a/src/core/evaluator.js +++ b/src/core/evaluator.js @@ -412,7 +412,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { break; // Only generate info log messages for the following since - // they are unlikey to have a big impact on the rendering. + // they are unlikely to have a big impact on the rendering. case 'OP': case 'op': case 'OPM': @@ -446,7 +446,9 @@ var PartialEvaluator = (function PartialEvaluatorClosure() { setGStateForKey(gStateObj, key, value); } return promise.then(function () { - operatorList.addOp(OPS.setGState, [gStateObj]); + if (gStateObj.length >= 0) { + operatorList.addOp(OPS.setGState, [gStateObj]); + } }); },