[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-2d-dev
Subject:    Re: [OpenJDK 2D-Dev] java2d coding using SAFE_SIZE_ARRAY_ALLOC / safe_Malloc
From:       Thomas_Stüfe <thomas.stuefe () gmail ! com>
Date:       2018-05-30 15:37:07
Message-ID: CAA-vtUw4bieCqNOLevwv=nAnftOoSt5+-oSoxnw0gDhhcshtwA () mail ! gmail ! com
[Download RAW message or body]

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@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
>
>
>
>
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic