Properly free C tuples when the inner fields are dropped
[ldk-java] / src / main / java / org / ldk / util / TwoTuple.java
index 32b4a910ba8bba7bb671dae875ef9a90ebd43d29..627e33735a31cd908432433f1f3e58d76c7ea349 100644 (file)
@@ -1,10 +1,20 @@
 package org.ldk.util;
 
 public class TwoTuple<A, B> {
+    private Runnable finalize_run;
     public A a;
     public B b;
     public TwoTuple(A a, B b) {
         this.a = a;
         this.b = b;
     }
+    public TwoTuple(A a, B b, Runnable finalize_run) {
+        this(a, b);
+        this.finalize_run = finalize_run;
+    }
+    @Override
+    public void finalize() throws Throwable {
+        if (finalize_run != null) finalize_run.run();
+        super.finalize();
+    }
 }