[Pkg-javascript-commits] [pdf.js] 18/56: rename getUint32 to getInt32 and collect readInt*() in util.js
David Prévot
taffit at moszumanska.debian.org
Thu May 15 15:17:44 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit b06c10cbbd669d964ef9f733204f8dd81223a0bb
Author: fkaelberer <o_0_o at gmx.de>
Date: Wed Apr 16 21:31:16 2014 +0200
rename getUint32 to getInt32 and collect readInt*() in util.js
---
src/core/chunked_stream.js | 2 +-
src/core/fonts.js | 14 +++++++-------
src/core/jbig2.js | 32 +++----------------------------
src/core/jpx.js | 48 +++++++++++++++-------------------------------
src/core/stream.js | 4 ++--
src/shared/util.js | 22 +++++++++++++++++++++
6 files changed, 50 insertions(+), 72 deletions(-)
diff --git a/src/core/chunked_stream.js b/src/core/chunked_stream.js
index 3dd9875..268a215 100644
--- a/src/core/chunked_stream.js
+++ b/src/core/chunked_stream.js
@@ -148,7 +148,7 @@ var ChunkedStream = (function ChunkedStreamClosure() {
return (b0 << 8) + b1;
},
- getUint32: function ChunkedStream_getUint32() {
+ getInt32: function ChunkedStream_getInt32() {
var b0 = this.getByte();
var b1 = this.getByte();
var b2 = this.getByte();
diff --git a/src/core/fonts.js b/src/core/fonts.js
index 36c02e9..91f71c5 100644
--- a/src/core/fonts.js
+++ b/src/core/fonts.js
@@ -2540,7 +2540,7 @@ var Font = (function FontClosure() {
var idRangeOffsets = '';
var glyphsIds = '';
var bias = 0;
-
+
var range, start, end, codes;
for (i = 0, ii = bmpLength; i < ii; i++) {
range = ranges[i];
@@ -2864,9 +2864,9 @@ var Font = (function FontClosure() {
function readTableEntry(file) {
var tag = bytesToString(file.getBytes(4));
- var checksum = file.getUint32();
- var offset = file.getUint32();
- var length = file.getUint32();
+ var checksum = file.getInt32();
+ var offset = file.getInt32() >>> 0;
+ var length = file.getInt32() >>> 0;
// Read the table associated data
var previousPosition = file.pos;
@@ -2923,7 +2923,7 @@ var Font = (function FontClosure() {
for (var i = 0; i < numTables; i++) {
var platformId = font.getUint16();
var encodingId = font.getUint16();
- var offset = font.getUint32();
+ var offset = font.getInt32() >>> 0;
var useTable = false;
if (platformId == 1 && encodingId === 0) {
@@ -3333,7 +3333,7 @@ var Font = (function FontClosure() {
font.pos = start;
var length = post.length, end = start + length;
- var version = font.getUint32();
+ var version = font.getInt32();
// skip rest to the tables
font.getBytes(28);
@@ -3739,7 +3739,7 @@ var Font = (function FontClosure() {
}
font.pos = (font.start || 0) + tables.maxp.offset;
- var version = font.getUint32();
+ var version = font.getInt32();
var numGlyphs = font.getUint16();
var maxFunctionDefs = 0;
if (version >= 0x00010000 && tables.maxp.length >= 22) {
diff --git a/src/core/jbig2.js b/src/core/jbig2.js
index 1fc244a..cf297bc 100755
--- a/src/core/jbig2.js
+++ b/src/core/jbig2.js
@@ -14,7 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals ArithmeticDecoder, error, shadow */
+/* globals ArithmeticDecoder, error, log2, readInt8, readUint16, readUint32,
+ shadow */
'use strict';
@@ -188,33 +189,6 @@ var Jbig2Image = (function Jbig2ImageClosure() {
0x0008 // '0000' + '001000'
];
- function log2(x) {
- var n = 1, i = 0;
- while (x > n) {
- n <<= 1;
- i++;
- }
- return i;
- }
-
- function readInt32(data, start) {
- return (data[start] << 24) | (data[start + 1] << 16) |
- (data[start + 2] << 8) | data[start + 3];
- }
-
- function readUint32(data, start) {
- var value = readInt32(data, start);
- return value & 0x80000000 ? (value + 4294967296) : value;
- }
-
- function readUint16(data, start) {
- return (data[start] << 8) | data[start + 1];
- }
-
- function readInt8(data, start) {
- return (data[start] << 24) >> 24;
- }
-
// 6.2 Generic Region Decoding Procedure
function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at,
decodingContext) {
@@ -645,7 +619,7 @@ var Jbig2Image = (function Jbig2ImageClosure() {
var retainBits = [referredFlags & 31];
var position = start + 6;
if (referredFlags == 7) {
- referredToCount = readInt32(data, position - 1) & 0x1FFFFFFF;
+ referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF;
position += 3;
var bytes = (referredToCount + 7) >> 3;
retainBits[0] = data[position++];
diff --git a/src/core/jpx.js b/src/core/jpx.js
index 6f55574..f5233d3 100644
--- a/src/core/jpx.js
+++ b/src/core/jpx.js
@@ -14,7 +14,8 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/* globals ArithmeticDecoder, error, globalScope, warn */
+/* globals ArithmeticDecoder, error, globalScope, log2, readUint16, readUint32,
+ warn */
'use strict';
@@ -45,15 +46,8 @@ var JpxImage = (function JpxImageClosure() {
xhr.send(null);
},
parse: function JpxImage_parse(data) {
- function readUint(data, offset, bytes) {
- var n = 0;
- for (var i = 0; i < bytes; i++) {
- n = n * 256 + (data[offset + i] & 0xFF);
- }
- return n;
- }
- var head = readUint(data, 0, 2);
+ var head = readUint16(data, 0);
// No box header, immediate start of codestream (SOC)
if (head === 0xFF4F) {
this.parseCodestream(data, 0, data.length);
@@ -63,11 +57,14 @@ var JpxImage = (function JpxImageClosure() {
var position = 0, length = data.length;
while (position < length) {
var headerSize = 8;
- var lbox = readUint(data, position, 4);
- var tbox = readUint(data, position + 4, 4);
+ var lbox = readUint32(data, position);
+ var tbox = readUint32(data, position + 4);
position += headerSize;
- if (lbox == 1) {
- lbox = readUint(data, position, 8);
+ if (lbox === 1) {
+ // XLBox: read UInt64 according to spec.
+ // JavaScript's int precision of 53 bit should be sufficient here.
+ lbox = readUint32(data, position) * 4294967296 +
+ readUint32(data, position + 4);
position += 8;
headerSize += 8;
}
@@ -108,16 +105,16 @@ var JpxImage = (function JpxImageClosure() {
// Image and tile size (SIZ)
if (code == 0xFF51) {
stream.skip(4);
- var Xsiz = stream.getUint32(); // Byte 4
- var Ysiz = stream.getUint32(); // Byte 8
- var XOsiz = stream.getUint32(); // Byte 12
- var YOsiz = stream.getUint32(); // Byte 16
+ var Xsiz = stream.getInt32() >>> 0; // Byte 4
+ var Ysiz = stream.getInt32() >>> 0; // Byte 8
+ var XOsiz = stream.getInt32() >>> 0; // Byte 12
+ var YOsiz = stream.getInt32() >>> 0; // Byte 16
stream.skip(16);
var Csiz = stream.getUint16(); // Byte 36
this.width = Xsiz - XOsiz;
this.height = Ysiz - YOsiz;
this.componentsCount = Csiz;
- // Results are always returned as UInt8Arrays
+ // Results are always returned as Uint8Arrays
this.bitsPerComponent = 8;
return;
}
@@ -379,21 +376,6 @@ var JpxImage = (function JpxImageClosure() {
this.componentsCount = context.SIZ.Csiz;
}
};
- function readUint32(data, offset) {
- return (data[offset] << 24) | (data[offset + 1] << 16) |
- (data[offset + 2] << 8) | data[offset + 3];
- }
- function readUint16(data, offset) {
- return (data[offset] << 8) | data[offset + 1];
- }
- function log2(x) {
- var n = 1, i = 0;
- while (x > n) {
- n <<= 1;
- i++;
- }
- return i;
- }
function calculateComponentDimensions(component, siz) {
// Section B.2 Component mapping
component.x0 = Math.ceil(siz.XOsiz / component.XRsiz);
diff --git a/src/core/stream.js b/src/core/stream.js
index 320533c..57c39f3 100644
--- a/src/core/stream.js
+++ b/src/core/stream.js
@@ -46,7 +46,7 @@ var Stream = (function StreamClosure() {
var b1 = this.getByte();
return (b0 << 8) + b1;
},
- getUint32: function Stream_getUint32() {
+ getInt32: function Stream_getInt32() {
var b0 = this.getByte();
var b1 = this.getByte();
var b2 = this.getByte();
@@ -164,7 +164,7 @@ var DecodeStream = (function DecodeStreamClosure() {
var b1 = this.getByte();
return (b0 << 8) + b1;
},
- getUint32: function DecodeStream_getUint32() {
+ getInt32: function DecodeStream_getInt32() {
var b0 = this.getByte();
var b1 = this.getByte();
var b2 = this.getByte();
diff --git a/src/shared/util.js b/src/shared/util.js
index faaedef..b2c172a 100644
--- a/src/shared/util.js
+++ b/src/shared/util.js
@@ -423,6 +423,28 @@ function string32(value) {
(value >> 8) & 0xff, value & 0xff);
}
+function log2(x) {
+ var n = 1, i = 0;
+ while (x > n) {
+ n <<= 1;
+ i++;
+ }
+ return i;
+}
+
+function readInt8(data, start) {
+ return (data[start] << 24) >> 24;
+}
+
+function readUint16(data, offset) {
+ return (data[offset] << 8) | data[offset + 1];
+}
+
+function readUint32(data, offset) {
+ return ((data[offset] << 24) | (data[offset + 1] << 16) |
+ (data[offset + 2] << 8) | data[offset + 3]) >>> 0;
+}
+
// Lazy test the endianness of the platform
// NOTE: This will be 'true' for simulated TypedArrays
function isLittleEndian() {
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list