From 56c362518eb2373ec4be7c61fec9afc17b017dd2 Mon Sep 17 00:00:00 2001 From: Nick Leeman Date: Fri, 24 Mar 2023 20:00:24 +0100 Subject: [PATCH] Removed old JNI header, checked code. --- siwg/src/siwg.cpp | 6 ++--- siwg/src/siwg_callback.cpp | 21 +-------------- siwg/src/siwg_jni.h | 54 -------------------------------------- 3 files changed, 4 insertions(+), 77 deletions(-) delete mode 100644 siwg/src/siwg_jni.h diff --git a/siwg/src/siwg.cpp b/siwg/src/siwg.cpp index d03e64a..90b2738 100644 --- a/siwg/src/siwg.cpp +++ b/siwg/src/siwg.cpp @@ -3,16 +3,16 @@ #define MODULE_NAME "siwg" // include the Defold SDK +#define DLIB_LOG_DOMAIN LIB_NAME #include #if defined(DM_PLATFORM_ANDROID) -#include +// #include "siwg_jni.h" #include - +#include #include "siwg.h" -// #include "siwg_jni.h" #include "siwg_callback.h" #include "com_aterve_siwg_SiwgJNI.h" diff --git a/siwg/src/siwg_callback.cpp b/siwg/src/siwg_callback.cpp index 2138d4a..b879802 100644 --- a/siwg/src/siwg_callback.cpp +++ b/siwg/src/siwg_callback.cpp @@ -60,26 +60,7 @@ static void siwg_invoke_callback(MESSAGE_ID type, const char*json) } else { lua_pushnumber(L, type); - int count_table_elements = 1; - bool is_fail = false; - dmJson::Document doc; - dmJson::Result r = dmJson::Parse(json, &doc); - if (r == dmJson::RESULT_OK && doc.m_NodeCount > 0) { - char error_str_out[128]; - if (dmScript::JsonToLua(L, &doc, 0, error_str_out, sizeof(error_str_out)) < 0) { - dmLogError("Failed converting object JSON to Lua; %s", error_str_out); - is_fail = true; - } - } else { - dmLogError("Failed to parse JSON object(%d): (%s)", r, json); - is_fail = true; - } - dmJson::Free(&doc); - if (is_fail) { - lua_pop(L, 2); - assert(top == lua_gettop(L)); - return; - } + dmScript::JsonToLua(L, json, strlen(json)); // throws lua error if it fails int number_of_arguments = 3; int ret = lua_pcall(L, number_of_arguments, 0, 0); diff --git a/siwg/src/siwg_jni.h b/siwg/src/siwg_jni.h deleted file mode 100644 index 4ec345f..0000000 --- a/siwg/src/siwg_jni.h +++ /dev/null @@ -1,54 +0,0 @@ -#pragma once - -#if defined(DM_PLATFORM_ANDROID) - -#include -#include - -struct ThreadAttacher { - JNIEnv *env; - bool has_attached; - ThreadAttacher() : env(NULL), has_attached(false) { - if (dmGraphics::GetNativeAndroidJavaVM()->GetEnv((void **)&env, JNI_VERSION_1_6) != JNI_OK) { - dmGraphics::GetNativeAndroidJavaVM()->AttachCurrentThread(&env, NULL); - has_attached = true; - } - } - ~ThreadAttacher() { - if (has_attached) { - if (env->ExceptionCheck()) { - env->ExceptionDescribe(); - } - env->ExceptionClear(); - dmGraphics::GetNativeAndroidJavaVM()->DetachCurrentThread(); - } - } -}; - -struct ClassLoader { - private: - JNIEnv *env; - jobject class_loader_object; - jmethodID find_class; - public: - ClassLoader(JNIEnv *env) : env(env) { - jclass activity_class = env->FindClass("android/app/NativeActivity"); - jmethodID get_class_loader = env->GetMethodID(activity_class, "getClassLoader", "()Ljava/lang/ClassLoader;"); - class_loader_object = env->CallObjectMethod(dmGraphics::GetNativeAndroidActivity(), get_class_loader); - jclass class_loader = env->FindClass("java/lang/ClassLoader"); - find_class = env->GetMethodID(class_loader, "loadClass", "(Ljava/lang/String;)Ljava/lang/Class;"); - env->DeleteLocalRef(activity_class); - env->DeleteLocalRef(class_loader); - } - ~ClassLoader() { - env->DeleteLocalRef(class_loader_object); - } - jclass load(const char *class_name) { - jstring str_class_name = env->NewStringUTF(class_name); - jclass loaded_class = (jclass)env->CallObjectMethod(class_loader_object, find_class, str_class_name); - env->DeleteLocalRef(str_class_name); - return loaded_class; - } -}; - -#endif \ No newline at end of file