On Fri, 7 Nov 2025 00:32:31 GMT, Jose Pereda <[email protected]> wrote:

>> modules/javafx.graphics/src/main/java/com/sun/glass/ui/Screen.java line 375:
>> 
>>> 373:     public static void notifySettingsChanged() {
>>> 374:         // Save the old screens in order to dispose them later
>>> 375:         Set<Screen> oldScreens = new HashSet<>();
>> 
>> Does the order matter? I don't think so, but if it does, `LinkedHashSet` 
>> would preserve the order.
>
> No, it doesn't matter. 
> 
> The old screens are "disposed" just by setting their native pointer to 0L, so 
> they can't be reused, while the new screens instances are passed to the 
> windows, to keep an updated instance. 
> 
> Note that even if old screen and new screen have the very same information 
> (nothing changed for this particular screen), since `WinWindow::notifyMoving` 
> uses the equality operator (`screen 1 == screen 2`), we need to keep a valid 
> instance in `Window::screen`, and therefore `Screen::dispose` is just a way 
> of invalidating old instances. Then, since they are no longer referenced by 
> any window, they can be gc'ed.

I had exactly the same question, and looked into the implementation.
Is it likely the implementation would change and the order be important in the 
future?

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1964#discussion_r2504169270

Reply via email to