Browse Source

Merge pull request #6954 from Snuffleupagus/setGState-fixes

Various `setGState` improvements
Tim van der Meij 9 years ago
parent
commit
03f12a10b5
  1. 16
      src/core/evaluator.js

16
src/core/evaluator.js

@ -468,11 +468,12 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
xref, stateManager) { xref, stateManager) {
// This array holds the converted/processed state data. // This array holds the converted/processed state data.
var gStateObj = []; var gStateObj = [];
var gStateMap = gState.map; var gStateKeys = gState.getKeys();
var self = this; var self = this;
var promise = Promise.resolve(); var promise = Promise.resolve();
for (var key in gStateMap) { for (var i = 0, ii = gStateKeys.length; i < ii; i++) {
var value = gStateMap[key]; var key = gStateKeys[i];
var value = gState.get(key);
switch (key) { switch (key) {
case 'Type': case 'Type':
break; break;
@ -505,12 +506,11 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
gStateObj.push([key, false]); gStateObj.push([key, false]);
break; break;
} }
var dict = xref.fetchIfRef(value); if (isDict(value)) {
if (isDict(dict)) { promise = promise.then(function (dict) {
promise = promise.then(function () {
return self.handleSMask(dict, resources, operatorList, return self.handleSMask(dict, resources, operatorList,
task, stateManager); task, stateManager);
}); }.bind(this, value));
gStateObj.push([key, true]); gStateObj.push([key, true]);
} else { } else {
warn('Unsupported SMask type'); warn('Unsupported SMask type');
@ -542,7 +542,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
} }
} }
return promise.then(function () { return promise.then(function () {
if (gStateObj.length >= 0) { if (gStateObj.length > 0) {
operatorList.addOp(OPS.setGState, [gStateObj]); operatorList.addOp(OPS.setGState, [gStateObj]);
} }
}); });

Loading…
Cancel
Save