X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FSocketDescriptor.java;h=0784a608532103f2ce560ce8dc2f67cc7b8a812a;hb=b2b0222f51397c5d7e0b3bf0cad6439edde3c1f3;hp=9c4f9e7b251d69148aca10dddf1f0f20f59152c9;hpb=4fd49e2371dbec8f26732bd14af0d5c7aa3c1fdd;p=ldk-java diff --git a/src/main/java/org/ldk/structs/SocketDescriptor.java b/src/main/java/org/ldk/structs/SocketDescriptor.java index 9c4f9e7b..0784a608 100644 --- a/src/main/java/org/ldk/structs/SocketDescriptor.java +++ b/src/main/java/org/ldk/structs/SocketDescriptor.java @@ -25,8 +25,10 @@ public class SocketDescriptor extends CommonBase { boolean eq(long other_arg); long hash(); } - public SocketDescriptor(SocketDescriptorInterface arg) { - this(new bindings.LDKSocketDescriptor() { + private static class LDKSocketDescriptorHolder { SocketDescriptor held; } + public static SocketDescriptor new_impl(SocketDescriptorInterface arg) { + final LDKSocketDescriptorHolder impl_holder = new LDKSocketDescriptorHolder(); + impl_holder.held = new SocketDescriptor(new bindings.LDKSocketDescriptor() { @Override public long send_data(byte[] data, boolean resume_read) { long ret = arg.send_data(data, resume_read); return ret; @@ -43,6 +45,7 @@ public class SocketDescriptor extends CommonBase { return ret; } }); + return impl_holder.held; } public long send_data(byte[] data, boolean resume_read) { long ret = bindings.SocketDescriptor_send_data(this.ptr, data, resume_read);