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

List:       openjdk-openjfx-dev
Subject:    Integrated: 8301219: JavaFX crash when closing with the escape key
From:       Martin Fox <mfox () openjdk ! org>
Date:       2023-12-26 16:17:50
Message-ID: Gpo1mxRzkhHSC1qupwWtfSF80yLiwlB92D4pVxAo11E=.c77f4737-c113-429a-8116-cbd84f4fdb3f () github ! com
[Download RAW message or body]

On Thu, 14 Dec 2023 00:58:56 GMT, Martin Fox <mfox@openjdk.org> wrote:

> While processing a key down event the Glass GTK code sends out PRESSED and TYPED \
> KeyEvents back to back. If the stage is closed during the PRESSED event the code \
> will end up referencing freed memory while sending out the TYPED event. This can \
> lead to intermittent crashes. 
> In GlassApplication.cpp the EventCounterHelper object ensures the WindowContext \
> isn't deleted while processing an event. Currently the helper object is being \
> created *after* IME handling instead of before. If the IME is enabled it's possible \
> for the WindowContext to be deleted in the middle of executing a number of \
> keyboard-related events. 
> The fix is simple; instantiate the EventCounterHelper object earlier. There isn't \
> always a WindowContext so I tweaked the EventCounterHelper to do nothing if the \
> context is null. 
> To make the crash more reproducible I altered the WindowContext such that when it's \
> deleted the freed memory is filled with 0xCC. This made the crash more reproducible \
> and allowed me to test the fix. I did the same with GlassView since that's the only \
> other Glass GTK class that's instantiated with `new` and discarded with `delete`.

This pull request has now been integrated.

Changeset: 2493a23e
Author:    Martin Fox <mfox@openjdk.org>
URL:       https://git.openjdk.org/jfx/commit/2493a23e2dc5ff8694ab4a1bed06fe73466edaf9
                
Stats:     201 lines in 5 files changed: 192 ins; 2 del; 7 mod

8301219: JavaFX crash when closing with the escape key
8087368: java runtime environment error when trying to execute showAndWait() function

Reviewed-by: kcr, tsayao

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

PR: https://git.openjdk.org/jfx/pull/1307


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

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