Skip to content

Commit a442b85

Browse files
TheBlueMattMatt Corallo
authored andcommitted
Re-generate auto-generated bindings + add Mac OS generated bindings
1 parent d9b8c9b commit a442b85

File tree

8 files changed

+33
-5
lines changed

8 files changed

+33
-5
lines changed

liblightningjni_debug.so

-92.4 MB
Binary file not shown.

src/main/java/org/ldk/impl/bindings.java

Lines changed: 25 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
package org.ldk.impl;
22
import org.ldk.enums.*;
3+
import java.io.File;
4+
import java.io.InputStream;
5+
import java.io.IOException;
6+
import java.nio.file.Files;
7+
import java.nio.file.Path;
8+
import java.nio.file.StandardCopyOption;
39

410
public class bindings {
511
public static class VecOrSliceDef {
@@ -11,7 +17,24 @@ public VecOrSliceDef(long dataptr, long datalen, long stride) {
1117
}
1218
}
1319
static {
14-
System.loadLibrary("lightningjni");
20+
try {
21+
// Try to load natively first, this works on Android and in testing.
22+
System.loadLibrary("lightningjni");
23+
} catch (UnsatisfiedLinkError _ignored) {
24+
// Otherwise try to load from the library jar.
25+
File tmpdir = new File(System.getProperty("java.io.tmpdir"), "ldk-java-nativelib");
26+
tmpdir.mkdir(); // If it fails to create, assume it was there already
27+
tmpdir.deleteOnExit();
28+
String libname = "liblightningjni_" + System.getProperty("os.name").replaceAll(" ", "") +
29+
"-" + System.getProperty("os.arch").replaceAll(" ", "") + ".nativelib";
30+
try (InputStream is = bindings.class.getResourceAsStream("/" + libname)) {
31+
Path libpath = new File(tmpdir.toPath().toString(), "liblightningjni.so").toPath();
32+
Files.copy(is, libpath, StandardCopyOption.REPLACE_EXISTING);
33+
Runtime.getRuntime().load(libpath.toString());
34+
} catch (IOException e) {
35+
throw new IllegalArgumentException(e);
36+
}
37+
}
1538
init(java.lang.Enum.class, VecOrSliceDef.class);
1639
init_class_cache();
1740
if (!get_lib_version_string().equals(get_ldk_java_bindings_version()))
@@ -25,7 +48,7 @@ public VecOrSliceDef(long dataptr, long datalen, long stride) {
2548
static native String get_lib_version_string();
2649

2750
public static String get_ldk_java_bindings_version() {
28-
return "v0.0.98.1";
51+
return "v0.0.98.2";
2952
}
3053
public static native String get_ldk_c_bindings_version();
3154
public static native String get_ldk_version();

src/main/java/org/ldk/structs/CommonBase.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,4 @@ class CommonBase {
44
long ptr;
55
LinkedList<Object> ptrs_to = new LinkedList();
66
protected CommonBase(long ptr) { this.ptr = ptr; }
7-
public long _test_only_get_ptr() { return this.ptr; }
87
}

src/main/jni/bindings.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
#define LDKCVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ LDKCVec_TransactionOutputsZ
22
#define CVec_C2Tuple_TxidCVec_C2Tuple_u32TxOutZZZZ_free CVec_TransactionOutputsZ_free
3+
#include <jni.h>
4+
// On OSX jlong (ie long long) is not equivalent to int64_t, so we override here
5+
#define int64_t jlong
36
#include "org_ldk_impl_bindings.h"
47
#include <lightning.h>
58
#include <string.h>
@@ -130,7 +133,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
130133
}
131134

132135
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) {
133-
return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1"));
136+
return str_ref_to_java(env, "v0.0.98.2", strlen("v0.0.98.2"));
134137
}
135138
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) {
136139
return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));

src/main/jni/bindings.c.body

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
#include <jni.h>
2+
// On OSX jlong (ie long long) is not equivalent to int64_t, so we override here
3+
#define int64_t jlong
14
#include "org_ldk_impl_bindings.h"
25
#include <lightning.h>
36
#include <string.h>
@@ -128,7 +131,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) {
128131
}
129132

130133
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) {
131-
return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1"));
134+
return str_ref_to_java(env, "v0.0.98.2", strlen("v0.0.98.2"));
132135
}
133136
JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) {
134137
return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));
4.28 MB
Binary file not shown.
4.85 MB
Binary file not shown.

0 commit comments

Comments
 (0)