7014528: ColorModel and SampleModel gotten from the same ImageTypeSpecifier instance can be not compatible

Reviewed-by: jgodinez, prr
This commit is contained in:
Andrew Brygin 2011-03-17 17:45:01 +03:00
parent 36f660a41f
commit 933ed2b69d

View File

@ -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;
}
}