From 933ed2b69d422e1a304137f6417de256954ec07e Mon Sep 17 00:00:00 2001 From: Andrew Brygin Date: Thu, 17 Mar 2011 17:45:01 +0300 Subject: [PATCH] 7014528: ColorModel and SampleModel gotten from the same ImageTypeSpecifier instance can be not compatible Reviewed-by: jgodinez, prr --- jdk/src/share/classes/java/awt/image/PackedColorModel.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/jdk/src/share/classes/java/awt/image/PackedColorModel.java b/jdk/src/share/classes/java/awt/image/PackedColorModel.java index 532f8d2678b..b2ab7ad9c91 100644 --- a/jdk/src/share/classes/java/awt/image/PackedColorModel.java +++ b/jdk/src/share/classes/java/awt/image/PackedColorModel.java @@ -343,8 +343,13 @@ public abstract class PackedColorModel extends ColorModel { 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; } }