diff --git a/src/share/native/sun/awt/medialib/awt_ImagingLib.c b/src/share/native/sun/awt/medialib/awt_ImagingLib.c index 66741e7df2d0b12836b004967f8073bf192a9763..2e81b63d3526b3d2bde6c66f1eacf584d87b9503 100644 --- a/src/share/native/sun/awt/medialib/awt_ImagingLib.c +++ b/src/share/native/sun/awt/medialib/awt_ImagingLib.c @@ -1308,13 +1308,17 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject thisLib, return 0; } + ncomponents = srcImageP->cmodel.isDefaultCompatCM + ? 4 + : srcImageP->cmodel.numComponents; + /* Make sure that color order can be used for * re-ordering of lookup arrays. */ for (i = 0; i < nbands; i++) { int idx = srcImageP->hints.colorOrder[i]; - if (idx < 0 || idx >= nbands) { + if (idx < 0 || idx >= ncomponents) { awt_freeParsedImage(srcImageP, TRUE); awt_freeParsedImage(dstImageP, TRUE); return 0; @@ -1323,10 +1327,6 @@ Java_sun_awt_image_ImagingLib_lookupByteBI(JNIEnv *env, jobject thisLib, lut_nbands = (*env)->GetArrayLength(env, jtableArrays); - ncomponents = srcImageP->cmodel.isDefaultCompatCM - ? 4 - : srcImageP->cmodel.numComponents; - if (lut_nbands > ncomponents) { lut_nbands = ncomponents; } diff --git a/test/java/awt/image/mlib/MlibOpsTest.java b/test/java/awt/image/mlib/MlibOpsTest.java index 458616b5e49433ac4a8da50deac20ed4e49e6f6d..8f8bf7bd2866f9fc244cc57a27e667bba34058b2 100644 --- a/test/java/awt/image/mlib/MlibOpsTest.java +++ b/test/java/awt/image/mlib/MlibOpsTest.java @@ -23,7 +23,7 @@ /* * @test - * @bug 6556332 8011992 + * @bug 6556332 8011992 8012112 * @summary Test verifies that on-demnad loading of medialib library does * not break imageing ops based on this library. * @run main MlibOpsTest