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.
This commit is contained in:
Nicholas Nethercote 2014-08-14 20:34:53 -07:00
parent 0e4d9061b2
commit 9674abc542

View File

@ -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]);
}
});
},