clean up string conversion functions

This commit is contained in:
fkaelberer 2014-03-27 13:01:43 +01:00
parent 5fc806823e
commit c978c026fa
4 changed files with 47 additions and 68 deletions

View file

@ -152,7 +152,7 @@ var OPS = PDFJS.OPS = {
paintInlineImageXObjectGroup: 87,
paintImageXObjectRepeat: 88,
paintImageMaskXObjectRepeat: 89,
paintSolidColorImageMask: 90,
paintSolidColorImageMask: 90
};
// A notice for devs. These are good for things that are helpful to devs, such
@ -393,23 +393,43 @@ var XRefParseException = (function XRefParseExceptionClosure() {
function bytesToString(bytes) {
var strBuf = [];
var length = bytes.length;
for (var n = 0; n < length; ++n) {
strBuf.push(String.fromCharCode(bytes[n]));
var MAX_ARGUMENT_COUNT = 8192;
if (length < MAX_ARGUMENT_COUNT) {
return String.fromCharCode.apply(null, bytes);
}
var strBuf = [];
for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
var chunk = bytes.subarray(i, chunkEnd);
strBuf.push(String.fromCharCode.apply(null, chunk));
}
return strBuf.join('');
}
function stringToArray(str) {
var length = str.length;
var array = [];
for (var i = 0; i < length; ++i) {
array[i] = str.charCodeAt(i);
}
return array;
}
function stringToBytes(str) {
var length = str.length;
var bytes = new Uint8Array(length);
for (var n = 0; n < length; ++n) {
bytes[n] = str.charCodeAt(n) & 0xFF;
for (var i = 0; i < length; ++i) {
bytes[i] = str.charCodeAt(i) & 0xFF;
}
return bytes;
}
function string32(value) {
return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,
(value >> 8) & 0xff, value & 0xff);
}
// Lazy test the endianness of the platform
// NOTE: This will be 'true' for simulated TypedArrays
function isLittleEndian() {