Skip to content

Commit

Permalink
Right-size the array in getSampleArray().
Browse files Browse the repository at this point in the history
This allows the JS engine to do a better job of allocating the right
number of elements for the array, avoiding some resizings. For the PDF
in #2504, this avoids 100s of MiBs of allocations in Firefox.
  • Loading branch information
nnethercote committed Aug 15, 2014
1 parent 0e4d906 commit bcc31b6
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions src/core/function.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ var PDFFunction = (function PDFFunctionClosure() {
}
length *= outputSize;

var array = [];
var array = new Array(length);
var codeSize = 0;
var codeBuf = 0;
// 32 is a valid bps so shifting won't work
Expand All @@ -50,7 +50,7 @@ var PDFFunction = (function PDFFunctionClosure() {
codeSize += 8;
}
codeSize -= bps;
array.push((codeBuf >> codeSize) * sampleMul);
array[i] = (codeBuf >> codeSize) * sampleMul;
codeBuf &= (1 << codeSize) - 1;
}
return array;
Expand Down

0 comments on commit bcc31b6

Please sign in to comment.