On Wed, 10 Mar 2021 22:25:32 GMT, Florian Kirmaier <fkirma...@openjdk.org> wrote:
> Fixing a memory leak. > A node hard references its old parent after CSS layout and getting removed. > This shouldn't be the case, this is very counterintuitive. > > The fix uses a WeakReference in CSSStyleHelper for firstStyleableAncestor. > This should be fine because the CSS should only depend on it if it's still > the real parent. > In that case, it doesn't get collected. modules/javafx.graphics/src/main/java/javafx/scene/CssStyleHelper.java line 180: > 178: helper.cacheContainer = new CacheContainer(node, styleMap, > depth); > 179: > 180: helper.firstStyleableAncestor = new > WeakReference<>(findFirstStyleableAncestor(node)); Can you investigate for an alternative to set `firstStyleableAncestor` to null when the related `node` is removed from scenegraph or may be `null` the reference to `Node.styleHelper` itself when Node is removed from scenegraph. This will result in recreating the `Node.styleHelper` next time when it is added back to scenegraph. ------------- PR: https://git.openjdk.java.net/jfx/pull/424