[OpenJDK 2D-Dev] java2d coding using SAFE_SIZE_ARRAY_ALLOC / safe_Malloc
Thomas Stüfe
thomas.stuefe at gmail.com
Wed May 30 15:37:07 UTC 2018
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
<matthias.baesken at sap.com> 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
>
>
>
>
More information about the 2d-dev
mailing list