[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