From: Andreas Gal Date: Sun, 5 Jun 2011 06:18:55 +0000 (-0700) Subject: don't cache stream objects X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=378f381625a9373797955cd629c7b5488d40d544;p=pdf.js.git don't cache stream objects --- diff --git a/pdf.js b/pdf.js index 0342ca6..96dc518 100644 --- a/pdf.js +++ b/pdf.js @@ -1262,12 +1262,9 @@ var XRef = (function() { fetch: function(ref) { var num = ref.num; var e = this.cache[num]; - if (e) { - // The stream might be in use elsewhere, so clone it. - if (IsStream(e)) - e = e.makeSubStream(e.start, e.length, e.dict); + if (e) return e; - } + e = this.getEntry(num); var gen = ref.gen; if (e.uncompressed) { @@ -1292,7 +1289,11 @@ var XRef = (function() { } error("bad XRef entry"); } - return this.cache[num] = parser.getObj(); + e = parser.getObj(); + // Don't cache streams since they are mutable. + if (!IsStream(e)) + this.cache[num] = e; + return e; } error("compressed entry"); },