X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fldk%2Fstructs%2FSocketDescriptor.java;h=02704aeed84820063a98043ea6c2186ffd911d7b;hb=6fe917116a65d7b62123226c4240d77ea2719783;hp=3edbde56f6b9f0801b05c48e7c4ab7bc0c7bf327;hpb=f3e670e9341decac613d33fc52febf19cea32f20;p=ldk-java diff --git a/src/main/java/org/ldk/structs/SocketDescriptor.java b/src/main/java/org/ldk/structs/SocketDescriptor.java index 3edbde56..02704aee 100644 --- a/src/main/java/org/ldk/structs/SocketDescriptor.java +++ b/src/main/java/org/ldk/structs/SocketDescriptor.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; /** @@ -78,19 +79,23 @@ public class SocketDescriptor extends CommonBase { 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); + Reference.reachabilityFence(arg); return ret; } @Override public void disconnect_socket() { arg.disconnect_socket(); + Reference.reachabilityFence(arg); } @Override public boolean eq(long other_arg) { SocketDescriptor ret_hu_conv = new SocketDescriptor(null, other_arg); ret_hu_conv.ptrs_to.add(this); boolean ret = arg.eq(ret_hu_conv); + Reference.reachabilityFence(arg); return ret; } @Override public long hash() { long ret = arg.hash(); + Reference.reachabilityFence(arg); return ret; } }); @@ -117,6 +122,9 @@ public class SocketDescriptor extends CommonBase { */ public long send_data(byte[] data, boolean resume_read) { long ret = bindings.SocketDescriptor_send_data(this.ptr, data, resume_read); + Reference.reachabilityFence(this); + Reference.reachabilityFence(data); + Reference.reachabilityFence(resume_read); return ret; } @@ -128,6 +136,7 @@ public class SocketDescriptor extends CommonBase { */ public void disconnect_socket() { bindings.SocketDescriptor_disconnect_socket(this.ptr); + Reference.reachabilityFence(this); } /** @@ -136,11 +145,16 @@ public class SocketDescriptor extends CommonBase { */ public long hash() { long ret = bindings.SocketDescriptor_hash(this.ptr); + Reference.reachabilityFence(this); return ret; } + @Override public int hashCode() { + return (int)this.hash(); + } long clone_ptr() { long ret = bindings.SocketDescriptor_clone_ptr(this.ptr); + Reference.reachabilityFence(this); return ret; } @@ -149,6 +163,7 @@ public class SocketDescriptor extends CommonBase { */ public SocketDescriptor clone() { long ret = bindings.SocketDescriptor_clone(this.ptr); + Reference.reachabilityFence(this); if (ret >= 0 && ret <= 4096) { return null; } SocketDescriptor ret_hu_conv = new SocketDescriptor(null, ret); ret_hu_conv.ptrs_to.add(this);