On Wed, 23 Nov 2022 08:18:32 GMT, Matthias Baesken <mbaes...@openjdk.org> wrote:
> Seems there is a remaining GetPrimitiveArrayCritical in imageioJPEG that > misses a result - NULL check, this should be added. Marked as reviewed by jdv (Reviewer). > Hello , I did a few more grepping and source reading and while 98 or 99 > percent of the GetPrimitiveArrayCritical return values are checked, there are > a few more unchecked ones. See below > > ` src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-136- jint > nElements = (*env)->GetArrayLength(env, inTypes); > src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-137- > NSMutableArray *formatArray = [NSMutableArray arrayWithCapacity:nElements]; > src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m:138: jlong > *elements = (*env)->GetPrimitiveArrayCritical(env, inTypes, NULL); > src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-139- > src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-140- for (i = 0; > i < nElements; i++) { > src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-141- NSString > *pbFormat = formatForIndex(elements[i]); > src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-142- if > (pbFormat) src/java.desktop/macosx/native/libawt_lwawt/awt/CClipboard.m-143- > [formatArray addObject:pbFormat]; > > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-54-static > inline void > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-55-GetGlyphsFromUnicodes(JNIEnv > *env, AWTFont *awtFont, > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-56- > jint count, UniChar *unicodes, > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-57- > CGGlyph *cgGlyphs, jintArray glyphs) > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-58-{ > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m:59: > jint *glyphCodeInts = (*env)->GetPrimitiveArrayCritical(env, glyphs, 0); > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-60- > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-61- > CTS_GetGlyphsAsIntsForCharacters(awtFont, unicodes, > src/java.desktop/macosx/native/libawt_lwawt/font/CCharToGlyphMapper.m-62- > cgGlyphs, glyphCodeInts, count); > > src/java.desktop/macosx/native/libosxui/JRSUIController.m:279: jdouble *rect > = (*env)->GetPrimitiveArrayCritical(env, rectArray, NULL); > src/java.desktop/macosx/native/libosxui/JRSUIController.m-280- rect[0] = > partBounds.origin.x; > src/java.desktop/macosx/native/libosxui/JRSUIController.m-281- rect[1] = > partBounds.origin.y; > > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c-333-Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting( > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c-334- JNIEnv > *env, jobject this, jintArray dest, jint width, jint height) > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c-335-{ > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c-336- jint > transparency; > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c:337: gint > _buffer = (gint_) (*env)->GetPrimitiveArrayCritical(env, dest, 0); > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c-338- > gtk->gdk_threads_enter(); > src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKEngine.c-339- > transparency = gtk->copy_image(buffer, width, height); > > src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp-437- // Copy > the resulting pixels to our Java BufferedImage. > src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp:438: pDstBits > = (int *)env->GetPrimitiveArrayCritical(array, 0); > src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp-439- BOOL > transparent = FALSE; > src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp-440- > transparent = IsThemeBackgroundPartiallyTransparentFunc(hTheme, part, state); > src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp-441- > copyDIBToBufferedImage(pDstBits, pSrcBits, transparent, w, h, stride); > src/java.desktop/windows/native/libawt/windows/ThemeReader.cpp-442- > env->ReleasePrimitiveArrayCritical(array, pDstBits, 0); > > src/java.desktop/windows/native/libawt/windows/awt_DataTransferer.cpp-164- > LOGPALETTE* pLogPalette = > src/java.desktop/windows/native/libawt/windows/awt_DataTransferer.cpp:165: > (LOGPALETTE*)env->GetPrimitiveArrayCritical(paletteBytes, NULL); > src/java.desktop/windows/native/libawt/windows/awt_DataTransferer.cpp-166- > PALETTEENTRY* pPalEntries = (PALETTEENTRY*)pLogPalette->palPalEntry; > > src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp:2863: > colorsPtr = (jint *)env->GetPrimitiveArrayCritical(colors, 0); > src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp-2864- for (int > i = 0; i < (sizeof indexMap)/(sizeof *indexMap) && i < colorLen; i++) { > src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp-2865- > colorsPtr[i] = DesktopColor2RGB(indexMap[i]); > src/java.desktop/windows/native/libawt/windows/awt_Toolkit.cpp-2866- } ` > > Should I open another jbs issue for them ? Sure please create new JBS issue for the same. ------------- PR: https://git.openjdk.org/jdk/pull/11312