From 02a6b73492b08226f535c0cea795ef16d52358b3 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Thu, 11 Feb 2016 00:42:40 +0100 Subject: [PATCH] Get rid of `getAll` usage in colorspace.js For the `CalGray`/`CalRGB`/`Lab` colour spaces, we're currently using `getAll` to retrieve the parameters. However that's not really necessary, since we may just as well explicitly `get` the needed parameters instead. --- src/core/colorspace.js | 46 +++++++++++++++++++++++++----------------- 1 file changed, 28 insertions(+), 18 deletions(-) diff --git a/src/core/colorspace.js b/src/core/colorspace.js index f94a2dd4aa268..63a0e5cbb824b 100644 --- a/src/core/colorspace.js +++ b/src/core/colorspace.js @@ -212,15 +212,15 @@ var ColorSpace = (function ColorSpaceClosure() { case 'DeviceCmykCS': return this.singletons.cmyk; case 'CalGrayCS': - whitePoint = IR[1].WhitePoint; - blackPoint = IR[1].BlackPoint; - gamma = IR[1].Gamma; + whitePoint = IR[1]; + blackPoint = IR[2]; + gamma = IR[3]; return new CalGrayCS(whitePoint, blackPoint, gamma); case 'CalRGBCS': - whitePoint = IR[1].WhitePoint; - blackPoint = IR[1].BlackPoint; - gamma = IR[1].Gamma; - var matrix = IR[1].Matrix; + whitePoint = IR[1]; + blackPoint = IR[2]; + gamma = IR[3]; + var matrix = IR[4]; return new CalRGBCS(whitePoint, blackPoint, gamma, matrix); case 'PatternCS': var basePatternCS = IR[1]; @@ -239,11 +239,11 @@ var ColorSpace = (function ColorSpaceClosure() { var tintFnIR = IR[3]; return new AlternateCS(numComps, ColorSpace.fromIR(alt), - PDFFunction.fromIR(tintFnIR)); + PDFFunction.fromIR(tintFnIR)); case 'LabCS': - whitePoint = IR[1].WhitePoint; - blackPoint = IR[1].BlackPoint; - var range = IR[1].Range; + whitePoint = IR[1]; + blackPoint = IR[2]; + var range = IR[3]; return new LabCS(whitePoint, blackPoint, range); default: error('Unknown name ' + name); @@ -287,7 +287,7 @@ var ColorSpace = (function ColorSpaceClosure() { } else if (isArray(cs)) { mode = xref.fetchIfRef(cs[0]).name; this.mode = mode; - var numComps, params, alt; + var numComps, params, alt, whitePoint, blackPoint, gamma; switch (mode) { case 'DeviceGray': @@ -300,11 +300,18 @@ var ColorSpace = (function ColorSpaceClosure() { case 'CMYK': return 'DeviceCmykCS'; case 'CalGray': - params = xref.fetchIfRef(cs[1]).getAll(); - return ['CalGrayCS', params]; + params = xref.fetchIfRef(cs[1]); + whitePoint = params.get('WhitePoint'); + blackPoint = params.get('BlackPoint'); + gamma = params.get('Gamma'); + return ['CalGrayCS', whitePoint, blackPoint, gamma]; case 'CalRGB': - params = xref.fetchIfRef(cs[1]).getAll(); - return ['CalRGBCS', params]; + params = xref.fetchIfRef(cs[1]); + whitePoint = params.get('WhitePoint'); + blackPoint = params.get('BlackPoint'); + gamma = params.get('Gamma'); + var matrix = params.get('Matrix'); + return ['CalRGBCS', whitePoint, blackPoint, gamma, matrix]; case 'ICCBased': var stream = xref.fetchIfRef(cs[1]); var dict = stream.dict; @@ -356,8 +363,11 @@ var ColorSpace = (function ColorSpaceClosure() { var tintFnIR = PDFFunction.getIR(xref, xref.fetchIfRef(cs[3])); return ['AlternateCS', numComps, alt, tintFnIR]; case 'Lab': - params = xref.fetchIfRef(cs[1]).getAll(); - return ['LabCS', params]; + params = xref.fetchIfRef(cs[1]); + whitePoint = params.get('WhitePoint'); + blackPoint = params.get('BlackPoint'); + var range = params.get('Range'); + return ['LabCS', whitePoint, blackPoint, range]; default: error('unimplemented color space object "' + mode + '"'); }