RFR: 8277848 Binding and Unbinding to List leads to memory leak [v3]
Michael Strauß
mstrauss at openjdk.java.net
Wed Jan 5 19:35:19 UTC 2022
On Wed, 5 Jan 2022 18:14:44 GMT, Florian Kirmaier <fkirmaier at openjdk.org> wrote:
>> Making the initial listener of the ListProperty weak fixes the problem.
>> The same is fixed for Set and Map.
>> Due to a smart implementation, this is done without any performance drawback.
>> (The trick is to have an object, which is both the WeakReference and the Changelistener)
>> By implying the same trick to the InvalidationListener, this should even improve the performance of the collection properties.
>
> Florian Kirmaier has updated the pull request incrementally with one additional commit since the last revision:
>
> JDK-8277848
> Further optimization based code review.
> This Bugfix should now event improve the performance
modules/javafx.base/src/main/java/javafx/beans/property/ListPropertyBase.java line 338:
> 336: public void onChanged(Change<? extends E> change) {
> 337: ListPropertyBase<E> ref = get();
> 338: if(ref != null) {
Minor: space after `if`
modules/javafx.base/src/main/java/javafx/beans/property/MapPropertyBase.java line 339:
> 337: public void onChanged(Change<? extends K, ? extends V> change) {
> 338: MapPropertyBase<K,V> ref = get();
> 339: if(ref != null) {
Minor: space after `if`
modules/javafx.base/src/main/java/javafx/beans/property/SetPropertyBase.java line 341:
> 339: public void onChanged(Change<? extends E> change) {
> 340: SetPropertyBase<E> ref = get();
> 341: if(ref != null) {
Minor: space after `if`
-------------
PR: https://git.openjdk.java.net/jfx/pull/689
More information about the openjfx-dev
mailing list