From 7fe2442a18bed930a560dc3595c40dc8d1d8760c Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 31 Jul 2015 13:59:02 +0200 Subject: [PATCH] Ensure that we don't use the same typed array for both `coords` and `colors` in Mesh `figures` (issue 6287) This regressed in https://github.com/mozilla/pdf.js/commit/1e8d70af9819d9b285e15fea8d50456c8275137e. --- src/core/pattern.js | 14 ++++---------- test/pdfs/.gitignore | 1 + test/pdfs/issue2948.pdf | Bin 0 -> 23038 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 12 insertions(+), 10 deletions(-) create mode 100644 test/pdfs/issue2948.pdf diff --git a/src/core/pattern.js b/src/core/pattern.js index d3123ccbd..eead24862 100644 --- a/src/core/pattern.js +++ b/src/core/pattern.js @@ -345,13 +345,10 @@ Shadings.Mesh = (function MeshClosure() { reader.align(); } - - var psPacked = new Int32Array(ps); - mesh.figures.push({ type: 'triangles', - coords: psPacked, - colors: psPacked + coords: new Int32Array(ps), + colors: new Int32Array(ps), }); } @@ -366,13 +363,10 @@ Shadings.Mesh = (function MeshClosure() { coords.push(coord); colors.push(color); } - - var psPacked = new Int32Array(ps); - mesh.figures.push({ type: 'lattice', - coords: psPacked, - colors: psPacked, + coords: new Int32Array(ps), + colors: new Int32Array(ps), verticesPerRow: verticesPerRow }); } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index a186388cc..3e6cf42a7 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -22,6 +22,7 @@ !simpletype3font.pdf !sizes.pdf !close-path-bug.pdf +!issue2948.pdf !issue4630.pdf !issue4909.pdf !issue5202.pdf diff --git a/test/pdfs/issue2948.pdf b/test/pdfs/issue2948.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5eef6c6098086e03daba0fd0260a0da2e0307028 GIT binary patch literal 23038 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