On Wed, 27 Jan 2021 13:31:45 GMT, Kevin Rushforth <k...@openjdk.org> wrote:

> Prism implements a dirty region optimization, where in many cases, only part 
> of the scene graph is re-rendered when something changes. In support of this, 
> the `ViewPainter` class in the Quantum Toolkit keeps an array of node paths, 
> `ROOT_PATHS`, which is a list of sub-trees in the scene graph that need to be 
> rendered based on a change to that node. The entries in the `ROOT_PATHS` 
> array are intended to be transient during the rendering of a single pass of a 
> single scene. They are recreated every time a scene is rendered. The leak 
> occurs because the entries are not cleared after being used. The fix is to 
> clear each entry after it is rendered. In addition to static analysis, which 
> shows that the entries are never used again after a frame is rendered, I have 
> done a full build and test, including manual tests, to be sure that there is 
> no regression.
> 
> I have added a test that will fail consistently on Mac and Windows (and 
> intermittently on Linux) without the fix. It passes consistently on all 
> platforms with the fix.
> 
> Even though this is a simple change, it is in an area that has historically 
> been fragile, so I would like two reviewers.

Looks good to me.

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

Marked as reviewed by arapte (Reviewer).

PR: https://git.openjdk.java.net/jfx/pull/388

Reply via email to