jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java
changeset 8938 8e3cd84800e3
parent 7746 3cdbc9c4de5b
child 9050 26c2c1de1631
--- a/jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java	Tue Mar 22 11:22:38 2011 +0300
+++ b/jdk/src/share/classes/java/awt/image/SinglePixelPackedSampleModel.java	Tue Mar 22 12:28:03 2011 +0300
@@ -461,7 +461,12 @@
      */
     public int[] getPixels(int x, int y, int w, int h,
                            int iArray[], DataBuffer data) {
-        if ((x < 0) || (y < 0) || (x + w > width) || (y + h > height)) {
+        int x1 = x + w;
+        int y1 = y + h;
+
+        if (x < 0 || x >= width || w > width || x1 < 0 || x1 > width ||
+            y < 0 || y >= height || h > height || y1 < 0 || y1 >  height)
+        {
             throw new ArrayIndexOutOfBoundsException
                 ("Coordinate out of bounds!");
         }
@@ -659,7 +664,12 @@
      */
     public void setPixels(int x, int y, int w, int h,
                           int iArray[], DataBuffer data) {
-        if ((x < 0) || (y < 0) || (x + w > width) || (y + h > height)) {
+        int x1 = x + w;
+        int y1 = y + h;
+
+        if (x < 0 || x >= width || w > width || x1 < 0 || x1 > width ||
+            y < 0 || y >= height || h > height || y1 < 0 || y1 >  height)
+        {
             throw new ArrayIndexOutOfBoundsException
                 ("Coordinate out of bounds!");
         }