diff options
author | Solly Ross <sross@redhat.com> | 2015-12-22 15:42:09 -0500 |
---|---|---|
committer | Solly Ross <sross@redhat.com> | 2015-12-22 15:42:09 -0500 |
commit | a842140b51bb178bf22f7c3b648d718cc4f83dad (patch) | |
tree | bd5955bd66acf813a57fb9a7149cc8be53c7de04 | |
parent | 8eedab379f87d42222a204f11a6ec66f7583e0bd (diff) | |
download | novnc-a842140b51bb178bf22f7c3b648d718cc4f83dad.tar.gz |
[WIP] Tweak Pako to reduce object creationbug/gc-spikes
This commit tweaks pako slightly to reduce the number of objects
it creates unecessarily.
-rw-r--r-- | docs/notes | 1 | ||||
-rw-r--r-- | include/inflator.js | 10 |
2 files changed, 6 insertions, 5 deletions
@@ -3,3 +3,4 @@ Rebuilding inflator.js - Download pako from npm - Install browserify using npm - browserify utils/inflator.partial.js -o include/inflator.js -s inflator +- apply changes from utils/inflator.diff.js to include/inflator.js diff --git a/include/inflator.js b/include/inflator.js index 48ede20..d964ac5 100644 --- a/include/inflator.js +++ b/include/inflator.js @@ -889,7 +889,7 @@ function inflate(strm, flush) { var len; /* length to copy for repeats, bits to drop */ var ret; /* return code */ var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */ - var opts; + var opts = {}; var n; // temporary var for NEED_BITS @@ -1425,7 +1425,7 @@ function inflate(strm, flush) { state.lencode = state.lendyn; state.lenbits = 7; - opts = {bits: state.lenbits}; + opts.bits = state.lenbits; ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts); state.lenbits = opts.bits; @@ -1556,7 +1556,7 @@ function inflate(strm, flush) { concerning the ENOUGH constants, which depend on those values */ state.lenbits = 9; - opts = {bits: state.lenbits}; + opts.bits = state.lenbits; ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed. // state.next_index = opts.table_index; @@ -1573,7 +1573,7 @@ function inflate(strm, flush) { //state.distcode.copy(state.codes); // Switch to use dynamic table state.distcode = state.distdyn; - opts = {bits: state.distbits}; + opts.bits = state.distbits; ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed. // state.next_index = opts.table_index; @@ -2415,4 +2415,4 @@ Inflate.prototype = { module.exports = {Inflate: Inflate}; },{"../node_modules/pako/lib/zlib/inflate.js":5,"../node_modules/pako/lib/zlib/zstream.js":7}]},{},[8])(8) -});
\ No newline at end of file +}); |