On Mon, 15 Jun 2020 06:25:36 GMT, Ambarish Rapte <ara...@openjdk.org> wrote:
>> ListCellSkin installs listeners to the ListView/fixedCellSize that introduce >> a memory leak, NPE on replacing the >> listView and incorrect update of internal state (see bug report for details) >> Fixed by removing the listeners (and the internal state had been copied from >> listView on change) and access of listView >> state when needed. >> Added tests that failed before and pass after the fix, plus a sanity test to >> guarantee same (correct) behavior >> before/after. > > modules/javafx.controls/src/main/java/javafx/scene/control/skin/ListCellSkin.java > line 100: > >> 99: double fixedCellSize = getFixedCellSize(); >> 100: if (fixedCellSize > 0) { >> 101: return fixedCellSize; > > These compute methods get invoked multiple times during each layout pass(10s > of times). Fetching the fixed cell size on > each call to these methods seems to be repeated and costly operation compared > to previous boolean check. I think we > should keep the previous way of handling it: registering the change listener > to `listView.fixedCellSizeProperty()`. ehh .. last time I did such micro-optimization was in the 80ies of last century ;) Are there any performance measurements anywhere to demonstrate the impact? ------------- PR: https://git.openjdk.java.net/jfx/pull/251