Letting c++ exceptions escape from extern "C" functions is UB and may (and probably will) crash the process. This should be fixed. Approach taken by JDK-8039394 is fine (I would probably catch every C++ exception with catch(...), not just bad_alloc, just to be safe).
Best Regards, Thomas On Wed, May 30, 2018 at 5:08 PM, Baesken, Matthias <[email protected]> wrote: > Hello , there is still some java2d coding where SAFE_SIZE_ARRAY_ALLOC / > safe_Malloc is used and the (potentially occurring) exception is not > handled . > > > > This leads to CL warnings (when enabled ) like > > > > " function assumed not to throw an exception but does ; The function is > extern "C" and /EHc was specified" > > > > Example : > > > > java.desktop/windows/native/libawt/java2d/windows/GDIRenderer.cpp > > > > static POINT *TransformPoly() > > ….. > > if (outpoints > POLYTEMPSIZE) { > > pPoints = (POINT *) SAFE_SIZE_ARRAY_ALLOC(safe_Malloc, > sizeof(POINT), outpoints); > > } > > > > > > Should we add exception handling here ? > > > > Similar fixes were done in the change 8039394: Compiler warnings about C++ > exceptions in windows printing code > > > > https://bugs.openjdk.java.net/browse/JDK-8039394 > > http://hg.openjdk.java.net/jdk9/jdk9/jdk/rev/823387e2bf42 > > > > > > Best regards, Matthias > > > >
