On Wed, 26 Jul 2023 11:59:06 GMT, Matthias Baesken <[email protected]> wrote:

>> In src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp GetRGBPixels 
>> we release some resources at the end of the function by calling 
>> DeleteObject/DeleteDC. This is recommended by the MS API docs.
>> However this should be done as well in some early leaving with throw that 
>> can occur in this function.
>
> Matthias Baesken has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   adjust checks and calculation of numPixels

src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp line 207:

> 205:         ::DeleteDC(hdcScreen);
> 206:         throw std::bad_alloc();
> 207:     }

I wonder if we can catch std::bad_alloc releases the resources and re-throw the 
exception.

Since a C++ exception is thrown, using try-catch for clean-up seems reasonable, 
this would avoid duplicating the clean-up code in three places or so.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/15038#discussion_r1276761238

Reply via email to