RFR: 8269907 memory leak - Dirty Nodes / Parent removed [v6]

Florian Kirmaier fkirmaier at openjdk.org
Fri Aug 19 10:34:18 UTC 2022


> After thinking about this issue for some time, I've now got a solution.
> I know put the scene in the state it is, before is was shown, when the dirtyNodes are unset, the whole scene is basically considered dirty. 
> This has the drawback of rerendering, whenever a window is "reshown", but it restores sanity about memory behaviour, which should be considered more important.

Florian Kirmaier has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains six additional commits since the last revision:

 - Merge remote-tracking branch 'origin/master'
 - JDK-8269907
   Removed the sync methods for the scene, because they don't work when peer is null, and they are not necessary.
 - JDK-8269907
   Fixed rare bug, causing bounds to be out of sync.
 - JDK-8269907
   We now require the rendering lock when cleaning up dirty nodes. To do so, we moved some code required for snapshot into a reusable method.
 - JDK-8269907
   The bug is now fixed in a new way. Toolkit now supports registering CleanupListeners, which can clean up the dirty nodes, avoiding memoryleaks.
 - JDK-8269907
   Fixing dirty nodes and parent removed, when a window is no longer showing.  This typically happens with context menus.

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

Changes:
  - all: https://git.openjdk.org/jfx/pull/584/files
  - new: https://git.openjdk.org/jfx/pull/584/files/22326ccf..580ba7d3

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jfx&pr=584&range=05
 - incr: https://webrevs.openjdk.org/?repo=jfx&pr=584&range=04-05

  Stats: 1013036 lines in 12130 files changed: 596342 ins; 275898 del; 140796 mod
  Patch: https://git.openjdk.org/jfx/pull/584.diff
  Fetch: git fetch https://git.openjdk.org/jfx pull/584/head:pull/584

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


More information about the openjfx-dev mailing list