Avoid more allocations in bidi().
This commit is contained in:
parent
2e93a0cc98
commit
3759c11f42
@ -140,9 +140,11 @@ var bidi = PDFJS.bidi = (function bidiClosure() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function BidiResult(str, isLTR, vertical) {
|
function createBidiText(str, isLTR, vertical) {
|
||||||
this.str = str;
|
return {
|
||||||
this.dir = (vertical ? 'ttb' : (isLTR ? 'ltr' : 'rtl'));
|
str: str,
|
||||||
|
dir: (vertical ? 'ttb' : (isLTR ? 'ltr' : 'rtl'))
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// These are used in bidi(), which is called frequently. We re-use them on
|
// These are used in bidi(), which is called frequently. We re-use them on
|
||||||
@ -154,7 +156,7 @@ var bidi = PDFJS.bidi = (function bidiClosure() {
|
|||||||
var isLTR = true;
|
var isLTR = true;
|
||||||
var strLength = str.length;
|
var strLength = str.length;
|
||||||
if (strLength === 0 || vertical) {
|
if (strLength === 0 || vertical) {
|
||||||
return new BidiResult(str, isLTR, vertical);
|
return createBidiText(str, isLTR, vertical);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get types and fill arrays
|
// Get types and fill arrays
|
||||||
@ -188,7 +190,7 @@ var bidi = PDFJS.bidi = (function bidiClosure() {
|
|||||||
// - If more than 30% chars are rtl then string is primarily rtl
|
// - If more than 30% chars are rtl then string is primarily rtl
|
||||||
if (numBidi === 0) {
|
if (numBidi === 0) {
|
||||||
isLTR = true;
|
isLTR = true;
|
||||||
return new BidiResult(str, isLTR);
|
return createBidiText(str, isLTR);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (startLevel == -1) {
|
if (startLevel == -1) {
|
||||||
@ -453,7 +455,7 @@ var bidi = PDFJS.bidi = (function bidiClosure() {
|
|||||||
result += ch;
|
result += ch;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new BidiResult(result, isLTR);
|
return createBidiText(result, isLTR);
|
||||||
}
|
}
|
||||||
|
|
||||||
return bidi;
|
return bidi;
|
||||||
|
@ -812,11 +812,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||||||
|
|
||||||
if (chunkBuf.length > 0) {
|
if (chunkBuf.length > 0) {
|
||||||
var chunk = chunkBuf.join('');
|
var chunk = chunkBuf.join('');
|
||||||
var bidiResult = PDFJS.bidi(chunk, -1, font.vertical);
|
var bidiText = PDFJS.bidi(chunk, -1, font.vertical);
|
||||||
var bidiText = {
|
|
||||||
str: bidiResult.str,
|
|
||||||
dir: bidiResult.dir
|
|
||||||
};
|
|
||||||
var renderParams = textState.calcRenderParams(preprocessor.ctm);
|
var renderParams = textState.calcRenderParams(preprocessor.ctm);
|
||||||
var fontHeight = textState.fontSize * renderParams.vScale;
|
var fontHeight = textState.fontSize * renderParams.vScale;
|
||||||
var fontAscent = font.ascent ? font.ascent * fontHeight :
|
var fontAscent = font.ascent ? font.ascent * fontHeight :
|
||||||
|
Loading…
x
Reference in New Issue
Block a user