< prev index next >

modules/javafx.base/src/main/java/com/sun/javafx/binding/ExpressionHelperBase.java

Print this page
@@ -23,11 +23,13 @@
   * questions.
   */
  
  package com.sun.javafx.binding;
  
+ import java.util.Map;
  import java.util.function.Predicate;
+ 
  import javafx.beans.WeakListener;
  
  public class ExpressionHelperBase {
  
      protected static int trim(int size, Object[] listeners) {

@@ -53,6 +55,13 @@
          }
  
          return size;
      }
  
+     protected static void removeWeakListeners(final Map<?, Integer> listeners) {
+         Predicate<Object> p = t -> t instanceof WeakListener &&
+                 ((WeakListener)t).wasGarbageCollected();
+ 
+         listeners.entrySet().removeIf(e -> p.test(e.getKey()));
+     }
+ 
  }
< prev index next >