From: Matt Corallo Date: Thu, 7 Mar 2024 18:02:33 +0000 (+0000) Subject: [Java] Ensure bindings statics run before enums call native code X-Git-Tag: v0.0.121.3~4^2~2 X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-java;a=commitdiff_plain;h=6ea339247734db7b67f07ee4c839d6c02d2747fa [Java] Ensure bindings statics run before enums call native code Fixes #149. --- diff --git a/java_strings.py b/java_strings.py index fe3b4981..b0c100e7 100644 --- a/java_strings.py +++ b/java_strings.py @@ -72,6 +72,7 @@ public class bindings { // Fetching the LDK versions from C also checks that the header and binaries match System.err.println("Loaded LDK-Java Bindings " + version.get_ldk_java_bindings_version() + " with LDK " + get_ldk_version() + " and LDK-C-Bindings " + get_ldk_c_bindings_version()); } + public static void run_statics() { /* Useful to force the statics to run */ } static native void init(java.lang.Class c); static native void init_class_cache(); static native String get_lib_version_string(); @@ -861,7 +862,7 @@ import javax.annotation.Nullable; out_c = out_c + "\t\tcase %d: return %s;\n" % (ord_v, var) ord_v = ord_v + 1 out_java_enum = out_java_enum + "\t; static native void init();\n" - out_java_enum = out_java_enum + "\tstatic { init(); }\n" + out_java_enum = out_java_enum + "\tstatic { org.ldk.impl.bindings.run_statics(); init(); }\n" out_java_enum = out_java_enum + "}" out_java = out_java + "\tstatic { " + struct_name + ".values(); /* Force enum statics to run */ }\n" out_c += "\t}\n"