X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FEventHandler.java;h=cb74075277b76454accd94abe5ee800846048820;hb=f385eff0dd0aa61fbf21ae946c424f4a6a26de04;hp=21819ca90d85ff6247b0677a28c10069da49141c;hpb=a7653cf8717b1f9df4d3f4c4bd0b1f50f3bbc230;p=ldk-java diff --git a/src/main/java/org/ldk/structs/EventHandler.java b/src/main/java/org/ldk/structs/EventHandler.java index 21819ca9..cb740752 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; /** @@ -38,6 +39,7 @@ public class EventHandler extends CommonBase { @Override public void handle_event(long event) { Event event_hu_conv = Event.constr_from_ptr(event); arg.handle_event(event_hu_conv); + Reference.reachabilityFence(arg); } }); return impl_holder.held; @@ -48,8 +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 == null ? 0 : event.ptr & ~1); - this.ptrs_to.add(event); + bindings.EventHandler_handle_event(this.ptr, event == null ? 0 : event.ptr); + Reference.reachabilityFence(this); + Reference.reachabilityFence(event); } }