RFR: 8348106: Catch C++ exception in Java_sun_awt_windows_WTaskbarPeer_setOverlayIcon [v4]

Alexey Ivanov aivanov at openjdk.org
Mon Feb 17 13:11:18 UTC 2025


On Mon, 17 Feb 2025 13:03:59 GMT, Alexey Ivanov <aivanov at openjdk.org> wrote:

> The suggestion was to use the macros: [`TRY`](https://github.com/openjdk/jdk/blob/ab66c82ce9fdb5ee3fd7690f42b8ad4d78bf5e40/src/java.desktop/windows/native/libawt/windows/alloc.h#L131-L134) and [`CATCH_BAD_ALLOC`](https://github.com/openjdk/jdk/blob/ab66c82ce9fdb5ee3fd7690f42b8ad4d78bf5e40/src/java.desktop/windows/native/libawt/windows/alloc.h#L154-L160).

The code would look like this:


JNIEXPORT void JNICALL Java_sun_awt_windows_WTaskbarPeer_setOverlayIcon
  (JNIEnv *env, jobject, jlong window, jintArray buf, jint w, jint h)
{
    TRY;

    HICON icon = CreateIconFromRaster(env, buf, w, h);
    m_Taskbar->SetOverlayIcon((HWND)window, icon, NULL);
    ::DestroyIcon(icon);

    CATCH_BAD_ALLOC;
}

-------------

PR Comment: https://git.openjdk.org/jdk/pull/23470#issuecomment-2663076031


More information about the client-libs-dev mailing list