Properly handle java refs in traits returning traits
[ldk-java] / src / main / java / org / ldk / structs / Logger.java
index 613273d4957f38cc98d4229757529b8a6df7c0a8..02b5075a86c581fedcb89b39b27b677f7c2668f6 100644 (file)
@@ -22,11 +22,14 @@ public class Logger extends CommonBase {
        public static interface LoggerInterface {
                void log(String record);
        }
-       public Logger(LoggerInterface arg) {
-               this(new bindings.LDKLogger() {
+       private static class LDKLoggerHolder { Logger held; }
+       public static Logger new_impl(LoggerInterface arg) {
+               final LDKLoggerHolder impl_holder = new LDKLoggerHolder();
+               impl_holder.held = new Logger(new bindings.LDKLogger() {
                        @Override public void log(String record) {
                                arg.log(record);
                        }
                });
+               return impl_holder.held;
        }
 }