Properly free C tuples when the inner fields are dropped
[ldk-java] / src / main / java / org / ldk / util / ThreeTuple.java
1 package org.ldk.util;
2
3 public class ThreeTuple<A, B, C> {
4     private Runnable finalize_run;
5     public A a;
6     public B b;
7     public C c;
8     public ThreeTuple(A a, B b, C c) {
9         this.a = a;
10         this.b = b;
11         this.c = c;
12     }
13     public ThreeTuple(A a, B b, C c, Runnable finalize_run) {
14         this(a, b, c);
15         this.finalize_run = finalize_run;
16     }
17     @Override
18     public void finalize() throws Throwable {
19         if (finalize_run != null) finalize_run.run();
20         super.finalize();
21     }
22 }