On Mon, 29 Mar 2021 12:35:23 GMT, Marius Hanl <github.com+66004280+mara...@openjdk.org> wrote:
>> modules/javafx.controls/src/main/java/javafx/scene/control/skin/TableRowSkinBase.java >> line 556: >> >>> 554: } >>> 555: getChildren().removeAll(toRemove); >>> 556: } else if (resetChildren || cellsEmpty) { >> >> just curious : any idea why fixedCellSize was special-cased here? Not to >> clean them up sounds (and is) very much wrong, so there must have been a >> reason? > > The '!fixedCellSizeEnabled' check is not needed, as we already check for > fixedCellSizeEnabled in the main if condition. > `if (fixedCellSizeEnabled) {...}` > > So before, it was like: > `if (fixedCellSizeEnabled) {...} ` > `else if (!fixedCellSizeEnabled && (resetChildren || cellsEmpty)) {...}` > > So we only execute the else condition, if fixedCellSizeEnabled is not true -> > !fixedCellSizeEnabled. -> The check is not necessary, as fixedCellSizeEnabled > must be false, when we come to the else condition. > The variable fixedCellSizeEnabled is also a primitive boolean, so it can't be > null, making this check obsolete. > > Edit: If you mean the special handling for fixed cell size in general, I have > no idea. This was added in a commit from Jonathan Giles stating, that he > fixed a performance problem with fixed cell size. So maybe instead of > resetting all the cells, only the affected are removed/added by this, leading > to a performance boost? yeah, was curious about the stuff in your "edit" paragraph. And thanks for the explanation of the if-block, didn't see the whole .. :) ------------- PR: https://git.openjdk.java.net/jfx/pull/444