fix a few max call stack size exceeded errors

resolves a RangeError when finalizing documents with many images and/or many pages.
This commit is contained in:
Bob Zoller 2014-02-14 11:40:53 -08:00
parent 73926bee12
commit dd8fb58092
3 changed files with 10 additions and 7 deletions

View File

@ -1,5 +1,6 @@
fs = require 'fs'
Data = '../data'
setImmediate = setImmediate ? process.nextTick # backfill for node <0.10
class JPEG
constructor: (@data) ->
@ -49,6 +50,6 @@ class JPEG
obj.data['Decode'] = [1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0]
obj.add @data.data
fn obj
setImmediate -> fn(obj)
module.exports = JPEG
module.exports = JPEG

View File

@ -1,5 +1,6 @@
zlib = require 'zlib'
PNG = require 'png-js'
setImmediate = setImmediate ? process.nextTick # backfill for node <0.10
class PNGImage
constructor: (data) ->
@ -87,7 +88,7 @@ class PNGImage
# add the actual image data
obj.add @imgData
fn obj
setImmediate -> fn(obj)
splitAlphaChannel: (fn) ->
@image.decodePixels (pixels) =>
@ -126,4 +127,4 @@ class PNGImage
throw err if err
fn()
module.exports = PNGImage
module.exports = PNGImage

View File

@ -4,6 +4,7 @@ By Devon Govett
###
zlib = require 'zlib'
setImmediate = setImmediate ? process.nextTick # backfill for node <0.10
class PDFReference
constructor: (@id, @data = {}) ->
@ -47,13 +48,13 @@ class PDFReference
else
@finalizedStream = data
@data.Length = @finalizedStream.length
fn()
setImmediate fn
else
@finalizedStream = ''
fn()
setImmediate fn
toString: ->
"#{@id} #{@gen} R"
module.exports = PDFReference
PDFObject = require './object'
PDFObject = require './object'