X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FChannelMessageHandler.java;h=d286901e7fb8399994beab0349b38468044a4fbc;hb=00e9cb703daea4fae4c89b14c8a584677ad74fca;hp=d920f2d49697fd70003c19d85d13cc88c1280e80;hpb=aa0e2aade37133339f4113a0cd7465b111f0a0d0;p=ldk-java diff --git a/src/main/java/org/ldk/structs/ChannelMessageHandler.java b/src/main/java/org/ldk/structs/ChannelMessageHandler.java index d920f2d4..d286901e 100644 --- a/src/main/java/org/ldk/structs/ChannelMessageHandler.java +++ b/src/main/java/org/ldk/structs/ChannelMessageHandler.java @@ -12,6 +12,7 @@ public class ChannelMessageHandler extends CommonBase { private ChannelMessageHandler(bindings.LDKChannelMessageHandler arg, bindings.LDKMessageSendEventsProvider MessageSendEventsProvider) { super(bindings.LDKChannelMessageHandler_new(arg, MessageSendEventsProvider)); this.ptrs_to.add(arg); + this.ptrs_to.add(MessageSendEventsProvider); this.bindings_instance = arg; } @Override @SuppressWarnings("deprecation") @@ -40,8 +41,10 @@ public class ChannelMessageHandler extends CommonBase { void handle_channel_reestablish(byte[] their_node_id, ChannelReestablish msg); void handle_error(byte[] their_node_id, ErrorMessage msg); } - public ChannelMessageHandler(ChannelMessageHandlerInterface arg, MessageSendEventsProvider.MessageSendEventsProviderInterface MessageSendEventsProvider) { - this(new bindings.LDKChannelMessageHandler() { + private static class LDKChannelMessageHandlerHolder { ChannelMessageHandler held; } + public static ChannelMessageHandler new_impl(ChannelMessageHandlerInterface arg, MessageSendEventsProvider.MessageSendEventsProviderInterface MessageSendEventsProvider_impl) { + final LDKChannelMessageHandlerHolder impl_holder = new LDKChannelMessageHandlerHolder(); + impl_holder.held = new ChannelMessageHandler(new bindings.LDKChannelMessageHandler() { @Override public void handle_open_channel(byte[] their_node_id, long their_features, long msg) { InitFeatures their_features_hu_conv = new InitFeatures(null, their_features); OpenChannel msg_hu_conv = new OpenChannel(null, msg); @@ -119,7 +122,8 @@ public class ChannelMessageHandler extends CommonBase { ErrorMessage msg_hu_conv = new ErrorMessage(null, msg); arg.handle_error(their_node_id, msg_hu_conv); } - }, new MessageSendEventsProvider(MessageSendEventsProvider).bindings_instance); + }, MessageSendEventsProvider.new_impl(MessageSendEventsProvider_impl).bindings_instance); + return impl_holder.held; } // Skipped ChannelMessageHandler_handle_open_channel // Skipped ChannelMessageHandler_handle_accept_channel