diff options
| author | Grant Limberg <glimberg@gmail.com> | 2015-05-02 11:20:21 -0700 |
|---|---|---|
| committer | Grant Limberg <glimberg@gmail.com> | 2015-05-02 12:05:02 -0700 |
| commit | 079d248eabac5f6b09f46ea174dd5fa362971a3c (patch) | |
| tree | 1d52b3fcbf8bfd47246d467d2fcac0f771e61f78 /java/jni/com_zerotierone_sdk_Node.cpp | |
| parent | 9f2732d661439b7bf4fc4c5ddf352ad2de8182fd (diff) | |
| download | infinitytier-079d248eabac5f6b09f46ea174dd5fa362971a3c.tar.gz infinitytier-079d248eabac5f6b09f46ea174dd5fa362971a3c.zip | |
added a JniCache objectet for caching jclass, jmethodID, and jfieldID objects
Diffstat (limited to 'java/jni/com_zerotierone_sdk_Node.cpp')
| -rw-r--r-- | java/jni/com_zerotierone_sdk_Node.cpp | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/java/jni/com_zerotierone_sdk_Node.cpp b/java/jni/com_zerotierone_sdk_Node.cpp index 5462c864..3b5c00a0 100644 --- a/java/jni/com_zerotierone_sdk_Node.cpp +++ b/java/jni/com_zerotierone_sdk_Node.cpp @@ -27,6 +27,7 @@ #include "com_zerotierone_sdk_Node.h" #include "ZT1_jniutils.h" +#include "ZT1_jnicache.h" #include <ZeroTierOne.h> @@ -39,6 +40,9 @@ extern "C" { #endif +// global static JNI Cache Object +static JniCache cache; + namespace { struct JniRef { @@ -322,7 +326,7 @@ namespace { LOGD("Calling onDataStoreGet(%s, %p, %lu, %p)", objectName, buffer, bufferIndex, objectSizeObj); - long retval = env->CallLongMethod( + long retval = (long)env->CallLongMethod( ref->dataStoreGetListener, dataStoreGetCallbackMethod, nameStr, bufferObj, (jlong)bufferIndex, objectSizeObj); @@ -446,6 +450,18 @@ namespace { } } +JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) +{ + cache.setJavaVM(vm); + return JNI_VERSION_1_6; +} + +JNIEXPORT void JNICALL JNI_OnUnload(JavaVM *vm, void *reserved) +{ + cache.clearCache(); +} + + /* * Class: com_zerotierone_sdk_Node * Method: node_init @@ -905,7 +921,7 @@ JNIEXPORT jobject JNICALL Java_com_zerotierone_sdk_Node_multicastSubscribe( uint64_t nwid = (uint64_t)in_nwid; uint64_t multicastGroup = (uint64_t)in_multicastGroup; - uint64_t multicastAdi = (uint64_t)in_multicastAdi; + unsigned long multicastAdi = (unsigned long)in_multicastAdi; ZT1_ResultCode rc = ZT1_Node_multicastSubscribe( node, nwid, multicastGroup, multicastAdi); |
