From af175e90472f2a903d17c99da758dba3f619a8bb Mon Sep 17 00:00:00 2001 From: Alden Torres Date: Sun, 16 Dec 2018 10:32:19 -0500 Subject: [PATCH] detect open64 and stat64, removed rename, version 1.2.0.21-alpha3 (#28) --- build.gradle | 2 +- changelog.txt | 2 +- .../org/libtorrent4j/swig/libtorrent_jni.java | 7 +- .../org/libtorrent4j/swig/posix_wrapper.java | 4 - swig/libtorrent.h | 32 +---- swig/libtorrent_jni.cpp | 135 +----------------- swig/libtorrent_jni.h | 5 +- 7 files changed, 16 insertions(+), 171 deletions(-) diff --git a/build.gradle b/build.gradle index d773ba32..d574c366 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ apply plugin: 'maven' group 'org.libtorrent4j' archivesBaseName = 'libtorrent4j' -version '1.2.0.21-alpha2' +version '1.2.0.21-alpha3' sourceCompatibility = '1.7' targetCompatibility = '1.7' diff --git a/changelog.txt b/changelog.txt index 89f936f9..ad68c5e5 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,4 +1,4 @@ -1.2.0.21-alpha2 +1.2.0.21-alpha3 * experimental support for android external storage * lt:source code cleanup, performance and stability diff --git a/src/main/java/org/libtorrent4j/swig/libtorrent_jni.java b/src/main/java/org/libtorrent4j/swig/libtorrent_jni.java index eee8a4f6..1d75086d 100644 --- a/src/main/java/org/libtorrent4j/swig/libtorrent_jni.java +++ b/src/main/java/org/libtorrent4j/swig/libtorrent_jni.java @@ -13,7 +13,7 @@ public class libtorrent_jni { public static String libtorrent4jVersion() { // extracted from the gradle with the run-swig step - return "1.2.0.21-alpha2"; + return "1.2.0.21-alpha3"; } static { @@ -3108,8 +3108,6 @@ public static String libtorrent4jVersion() { public final static native int posix_wrapper_statSwigExplicitposix_wrapper(long jarg1, posix_wrapper jarg1_, String jarg2, long jarg3, posix_stat_t jarg3_); public final static native int posix_wrapper_mkdir(long jarg1, posix_wrapper jarg1_, String jarg2, int jarg3); public final static native int posix_wrapper_mkdirSwigExplicitposix_wrapper(long jarg1, posix_wrapper jarg1_, String jarg2, int jarg3); - public final static native int posix_wrapper_rename(long jarg1, posix_wrapper jarg1_, String jarg2, String jarg3); - public final static native int posix_wrapper_renameSwigExplicitposix_wrapper(long jarg1, posix_wrapper jarg1_, String jarg2, String jarg3); public final static native int posix_wrapper_remove(long jarg1, posix_wrapper jarg1_, String jarg2); public final static native int posix_wrapper_removeSwigExplicitposix_wrapper(long jarg1, posix_wrapper jarg1_, String jarg2); public final static native long new_posix_wrapper(); @@ -3230,9 +3228,6 @@ public static int SwigDirector_posix_wrapper_stat(posix_wrapper jself, String pa public static int SwigDirector_posix_wrapper_mkdir(posix_wrapper jself, String path, int mode) { return jself.mkdir(path, mode); } - public static int SwigDirector_posix_wrapper_rename(posix_wrapper jself, String oldpath, String newpath) { - return jself.rename(oldpath, newpath); - } public static int SwigDirector_posix_wrapper_remove(posix_wrapper jself, String path) { return jself.remove(path); } diff --git a/src/main/java/org/libtorrent4j/swig/posix_wrapper.java b/src/main/java/org/libtorrent4j/swig/posix_wrapper.java index fb5d2fc3..2986be8e 100644 --- a/src/main/java/org/libtorrent4j/swig/posix_wrapper.java +++ b/src/main/java/org/libtorrent4j/swig/posix_wrapper.java @@ -62,10 +62,6 @@ public int mkdir(String path, int mode) { return (getClass() == posix_wrapper.class) ? libtorrent_jni.posix_wrapper_mkdir(swigCPtr, this, path, mode) : libtorrent_jni.posix_wrapper_mkdirSwigExplicitposix_wrapper(swigCPtr, this, path, mode); } - public int rename(String oldpath, String newpath) { - return (getClass() == posix_wrapper.class) ? libtorrent_jni.posix_wrapper_rename(swigCPtr, this, oldpath, newpath) : libtorrent_jni.posix_wrapper_renameSwigExplicitposix_wrapper(swigCPtr, this, oldpath, newpath); - } - public int remove(String path) { return (getClass() == posix_wrapper.class) ? libtorrent_jni.posix_wrapper_remove(swigCPtr, this, path) : libtorrent_jni.posix_wrapper_removeSwigExplicitposix_wrapper(swigCPtr, this, path); } diff --git a/swig/libtorrent.h b/swig/libtorrent.h index 4eaf2e7e..2ec533c8 100644 --- a/swig/libtorrent.h +++ b/swig/libtorrent.h @@ -308,18 +308,18 @@ void* get_libc() { int posix_open(const char* path, int flags, mode_t mode) { typedef int func_t(const char*, int, ...); - static func_t* f = (func_t*) dlsym(get_libc(), "open"); + static func_t* f1 = (func_t*) dlsym(get_libc(), "open"); + static func_t* f2 = (func_t*) dlsym(get_libc(), "open64"); + static func_t* f = f2 != NULL ? f2 : f1; flags |= O_LARGEFILE; return (*f)(path, flags, mode); } int posix_stat(const char *path, struct ::stat *buf) { typedef int func_t(const char*, struct ::stat*); -#if __ANDROID_API__ < 21 - static func_t* f = (func_t*) dlsym(get_libc(), "stat"); -#else - static func_t* f = (func_t*) dlsym(get_libc(), "stat64"); -#endif + static func_t* f1 = (func_t*) dlsym(get_libc(), "stat"); + static func_t* f2 = (func_t*) dlsym(get_libc(), "stat64"); + static func_t* f = f2 != NULL ? f2 : f1; return (*f)(path, buf); } @@ -329,12 +329,6 @@ int posix_mkdir(const char *path, mode_t mode) { return (*f)(path, mode); } -int posix_rename(const char *oldpath, const char *newpath) { - typedef int func_t(const char*, const char*); - static func_t* f = (func_t*) dlsym(get_libc(), "rename"); - return (*f)(oldpath, newpath); -} - int posix_remove(const char *path) { typedef int func_t(const char*); static func_t* f = (func_t*) dlsym(get_libc(), "remove"); @@ -378,14 +372,6 @@ struct posix_wrapper { #endif } - virtual int rename(const char *oldpath, const char *newpath) { -#if WRAP_POSIX_ANDROID - return posix_rename(oldpath, newpath); -#else - return -1; -#endif - } - virtual int remove(const char *path) { #if WRAP_POSIX_ANDROID return posix_remove(path); @@ -439,12 +425,6 @@ int mkdir(const char *path, mode_t mode) { posix_mkdir(path, mode); } -int rename(const char *oldpath, const char *newpath) { - return g_posix_wrapper != nullptr ? - g_posix_wrapper->rename(oldpath, newpath) : - posix_rename(oldpath, newpath); -} - int remove(const char *path) { return g_posix_wrapper != nullptr ? g_posix_wrapper->remove(path) : diff --git a/swig/libtorrent_jni.cpp b/swig/libtorrent_jni.cpp index 01ca6f53..0131f948 100644 --- a/swig/libtorrent_jni.cpp +++ b/swig/libtorrent_jni.cpp @@ -678,7 +678,7 @@ namespace Swig { namespace Swig { namespace { jclass jclass_libtorrent_jni = NULL; - jmethodID director_method_ids[9]; + jmethodID director_method_ids[8]; } } @@ -2848,47 +2848,6 @@ int SwigDirector_posix_wrapper::mkdir(char const *path, int mode) { return c_result; } -int SwigDirector_posix_wrapper::rename(char const *oldpath, char const *newpath) { - int c_result = SwigValueInit< int >() ; - jint jresult = 0 ; - JNIEnvWrapper swigjnienv(this) ; - JNIEnv * jenv = swigjnienv.getJNIEnv() ; - jobject swigjobj = (jobject) NULL ; - jstring joldpath = 0 ; - jstring jnewpath = 0 ; - - if (!swig_override[3]) { - return posix_wrapper::rename(oldpath,newpath); - } - swigjobj = swig_get_self(jenv); - if (swigjobj && jenv->IsSameObject(swigjobj, NULL) == JNI_FALSE) { - joldpath = 0; - if (oldpath) { - joldpath = jenv->NewStringUTF((const char *)oldpath); - if (!joldpath) return c_result; - } - Swig::LocalRefGuard oldpath_refguard(jenv, joldpath); - jnewpath = 0; - if (newpath) { - jnewpath = jenv->NewStringUTF((const char *)newpath); - if (!jnewpath) return c_result; - } - Swig::LocalRefGuard newpath_refguard(jenv, jnewpath); - jresult = (jint) jenv->CallStaticIntMethod(Swig::jclass_libtorrent_jni, Swig::director_method_ids[7], swigjobj, joldpath, jnewpath); - jthrowable swigerror = jenv->ExceptionOccurred(); - if (swigerror) { - jenv->ExceptionClear(); - throw Swig::DirectorException(jenv, swigerror); - } - - c_result = (int)jresult; - } else { - SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "null upcall object in posix_wrapper::rename "); - } - if (swigjobj) jenv->DeleteLocalRef(swigjobj); - return c_result; -} - int SwigDirector_posix_wrapper::remove(char const *path) { int c_result = SwigValueInit< int >() ; jint jresult = 0 ; @@ -2897,7 +2856,7 @@ int SwigDirector_posix_wrapper::remove(char const *path) { jobject swigjobj = (jobject) NULL ; jstring jpath = 0 ; - if (!swig_override[4]) { + if (!swig_override[3]) { return posix_wrapper::remove(path); } swigjobj = swig_get_self(jenv); @@ -2908,7 +2867,7 @@ int SwigDirector_posix_wrapper::remove(char const *path) { if (!jpath) return c_result; } Swig::LocalRefGuard path_refguard(jenv, jpath); - jresult = (jint) jenv->CallStaticIntMethod(Swig::jclass_libtorrent_jni, Swig::director_method_ids[8], swigjobj, jpath); + jresult = (jint) jenv->CallStaticIntMethod(Swig::jclass_libtorrent_jni, Swig::director_method_ids[7], swigjobj, jpath); jthrowable swigerror = jenv->ExceptionOccurred(); if (swigerror) { jenv->ExceptionClear(); @@ -2938,9 +2897,6 @@ void SwigDirector_posix_wrapper::swig_connect_director(JNIEnv *jenv, jobject jse { "mkdir", "(Ljava/lang/String;I)I", NULL }, - { - "rename", "(Ljava/lang/String;Ljava/lang/String;)I", NULL - }, { "remove", "(Ljava/lang/String;)I", NULL } @@ -2955,7 +2911,7 @@ void SwigDirector_posix_wrapper::swig_connect_director(JNIEnv *jenv, jobject jse baseclass = (jclass) jenv->NewGlobalRef(baseclass); } bool derived = (jenv->IsSameObject(baseclass, jcls) ? false : true); - for (int i = 0; i < 5; ++i) { + for (int i = 0; i < 4; ++i) { if (!methods[i].base_methid) { methods[i].base_methid = jenv->GetMethodID(baseclass, methods[i].mname, methods[i].mdesc); if (!methods[i].base_methid) return; @@ -69058,84 +69014,6 @@ SWIGEXPORT jint JNICALL Java_org_libtorrent4j_swig_libtorrent_1jni_posix_1wrappe } -SWIGEXPORT jint JNICALL Java_org_libtorrent4j_swig_libtorrent_1jni_posix_1wrapper_1rename(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { - jint jresult = 0 ; - posix_wrapper *arg1 = (posix_wrapper *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - int result; - - (void)jenv; - (void)jcls; - (void)jarg1_; - arg1 = *(posix_wrapper **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); - if (!arg2) return 0; - } - arg3 = 0; - if (jarg3) { - arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); - if (!arg3) return 0; - } - { - try { - result = (int)(arg1)->rename((char const *)arg2,(char const *)arg3); - } catch (std::exception& e) { - SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, e.what()); - return 0; - } catch (...) { - SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unknown exception type"); - return 0; - } - } - jresult = (jint)result; - if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); - if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); - return jresult; -} - - -SWIGEXPORT jint JNICALL Java_org_libtorrent4j_swig_libtorrent_1jni_posix_1wrapper_1renameSwigExplicitposix_1wrapper(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2, jstring jarg3) { - jint jresult = 0 ; - posix_wrapper *arg1 = (posix_wrapper *) 0 ; - char *arg2 = (char *) 0 ; - char *arg3 = (char *) 0 ; - int result; - - (void)jenv; - (void)jcls; - (void)jarg1_; - arg1 = *(posix_wrapper **)&jarg1; - arg2 = 0; - if (jarg2) { - arg2 = (char *)jenv->GetStringUTFChars(jarg2, 0); - if (!arg2) return 0; - } - arg3 = 0; - if (jarg3) { - arg3 = (char *)jenv->GetStringUTFChars(jarg3, 0); - if (!arg3) return 0; - } - { - try { - result = (int)(arg1)->posix_wrapper::rename((char const *)arg2,(char const *)arg3); - } catch (std::exception& e) { - SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, e.what()); - return 0; - } catch (...) { - SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, "Unknown exception type"); - return 0; - } - } - jresult = (jint)result; - if (arg2) jenv->ReleaseStringUTFChars(jarg2, (const char *)arg2); - if (arg3) jenv->ReleaseStringUTFChars(jarg3, (const char *)arg3); - return jresult; -} - - SWIGEXPORT jint JNICALL Java_org_libtorrent4j_swig_libtorrent_1jni_posix_1wrapper_1remove(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) { jint jresult = 0 ; posix_wrapper *arg1 = (posix_wrapper *) 0 ; @@ -70005,7 +69883,7 @@ SWIGEXPORT void JNICALL Java_org_libtorrent4j_swig_libtorrent_1jni_swig_1module_ static struct { const char *method; const char *signature; - } methods[9] = { + } methods[8] = { { "SwigDirector_alert_notify_callback_on_alert", "(Lorg/libtorrent4j/swig/alert_notify_callback;)V" }, @@ -70027,9 +69905,6 @@ SWIGEXPORT void JNICALL Java_org_libtorrent4j_swig_libtorrent_1jni_swig_1module_ { "SwigDirector_posix_wrapper_mkdir", "(Lorg/libtorrent4j/swig/posix_wrapper;Ljava/lang/String;I)I" }, - { - "SwigDirector_posix_wrapper_rename", "(Lorg/libtorrent4j/swig/posix_wrapper;Ljava/lang/String;Ljava/lang/String;)I" - }, { "SwigDirector_posix_wrapper_remove", "(Lorg/libtorrent4j/swig/posix_wrapper;Ljava/lang/String;)I" } diff --git a/swig/libtorrent_jni.h b/swig/libtorrent_jni.h index c998bd79..31853498 100644 --- a/swig/libtorrent_jni.h +++ b/swig/libtorrent_jni.h @@ -80,14 +80,13 @@ struct SwigDirector_posix_wrapper : public posix_wrapper, public Swig::Director virtual int open(char const *path, int flags, int mode); virtual int stat(char const *path, posix_stat_t *buf); virtual int mkdir(char const *path, int mode); - virtual int rename(char const *oldpath, char const *newpath); virtual int remove(char const *path); public: bool swig_overrides(int n) { - return (n < 5 ? swig_override[n] : false); + return (n < 4 ? swig_override[n] : false); } protected: - Swig::BoolArray<5> swig_override; + Swig::BoolArray<4> swig_override; };