mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-22 16:18:08 +02:00
Handle the Encoding being a dictionary in PartialEvaluator_preEvaluateFont (bug 1157493)
*This is a regression from PR 4423.* Fixes https://bugzilla.mozilla.org/show_bug.cgi?id=1157493.
This commit is contained in:
parent
48b2f6d023
commit
760222cf0b
5 changed files with 27 additions and 0 deletions
|
@ -1567,6 +1567,21 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
hash.update(encoding.name);
|
||||
} else if (isRef(encoding)) {
|
||||
hash.update(encoding.num + '_' + encoding.gen);
|
||||
} else if (isDict(encoding)) {
|
||||
var keys = encoding.getKeys();
|
||||
for (var i = 0, ii = keys.length; i < ii; i++) {
|
||||
var entry = encoding.getRaw(keys[i]);
|
||||
if (isName(entry)) {
|
||||
hash.update(entry.name);
|
||||
} else if (isRef(entry)) {
|
||||
hash.update(entry.num + '_' + entry.gen);
|
||||
} else if (isArray(entry)) { // 'Differences' entry.
|
||||
// Ideally we should check the contents of the array, but to avoid
|
||||
// parsing it here and then again in |extractDataStructures|,
|
||||
// we only use the array length for now (fixes bug1157493.pdf).
|
||||
hash.update(entry.length.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var toUnicode = dict.get('ToUnicode') || baseDict.get('ToUnicode');
|
||||
|
|
|
@ -192,6 +192,10 @@ var Dict = (function DictClosure() {
|
|||
return all;
|
||||
},
|
||||
|
||||
getKeys: function Dict_getKeys() {
|
||||
return Object.keys(this.map);
|
||||
},
|
||||
|
||||
set: function Dict_set(key, value) {
|
||||
this.map[key] = value;
|
||||
},
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue