From: Matt Corallo <649246+TheBlueMatt@users.noreply.github.com> Date: Sat, 12 Jun 2021 18:16:00 +0000 (+0000) Subject: Merge pull request #21 from TheBlueMatt/main X-Git-Tag: v0.0.99.0~5 X-Git-Url: http://git.bitcoin.ninja/index.cgi?p=ldk-java;a=commitdiff_plain;h=3d9f4531ff7468b53e86997b1474ccfca018e75d;hp=de7e3d9b2470913881ee0995d2dc57deb9778647 Merge pull request #21 from TheBlueMatt/main Android Fixes --- diff --git a/genbindings.sh b/genbindings.sh index 0cd88ba5..c10ff241 100755 --- a/genbindings.sh +++ b/genbindings.sh @@ -16,6 +16,13 @@ else COMMON_COMPILE="clang -std=c11 -Wall -Wextra -Wno-unused-parameter -Wno-ignored-qualifiers -Wno-unused-function -Wno-nullability-completeness -Wno-pointer-sign -Wdate-time -ffile-prefix-map=$(pwd)=" fi +if [ "$LDK_TARGET" != "" ]; then + LDK_TARGET_SUFFIX="_$LDK_TARGET" +fi +if [ "$LDK_TARGET_CPU" = "" ]; then + LDK_TARGET_CPU="sandybridge" +fi + set -e if [ "$LDK_GARBAGECOLLECTED_GIT_OVERRIDE" = "" ]; then @@ -46,11 +53,11 @@ javac -h src/main/jni src/main/java/org/ldk/enums/*.java src/main/java/org/ldk/i rm src/main/java/org/ldk/enums/*.class src/main/java/org/ldk/impl/bindings*.class echo "Building Java bindings..." -COMPILE="$COMMON_COMPILE -march=sandybridge -Isrc/main/jni -pthread -ldl -Wl,--no-undefined -shared -fPIC" +COMPILE="$COMMON_COMPILE -mcpu=$LDK_TARGET_CPU -Isrc/main/jni -pthread -ldl -Wl,--no-undefined -shared -fPIC" if [ "$3" = "true" ]; then - $COMPILE -o liblightningjni_debug.so -g -fsanitize=address -shared-libasan -Wl,-wrap,calloc -Wl,-wrap,realloc -Wl,-wrap,reallocarray -Wl,-wrap,malloc -Wl,-wrap,free -rdynamic -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/debug/libldk.a -lm + $COMPILE -o liblightningjni_debug$LDK_TARGET_SUFFIX.so -g -fsanitize=address -shared-libasan -Wl,-wrap,calloc -Wl,-wrap,realloc -Wl,-wrap,reallocarray -Wl,-wrap,malloc -Wl,-wrap,free -rdynamic -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/$LDK_TARGET/debug/libldk.a -lm else - $COMPILE -o liblightningjni_release.so -Wl,--version-script=libcode.version -flto -fuse-ld=lld -O3 -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/release/libldk.a + $COMPILE -o liblightningjni_release$LDK_TARGET_SUFFIX.so -Wl,--version-script=libcode.version -flto -fuse-ld=lld -O3 -I"$1"/lightning-c-bindings/include/ $2 src/main/jni/bindings.c "$1"/lightning-c-bindings/target/$LDK_TARGET/release/libldk.a fi echo "Creating TS bindings..." diff --git a/java_strings.py b/java_strings.py index e00f513f..3d5a2a01 100644 --- a/java_strings.py +++ b/java_strings.py @@ -457,7 +457,10 @@ import java.util.Arrays; res = "JNIEnv *env;\n" res += "jint get_jenv_res = (*j_calls->vm)->GetEnv(j_calls->vm, (void**)&env, JNI_VERSION_1_6);\n" res += "if (get_jenv_res == JNI_EDETACHED) {\n" - res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, (void**)&env, NULL) == JNI_OK);\n" + if self.target == Target.ANDROID: + res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, &env, NULL) == JNI_OK);\n" + else: + res += "\tDO_ASSERT((*j_calls->vm)->AttachCurrentThread(j_calls->vm, (void**)&env, NULL) == JNI_OK);\n" res += "} else {\n" res += "\tDO_ASSERT(get_jenv_res == JNI_OK);\n" res += "}\n" diff --git a/liblightningjni_debug.so b/liblightningjni_debug.so index 5807add4..8f58fe0e 100755 Binary files a/liblightningjni_debug.so and b/liblightningjni_debug.so differ diff --git a/liblightningjni_release.so b/liblightningjni_release.so index 437f17eb..e30297b5 100755 Binary files a/liblightningjni_release.so and b/liblightningjni_release.so differ diff --git a/src/main/java/org/ldk/batteries/NioPeerHandler.java b/src/main/java/org/ldk/batteries/NioPeerHandler.java index f0a38282..db0fa82b 100644 --- a/src/main/java/org/ldk/batteries/NioPeerHandler.java +++ b/src/main/java/org/ldk/batteries/NioPeerHandler.java @@ -5,6 +5,7 @@ import org.ldk.structs.*; import java.io.IOException; import java.net.SocketAddress; import java.net.StandardSocketOptions; +import java.nio.Buffer; import java.nio.ByteBuffer; import java.nio.channels.*; @@ -182,13 +183,13 @@ public class NioPeerHandler { } } if (key.isValid() && (key.interestOps() & SelectionKey.OP_READ) != 0 && key.isReadable()) { - buf.clear(); + ((Buffer)buf).clear(); int read = ((SocketChannel) key.channel()).read(buf); if (read == -1) { this.peer_manager.socket_disconnected(peer.descriptor); key.cancel(); } else if (read > 0) { - buf.flip(); + ((Buffer)buf).flip(); byte[] read_bytes = new byte[read]; buf.get(read_bytes, 0, read); Result_boolPeerHandleErrorZ res = this.peer_manager.read_event(peer.descriptor, read_bytes); diff --git a/src/main/java/org/ldk/impl/bindings.java b/src/main/java/org/ldk/impl/bindings.java index 1eb28ec3..511f6839 100644 --- a/src/main/java/org/ldk/impl/bindings.java +++ b/src/main/java/org/ldk/impl/bindings.java @@ -25,7 +25,7 @@ public class bindings { static native String get_lib_version_string(); public static String get_ldk_java_bindings_version() { - return "v0.0.98"; + return "v0.0.98.1"; } public static native String get_ldk_c_bindings_version(); public static native String get_ldk_version(); diff --git a/src/main/jni/bindings.c b/src/main/jni/bindings.c index 3dc78c9d..4d1fdc88 100644 --- a/src/main/jni/bindings.c +++ b/src/main/jni/bindings.c @@ -130,7 +130,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) { } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) { - return str_ref_to_java(env, "v0.0.98", strlen("v0.0.98")); + return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1")); } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) { return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version())); diff --git a/src/main/jni/bindings.c.body b/src/main/jni/bindings.c.body index 768139ee..95ae6d52 100644 --- a/src/main/jni/bindings.c.body +++ b/src/main/jni/bindings.c.body @@ -128,7 +128,7 @@ static inline LDKStr java_to_owned_str(JNIEnv *env, jstring str) { } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1lib_1version_1string(JNIEnv *env, jclass _c) { - return str_ref_to_java(env, "v0.0.98", strlen("v0.0.98")); + return str_ref_to_java(env, "v0.0.98.1", strlen("v0.0.98.1")); } JNIEXPORT jstring JNICALL Java_org_ldk_impl_bindings_get_1ldk_1c_1bindings_1version(JNIEnv *env, jclass _c) { return str_ref_to_java(env, check_get_ldk_bindings_version(), strlen(check_get_ldk_bindings_version()));