1
0
Fork 0
mirror of https://github.com/mozilla/pdf.js.git synced 2025-04-26 10:08:06 +02:00

Add a getRawValues method, to Dict instances, to provide an easier way of getting all *raw* values

When the old `Dict.getAll()` method was removed, it was replaced with a `Dict.getKeys()` call and `Dict.get(...)` calls (in a loop).
While this pattern obviously makes a lot of sense in many cases, there's some instances where we actually want the *raw* `Dict` values (i.e. `Ref`s where applicable). In those cases, `Dict.getRaw(...)` calls are instead used within the loop. However, by introducing a new `Dict.getRawValues()` method we can reduce the number of (strictly unnecessary) function calls by simply getting the *raw* `Dict` values directly.
This commit is contained in:
Jonas Jenwald 2020-07-17 12:57:34 +02:00
parent 6381b5b08f
commit ea8e432c45
4 changed files with 39 additions and 12 deletions

View file

@ -2207,16 +2207,13 @@ const ObjectLoader = (function () {
function addChildren(node, nodesToVisit) {
if (node instanceof Dict || isStream(node)) {
const dict = node instanceof Dict ? node : node.dict;
const dictKeys = dict.getKeys();
for (let i = 0, ii = dictKeys.length; i < ii; i++) {
const rawValue = dict.getRaw(dictKeys[i]);
for (const rawValue of dict.getRawValues()) {
if (mayHaveChildren(rawValue)) {
nodesToVisit.push(rawValue);
}
}
} else if (Array.isArray(node)) {
for (let i = 0, ii = node.length; i < ii; i++) {
const value = node[i];
for (const value of node) {
if (mayHaveChildren(value)) {
nodesToVisit.push(value);
}