You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/05/04 03:31:27 UTC
svn commit: r1889468 - in
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading:
AxialShadingContext.java RadialShadingContext.java Type1ShadingContext.java
Author: tilman
Date: Tue May 4 03:31:27 2021
New Revision: 1889468
URL: http://svn.apache.org/viewvc?rev=1889468&view=rev
Log:
PDFBOX-4892: revert last commit, values is reused and gets another length which results in out of bounds exception with PDRange
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java?rev=1889468&r1=1889467&r2=1889468&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/AxialShadingContext.java Tue May 4 03:31:27 2021
@@ -176,14 +176,12 @@ public class AxialShadingContext extends
WritableRaster raster = getColorModel().createCompatibleWritableRaster(w, h);
boolean useBackground;
int[] data = new int[w * h * 4];
- float[] values = new float[2];
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
useBackground = false;
- values[0] = x + i;
- values[1] = y + j;
+ float[] values = new float[] { x + i, y + j };
rat.transform(values, 0, values, 0, 1);
double inputValue = x1x0 * (values[0] - coords[0]) + y1y0 * (values[1] - coords[1]);
// TODO this happens if start == end, see PDFBOX-1442
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java?rev=1889468&r1=1889467&r2=1889468&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/RadialShadingContext.java Tue May 4 03:31:27 2021
@@ -182,13 +182,11 @@ public class RadialShadingContext extend
float inputValue = -1;
boolean useBackground;
int[] data = new int[w * h * 4];
- float[] values = new float[2];
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
- values[0] = x + i;
- values[1] = y + j;
+ float[] values = new float[] { x + i, y + j };
rat.transform(values, 0, values, 0, 1);
useBackground = false;
float[] inputValues = calculateInputValues(values[0], values[1]);
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java?rev=1889468&r1=1889467&r2=1889468&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/shading/Type1ShadingContext.java Tue May 4 03:31:27 2021
@@ -101,15 +101,13 @@ class Type1ShadingContext extends Shadin
{
WritableRaster raster = getColorModel().createCompatibleWritableRaster(w, h);
int[] data = new int[w * h * 4];
- float[] values = new float[2];
for (int j = 0; j < h; j++)
{
for (int i = 0; i < w; i++)
{
int index = (j * w + i) * 4;
boolean useBackground = false;
- values[0] = x + i;
- values[1] = y + j;
+ float[] values = new float[] { x + i, y + j };
rat.transform(values, 0, values, 0, 1);
if (values[0] < domain[0] || values[0] > domain[1] ||
values[1] < domain[2] || values[1] > domain[3])