On Sun, 5 Nov 2023 07:11:27 GMT, Julian Waters <jwat...@openjdk.org> wrote:

>> We should set the -permissive- flag for the Microsoft Visual C compiler, as 
>> was requested by the now backed out 
>> [JDK-8241499](https://bugs.openjdk.org/browse/JDK-8241499). Doing so makes 
>> the Visual C compiler much less accepting of ill formed code, which will 
>> improve code quality on Windows in the future.
>
> Julian Waters has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Whitespace awt_Canvas.cpp

> But it doesn't matter because the changes you are making aren't going in the 
> right direction.
> The root of the compiler complaints is the gotos isn't it ?
> So the code needs to be changed to not use gotos. I guess you did do that but 
> not in a way I'd endorse

Indeed, I am planning to rewrite it in a way that doesn't use gotos (at least 
for the areas here where the compiler cannot compile). The reason I asked if 
the C++ Standard Library could be used is because std::unique_ptr can be used 
here to very cleanly replace the gotos, with minimal and non-disruptive code 
changes that would be easy to review, compared to the clunky changes I had to 
make here (without the C++ Library)

> Do we ? I'm not sure why that is. We've previously tried hard to avoid that. 
> Eg https://hg.openjdk.org/jdk9/jdk9/rev/f3c96aea372d
> 
> We should still stay away from it.

So the dynamic version of the C++ Standard Library (msvcp140.dll) cannot be 
used. Alright. What if we statically link the C Runtime Libraries to awt.dll 
instead? This way, not only do we not have to worry all the time about 
introducing a dependency to msvcp140.dll (as everything is statically linked), 
but std::unique_ptr also becomes available to use here, and we also wouldn't 
need to do the std::bad_alloc hack that we currently do too. This is as simple 
as passing the -MT compiler flag to BUILD_LIBAWT in the Makefile

-------------

PR Comment: https://git.openjdk.org/jdk/pull/15096#issuecomment-1797804764

Reply via email to