pramodhkp
6d53fc4db7
Minor changes for api.js, font_loader.js and svg.js
2014-08-14 01:01:09 +05:30
Tim van der Meij
44fbf0ce14
Miscellaneous code improvements for svg.js
2014-08-13 20:31:21 +02:00
Jonas Jenwald
06b5d97bc6
Remove two instances of leftover console.log debug statements
...
The `console.log` statement in evaluator_spec.js is obviously not needed. In obj.js it could have been replaced by `info`, but that seemed unnecessary given the already existing `error`.
2014-08-13 14:29:46 +02:00
Jonas Jenwald
c3691500fa
Merge pull request #5172 from nnethercote/readCharCode-retval
...
Avoid an allocation in readCharCode().
2014-08-13 11:03:07 +02:00
Nicholas Nethercote
61e6b576d4
Avoid an allocation in readCharCode().
...
readCharCode() returns two values, and currently allocates a length-2
array on every call to do so. This change makes it instead us a
passed-in object which can be reused.
This tiny change reduces the total JS allocations done for the document
in Mozilla bug 992125 by 4.2%.
2014-08-12 16:12:58 -07:00
Nicholas Nethercote
7cbd057deb
Avoid unnecessary array allocations in EvaluatorPreprocessor_read().
...
EvaluatorPreprocessor_read() is called in two cases. For the normal
layer, the args array it produces is used beyond the bounds of the loop
in which EvaluatorPreprocessor_read() is called.
But for the text layer, the args array is used in a very short-term
fashion. This change reworks things so that a single array is repeatedly
used for the text layer. This reduces total JS allocations for the
Spoorkaart map by 11%, and has similar effects on many other PDFs.
2014-08-11 16:57:40 -07:00
Brian Ng
5365fa9de7
Fix typo
2014-08-11 11:40:49 -05:00
Yury Delendik
dae92b9cc7
Uses float number formatter to print numbers in SVG
2014-08-11 11:18:32 -05:00
Yury Delendik
ab8270ae3a
Fixes searchRange calculation
2014-08-10 14:11:04 -05:00
Yury Delendik
42771159ca
Removes stringToArray
2014-08-10 14:11:04 -05:00
Yury Delendik
350556f085
Removes bytesToString/stringToArray conversions in the font.js
2014-08-10 14:11:04 -05:00
Yury Delendik
4ce1b1e987
Merge pull request #5150 from nnethercote/toUnicode
...
Fix #4935
2014-08-10 14:07:26 -05:00
Tim van der Meij
b6e4ac9070
Nit fixes for svg.js
2014-08-10 14:40:49 +02:00
Yury Delendik
99b08ed223
Merge pull request #5162 from yurydelendik/pramodhkp-fixupgstate2
...
[SVG] Reduces amount of used memory during PNG creation.
2014-08-09 15:56:11 -05:00
Yury Delendik
56f0539045
Reduces amount of used memory during PNG creation.
2014-08-09 15:53:05 -05:00
pramodhkp
458b69b649
Adds image and mask features, fixes clippath
2014-08-10 01:06:43 +05:30
Yury Delendik
13f1a964a7
Merge pull request #5154 from Rob--W/aes-padding-5152
...
AES cipher: make padding optional
2014-08-09 09:25:54 -05:00
Jonas Jenwald
66c56ac546
Fixes a regression from PR 4982
...
After PR 4982, the rendering of the first two pages of http://www.openmagazin.cz/pdf/2011/openMagazin-2011-04.pdf (from issue 215) no longer completes.
The issue is that we cannot have `args === null` in `PartialEvaluator_buildPath`, but *must* use an empty array instead.
In this patch I've also moved the `argsLength` variable definition in `EvaluatorPreprocessor_read`, to make sure that it's always defined.
2014-08-08 13:19:18 +02:00
Rob Wu
58cd3349db
AES cipher: make padding optional
...
Fixes #5152
2014-08-08 12:36:29 +02:00
Nicholas Nethercote
f82977caf9
Simplify isIdentityUnicode detection.
2014-08-08 02:02:42 -07:00
Nicholas Nethercote
6c8cca1284
Add IdentityToUnicodeMap class.
...
When loading the PDF from issue #4935 , this change reduces peak RSS from
~2400 to ~300 MiB, and improves overall speed by ~81%, from 6336 ms to
1222 ms.
2014-08-07 20:45:11 -07:00
Nicholas Nethercote
9576047f0d
Add ToUnicodeMap class.
2014-08-07 20:05:24 -07:00
Yury Delendik
669a4d196e
Merge pull request #5114 from fkaelberer/fasterJBIG2decodeBitmap
...
Faster JBIG2 bitmap decoding
2014-08-07 16:14:30 -05:00
Tim van der Meij
238a5f8a30
Fixes CCITTFaxStream regression
2014-08-07 22:07:20 +02:00
Jonas Jenwald
643ad37f2a
Revert commit 9a41659
(PR 5005) for breaking the loading of certain PDF files in the Firefox addon when range requests are active
2014-08-07 12:07:45 +02:00
Yury Delendik
57860149e9
Merge pull request #5135 from nnethercote/identity-cmap-proper
...
Make IdentityCMaps more compact.
2014-08-06 09:11:08 -05:00
Jonas Jenwald
179bb2e136
Merge pull request #5140 from yurydelendik/fetchAsync
...
Removes some bind() calls from fetchAsync
2014-08-06 12:34:27 +02:00
Yury Delendik
682b93ac9e
Fixes lint errors
2014-08-05 21:55:59 -05:00
Yury Delendik
cc180d7e2b
Removes some bind() calls from fetchAsync
2014-08-05 21:22:12 -05:00
Yury Delendik
46a9a35ddc
Merge pull request #5071 from nnethercote/font-savings
...
Optimize a font-heavy document
2014-08-05 18:57:46 -05:00
Yury Delendik
fa53fcbf57
Merge pull request #5095 from Snuffleupagus/issue-5070
...
Adjust the heuristics to recognize more cases of unknown glyphs for |toUnicode| (issue 5070)
2014-08-05 17:41:38 -05:00
Yury Delendik
2b87ff9286
Merge pull request #5008 from nnethercote/better-QueueOpt
...
Make QueueOptimizer easier to read.
2014-08-05 16:59:26 -05:00
Jonas Jenwald
cb4a847347
Merge pull request #5134 from yurydelendik/fun4
...
Improves speed of the functions
2014-08-05 23:51:03 +02:00
Yury Delendik
12b50486de
Merge pull request #5136 from timvandermeij/ccitt-lines
...
Properly set this.eof in CCITTFaxStream
2014-08-05 12:49:50 -05:00
Tim van der Meij
5cc7d23066
Properly set this.eof in CCITTFaxStream
2014-08-05 19:08:00 +02:00
fkaelberer
5b83e0b9a3
Faster JBIG2 bitmap decoding
2014-08-05 16:12:45 +02:00
Nicholas Nethercote
51055e5836
Make IdentityCMaps more compact.
...
IdentityCMap uses an array to represent a 16-bit unsigned identity
function. This is very space-inefficient, and some files cause multiple
IdentityCMaps to be instantiated (e.g. the one from #4580 has 74).
This patch make the representation implicit.
When loading the PDF from issue #4580 , this change reduces peak RSS from
~370 to ~280 MiB. It also improves overall speed on that PDF by ~30%,
going from 522 ms to 366 ms.
2014-08-05 03:01:39 -07:00
Yury Delendik
6865c284a7
Merge pull request #5111 from nnethercote/better-cidchars
...
Represent cid chars using integers, not strings.
2014-08-04 22:26:55 -05:00
Yury Delendik
f750e35224
Optimizes functions to not create arrays
2014-08-04 11:23:11 -05:00
Yury Delendik
cb81bd6be6
Compiles some of the FunctionType 4
2014-08-04 11:21:31 -05:00
Jonas Jenwald
8ecbb4da05
Adjust the heuristics to recognize more cases of unknown glyphs for |toUnicode| (issue 5070)
2014-08-03 21:18:23 +02:00
Jonas Jenwald
b918df3547
Re-factor heuristics to recognize unknown glyphs for |toUnicode|
2014-08-03 21:12:36 +02:00
Jonas Jenwald
4b54d6fd43
Add strict equalities in src/core/stream.js
2014-08-02 17:59:14 +02:00
Jonas Jenwald
7fa204c805
Add strict equalities in src/core/parser.js
2014-08-02 17:37:24 +02:00
Tim van der Meij
cb59b5772b
Merge pull request #5120 from Snuffleupagus/strict-equalities-src-core-2
...
Add strict equalities in src/core/* (part 2)
2014-08-02 13:51:14 +02:00
Tim van der Meij
4899e9e54f
Use strict equalities in src/core/jbig2.js
2014-08-01 23:02:57 +02:00
Tim van der Meij
5d0fde4a2c
Use strict equalities in src/core/jpx.js
2014-08-01 23:02:57 +02:00
Tim van der Meij
2796d1bf10
Use strict equalities in src/core/jpg.js
2014-08-01 23:02:56 +02:00
Tim van der Meij
160c7cab33
Use strict equalities in src/core/image.js
2014-08-01 23:02:55 +02:00
Jonas Jenwald
fb9fea2f36
Add strict equalities in src/core/worker.js
2014-08-01 22:17:47 +02:00
Jonas Jenwald
c9fb3e1b6d
Add strict equalities in src/core/ps_parser.js
2014-08-01 22:02:10 +02:00
Jonas Jenwald
ee371fe6b2
Add strict equalities in src/core/pattern.js
2014-08-01 21:56:04 +02:00
Jonas Jenwald
ee0c0dd8a9
Add strict equalities in src/core/obj.js
2014-08-01 21:56:04 +02:00
Jonas Jenwald
a154ca2dd3
Add strict equalities in src/core/murmurhash3.js
2014-08-01 21:56:04 +02:00
Jonas Jenwald
8f5894d81a
Add strict equalities in src/core/function.js
2014-08-01 21:56:03 +02:00
Jonas Jenwald
97b3eadbc4
Add strict equalities in src/core/fonts.js
2014-08-01 21:56:03 +02:00
Tim van der Meij
00eea3ddb9
Merge pull request #5116 from Snuffleupagus/strict-equalities-src-core
...
Add strict equalities in src/core/* (part 1)
2014-08-01 21:50:05 +02:00
Tim van der Meij
df0b821141
Merge pull request #5113 from Snuffleupagus/strict-equalities-src-display
...
Add strict equalities in src/display/*
2014-08-01 20:51:18 +02:00
Tim van der Meij
0b8b763eda
Merge pull request #5112 from Snuffleupagus/strict-equalities-src-shared
...
Add strict equalities in src/shared/*
2014-08-01 20:00:57 +02:00
Jonas Jenwald
87038e44cd
Add strict equalities in src/core/evaluator.js
2014-08-01 18:40:10 +02:00
Jonas Jenwald
83a4c68df9
Add strict equalities in src/core/core.js
2014-08-01 18:40:10 +02:00
Jonas Jenwald
0012b8803c
Add strict equalities in src/core/colorspace.js
2014-08-01 18:40:09 +02:00
Jonas Jenwald
84503c656d
Add strict equalities in src/core/bidi.js
2014-08-01 18:39:46 +02:00
Jonas Jenwald
2162a19ed9
Add strict equalities in src/core/arithmetic_decoder.js
2014-08-01 18:39:46 +02:00
Jonas Jenwald
9cb09324d2
Add strict equalities in src/core/annotation.js
2014-08-01 18:39:45 +02:00
Jonas Jenwald
4a82dac45b
Add strict equalities in src/display/svg.js
2014-08-01 12:41:03 +02:00
Jonas Jenwald
790ec92a34
Add strict equalities in src/display/pattern_helper.js
2014-08-01 12:40:38 +02:00
Jonas Jenwald
ec6ec13506
Add strict equalities in src/display/metadata.js
2014-08-01 12:40:16 +02:00
Jonas Jenwald
c1f1f2f0e1
Add strict equalities in src/display/canvas.js
2014-08-01 12:39:56 +02:00
Jonas Jenwald
a4b06d7a02
Add strict equalities in src/display/api.js
2014-08-01 12:39:31 +02:00
Jonas Jenwald
ccd71e0a94
Add strict equalities in src/shared/util.js
2014-08-01 12:18:40 +02:00
Jonas Jenwald
42e541a671
Add strict equalities in src/shared/fonts_utils.js
2014-08-01 12:18:35 +02:00
Nicholas Nethercote
adf58ed687
Represent cid chars using integers, not strings.
...
cid chars are 16-bit unsigned integers. Currently we convert them to
single-char strings when inserting them into the CMap, and then convert
them back to integers when extracting them from the CMap. This patch
changes CMap so that cid chars stay in integer format throughout, saving
both time and space.
When loading the PDF from issue #4580 , this change reduces peak RSS from
~600 to ~370 MiB. It also improves overall speed on that PDF by ~26%,
going from 724 ms to 533 ms.
2014-08-01 02:35:17 -07:00
fkaelberer
c03cf20d37
Fix JBIG2 decoding issue #5026
2014-08-01 09:02:25 +02:00
Yury Delendik
ad2ea78280
Merge pull request #5101 from nnethercote/CMap-forEach
...
Avoid expensive for..in loops involving CMaps
2014-07-31 23:03:25 -05:00
Nicholas Nethercote
28687bca75
Optimize CMap.prototype.forEach().
...
This change avoids the element stringification caused by for..in for the
vast majority of CMaps.
When loading the PDF from issue #4580 , this change reduces peak RSS from ~650
to ~600 MiB, and improves overall speed by ~20%, from 902 ms to 713 ms. Other
CMap-heavy documents will also see improvements.
2014-07-30 06:28:47 -07:00
Nicholas Nethercote
b86daed29d
Make CMap.map quasi-private.
...
This makes it easier for the representation to be improved.
2014-07-30 06:26:35 -07:00
Yury Delendik
7026543663
Merge pull request #5059 from timvandermeij/unused-code
...
Removing unused code and enforcing additional JSHint options
2014-07-29 15:04:43 -05:00
Jonas Jenwald
2264748109
Merge pull request #5096 from nnethercote/bidi-length
...
Right-size |chars.length| and |type.length| in bidi().
2014-07-29 12:19:22 +02:00
Nicholas Nethercote
f1d5ec407e
Right-size |chars.length| and |type.length| in bidi().
...
This lets the JS engine resize the array elements buffer immediately,
thus avoiding some intermediate resizings. This can save multiple MiBs
of reallocation in text-heavy files.
2014-07-28 16:35:45 -07:00
Yury Delendik
6038ee7cff
Merge pull request #5063 from Snuffleupagus/ps-parser-avoid-intermediate-string-creation
...
Avoid creating intermediate strings in the PostScriptLexer
2014-07-28 15:07:32 -05:00
Jonas Jenwald
4960af3a4c
Avoid creating intermediate strings in the PostScriptLexer
2014-07-27 13:51:28 +02:00
Jonas Jenwald
a5c98aab36
Re-factor parsing of the Linearization dictionary
2014-07-27 12:56:09 +02:00
Jonas Jenwald
86f9503876
Remove src/core/cidmaps.js
2014-07-25 21:53:17 +02:00
Jonas Jenwald
c3c72948b9
Stop including cidmaps.js
...
In b5b94a4af3
, i.e. PR #4259 , we stopped using cidmaps.js. Despite that, it's still included when PDF.js is built. At almost 0.5 MB (and approx. 7000 lines), this is currently the single largest file in the codebase.
Including such a large file in the builds, when it is not actually used, seems extremely wasteful; hence this patch.
2014-07-25 21:53:09 +02:00
Yury Delendik
1e21bac9d3
Merge pull request #5077 from Snuffleupagus/issue-5039
...
Fix loading of PDF files with invalid or missing Type3 characters (issue 5039)
2014-07-25 14:34:51 -05:00
Tim van der Meij
62e6265fb3
Merge pull request #5074 from nnethercote/readPostScriptTable-join
...
Use Array.join to build up strings in readPostScriptTable().
2014-07-25 21:26:54 +02:00
Yury Delendik
5d4eebc6a7
Merge pull request #5034 from pramodhkp/fixupgstate2
...
[SVG] Adds clip operator, fixes setGState, fill, stroke operators
2014-07-25 13:52:29 -05:00
pramodhkp
6e4dd83a4d
Added endPath, endText. fixes extra <g> elements
2014-07-25 23:30:29 +05:30
pramodhkp
2380b38b27
Fixed setGState, viewport transform
2014-07-25 23:21:23 +05:30
pramodhkp
a55c9856e9
Misc variable initialization
2014-07-25 23:21:23 +05:30
pramodhkp
0688fd3d70
Added fill, stroke, line-join & font attr
2014-07-25 23:20:55 +05:30
pramodhkp
03f1de3403
Added clip operator
2014-07-25 23:13:52 +05:30
Yury Delendik
2aea7d7047
Merge pull request #5078 from nnethercote/Ref-toString
...
Optimize Ref_toString().
2014-07-25 10:10:10 -05:00
Nicholas Nethercote
1039791472
Use Array.join to build up strings in readPostScriptTable().
...
This avoids about 5 MiB of string allocations on one test case.
2014-07-24 16:12:08 -07:00
Tim van der Meij
41faa78368
Fixes typo in promises implementation for legacy browsers
2014-07-24 17:11:22 +02:00
Nicholas Nethercote
856e1c600b
Optimize Ref_toString().
...
I have a large PDF where this function is called 1.6 million times
during loading. Minimizing the string concatenations reduces the
cumulative allocations done by Firefox within this function from 113 MB
to 48 MB.
2014-07-24 06:49:56 -07:00
Jonas Jenwald
2485f11829
Fix loading of PDF files with invalid or missing Type3 characters (issue 5039)
2014-07-24 15:03:22 +02:00
Nicholas Nethercote
501446ccc4
Optimize common cases in hexToStr().
...
This avoids the creation of over two million array objects when viewing
http://www.dynacw.co.jp/Portals/3/fontsamplepdf/sample_4942546800828.pdf ,
and reduces load time from 76 to 73 ms.
2014-07-22 23:26:03 -07:00
Nicholas Nethercote
c7f02d2c8e
Minimize memory usage of font-related arrays.
...
This patch replaces some vanilla arrays with typed arrays, and avoids
some array copying.
It reduces the peak RSS when viewing
http://www.dynacw.co.jp/Portals/3/fontsamplepdf/sample_4942546800828.pdf
from ~940 MiB to ~750 MiB, and reduces its load time from 83 to 76 ms.
2014-07-22 22:47:45 -07:00