DO NOT MERGE: Just test libldk.a for now
[ldk-java] / src / main / java / org / ldk / structs / LockedNetworkGraph.java
index 55f1dad8f131ecd732e845020c53d1a51fce595b..c77af3793905dffe5b5ecfcff3aa717a595fe36d 100644 (file)
@@ -5,16 +5,26 @@ import org.ldk.enums.*;
 import org.ldk.util.*;
 import java.util.Arrays;
 
+
+/**
+ * A simple newtype for RwLockReadGuard<'a, NetworkGraph>.
+ * This exists only to make accessing a RwLock<NetworkGraph> possible from
+ * the C bindings, as it can be done directly in Rust code.
+ */
 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
 public class LockedNetworkGraph extends CommonBase implements AutoCloseable {
        LockedNetworkGraph(Object _dummy, long ptr) { super(ptr); }
        @Override public void close() {
-               bindings.LockedNetworkGraph_free(ptr);
+               if (ptr != 0) { bindings.LockedNetworkGraph_free(ptr); }
        }
 
+       /**
+        * Get a reference to the NetworkGraph which this read-lock contains.
+        */
        public NetworkGraph graph() {
                long ret = bindings.LockedNetworkGraph_graph(this.ptr);
                NetworkGraph ret_hu_conv = new NetworkGraph(null, ret);
+               ret_hu_conv.ptrs_to.add(this);
                return ret_hu_conv;
        }