changeset 3888:4450c35a5f90

7014528: ColorModel and SampleModel gotten from the same ImageTypeSpecifier instance can be not compatible Reviewed-by: jgodinez, prr
author bae
date Thu, 17 Mar 2011 17:45:01 +0300
parents 5c61c31d2621
children 5371ec6c4f41
files src/share/classes/java/awt/image/PackedColorModel.java
diffstat 1 files changed, 6 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/awt/image/PackedColorModel.java	Wed Mar 16 19:21:06 2011 +0300
+++ b/src/share/classes/java/awt/image/PackedColorModel.java	Thu Mar 17 17:45:01 2011 +0300
@@ -343,8 +343,13 @@
         if (bitMasks.length != maskArray.length) {
             return false;
         }
+
+        /* compare 'effective' masks only, i.e. only part of the mask
+         * which fits the capacity of the transfer type.
+         */
+        int maxMask = (int)((1L << DataBuffer.getDataTypeSize(transferType)) - 1);
         for (int i=0; i < bitMasks.length; i++) {
-            if (bitMasks[i] != maskArray[i]) {
+            if ((maxMask & bitMasks[i]) != (maxMask & maskArray[i])) {
                 return false;
             }
         }