[OpenJDK 2D-Dev] RFR: JDK-8204211: windows : handle potential C++ exception in GDIRenderer -was : RE: java2d coding using SAFE_SIZE_ARRAY_ALLOC / safe_Malloc
Baesken, Matthias
matthias.baesken at sap.com
Fri Jun 1 08:39:23 UTC 2018
Hi Thomas , thanks for the feedback.
I created a bug and change for the excpetion handling in GDIRenderer.cpp .
Please review .
Thanks, Matthias
Bug:
https://bugs.openjdk.java.net/browse/JDK-8204211
JDK-8204211: windows : handle potential C++ exception in GDIRenderer
Change :
http://cr.openjdk.java.net/~mbaesken/webrevs/8204211/
> -----Original Message-----
> From: Thomas Stüfe [mailto:thomas.stuefe at gmail.com]
> Sent: Mittwoch, 30. Mai 2018 17:37
> To: Baesken, Matthias <matthias.baesken at sap.com>
> Cc: 2d-dev <2d-dev at openjdk.java.net>
> Subject: Re: [OpenJDK 2D-Dev] java2d coding using
> SAFE_SIZE_ARRAY_ALLOC / safe_Malloc
>
> 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