From fb5807721e292ddc6589e5ae96200b85746ffc0c Mon Sep 17 00:00:00 2001 From: Kalervo Kujala Date: Wed, 7 Sep 2011 22:11:30 +0300 Subject: [PATCH 1/2] Fix array initializations. And refactor one loop. --- pdf.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pdf.js b/pdf.js index 337e3fc8c..f34b33127 100644 --- a/pdf.js +++ b/pdf.js @@ -592,17 +592,17 @@ var FlateStream = (function() { var numCodeLenCodes = this.getBits(4) + 4; // build the code lengths code table - var codeLenCodeLengths = Array(codeLenCodeMap.length); - var i = 0; - while (i < numCodeLenCodes) - codeLenCodeLengths[codeLenCodeMap[i++]] = this.getBits(3); + var codeLenCodeLengths = []; + + for (var i = 0; i < numCodeLenCodes; ++i) + codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); // build the literal and distance code tables var len = 0; var i = 0; var codes = numLitCodes + numDistCodes; - var codeLengths = new Array(codes); + var codeLengths = []; while (i < codes) { var code = this.getCode(codeLenCodeTab); if (code == 16) { From a9e0ddc22fe05f9be9aefde4b68540c405c9af60 Mon Sep 17 00:00:00 2001 From: Kalervo Kujala Date: Wed, 7 Sep 2011 23:07:29 +0300 Subject: [PATCH 2/2] Use typed arrays instead of normal arrays in FlateStream. Also fix a couple of lint warnings. --- pdf.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pdf.js b/pdf.js index f34b33127..efdfe2fa4 100644 --- a/pdf.js +++ b/pdf.js @@ -592,8 +592,8 @@ var FlateStream = (function() { var numCodeLenCodes = this.getBits(4) + 4; // build the code lengths code table - var codeLenCodeLengths = []; - + var codeLenCodeLengths = new Uint8Array(codeLenCodeMap.length); + for (var i = 0; i < numCodeLenCodes; ++i) codeLenCodeLengths[codeLenCodeMap[i]] = this.getBits(3); var codeLenCodeTab = this.generateHuffmanTable(codeLenCodeLengths); @@ -602,7 +602,7 @@ var FlateStream = (function() { var len = 0; var i = 0; var codes = numLitCodes + numDistCodes; - var codeLengths = []; + var codeLengths = new Uint8Array(codes); while (i < codes) { var code = this.getCode(codeLenCodeTab); if (code == 16) { @@ -617,9 +617,9 @@ var FlateStream = (function() { } litCodeTable = - this.generateHuffmanTable(codeLengths.slice(0, numLitCodes)); + this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes)); distCodeTable = - this.generateHuffmanTable(codeLengths.slice(numLitCodes, codes)); + this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes)); } else { error('Unknown block type in flate stream'); } @@ -4825,7 +4825,7 @@ var CanvasGraphics = (function() { var italic = fontObj.italic ? 'italic' : 'normal'; var serif = fontObj.serif ? 'serif' : 'sans-serif'; - var typeface = '"' + name + '", ' + serif + var typeface = '"' + name + '", ' + serif; var rule = italic + ' ' + bold + ' ' + size + 'px ' + typeface; this.ctx.font = rule; }