X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FEventHandler.java;h=99a4e5f4f75ea737e0b2df5e173c64b700f74f1d;hb=1854b5cebef22ace9e9e4dd191f609818df9ce08;hp=7714aa5139eac07fc4db81f5a65b7ee76b72a60e;hpb=b6cc0960eaee5a5bbc7fde79a56152d6dcd649d8;p=ldk-java diff --git a/src/main/java/org/ldk/structs/EventHandler.java b/src/main/java/org/ldk/structs/EventHandler.java index 7714aa51..99a4e5f4 100644 --- a/src/main/java/org/ldk/structs/EventHandler.java +++ b/src/main/java/org/ldk/structs/EventHandler.java @@ -4,6 +4,8 @@ import org.ldk.impl.bindings; import org.ldk.enums.*; import org.ldk.util.*; import java.util.Arrays; +import java.lang.ref.Reference; +import javax.annotation.Nullable; /** * A trait implemented for objects handling events from [`EventsProvider`]. @@ -36,7 +38,6 @@ public class EventHandler extends CommonBase { impl_holder.held = new EventHandler(new bindings.LDKEventHandler() { @Override public void handle_event(long event) { Event event_hu_conv = Event.constr_from_ptr(event); - event_hu_conv.ptrs_to.add(this); arg.handle_event(event_hu_conv); } }); @@ -48,7 +49,9 @@ public class EventHandler extends CommonBase { * See [`EventsProvider`] for details that must be considered when implementing this method. */ public void handle_event(Event event) { - bindings.EventHandler_handle_event(this.ptr, event.ptr); + bindings.EventHandler_handle_event(this.ptr, event == null ? 0 : event.ptr & ~1); + Reference.reachabilityFence(this); + Reference.reachabilityFence(event); } }