X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FEventHandler.java;h=2de4e0c04f84da82a0d64c3c49736b795ad4db06;hb=8a515be62568ee4327e636a977e32204006d6493;hp=288e1395e4c805ebeb134109b9d533af632a80bc;hpb=ba1af51214a8ea2de62b84cd23b6145173c71752;p=ldk-java diff --git a/src/main/java/org/ldk/structs/EventHandler.java b/src/main/java/org/ldk/structs/EventHandler.java index 288e1395..2de4e0c0 100644 --- a/src/main/java/org/ldk/structs/EventHandler.java +++ b/src/main/java/org/ldk/structs/EventHandler.java @@ -4,6 +4,7 @@ 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; /** @@ -37,8 +38,8 @@ 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); + Reference.reachabilityFence(arg); } }); return impl_holder.held; @@ -49,7 +50,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); } }