Skip to content

Commit

Permalink
Prefix JNIEnv overrides so they don't collide with apkenv symbols
Browse files Browse the repository at this point in the history
  • Loading branch information
thp committed Mar 26, 2014
1 parent 946598c commit 86ef383
Show file tree
Hide file tree
Showing 4 changed files with 77 additions and 77 deletions.
26 changes: 13 additions & 13 deletions modules/angrybirds.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,9 @@ void my_audio_callback(void *ud, Uint8 *stream, int len)

/* CallVoidMethodV override. Signal when to start or stop audio */
void
JNIEnv_CallVoidMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3)
angrybirds_jnienv_CallVoidMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3)
{
MODULE_DEBUG_PRINTF("module_JNIEnv_CallVoidMethodV(%x, %s, %s)\n", p1, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_angrybirds_jnienv_CallVoidMethodV(%x, %s, %s)\n", p1, p2->name, p2->sig);
if (strcmp(p2->name, "startOutput") == 0)
{
MODULE_DEBUG_PRINTF("Start audio Output\n");
Expand All @@ -106,10 +106,10 @@ JNIEnv_CallVoidMethodV(JNIEnv* p0, jobject p1, jmethodID p2, va_list p3)

/* NewObjectV override. Initialize audio output */
jobject
JNIEnv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
angrybirds_jnienv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
{
struct dummy_jclass *clazz = p1;
MODULE_DEBUG_PRINTF("module_JNIEnv_NewObjectV(%x, %s, %s)\n", p1, p2->name, clazz->name);
MODULE_DEBUG_PRINTF("module_angrybirds_jnienv_NewObjectV(%x, %s, %s)\n", p1, p2->name, clazz->name);
if (strcmp(clazz->name, "com/rovio/ka3d/AudioOutput") == 0)
{
/* Open the audio device */
Expand Down Expand Up @@ -137,9 +137,9 @@ JNIEnv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)

/* CallObjectMethodV override. AB calls readFile to read data from apk */
jobject
JNIEnv_CallObjectMethodV(JNIEnv *env, jobject p1, jmethodID p2, va_list p3)
angrybirds_jnienv_CallObjectMethodV(JNIEnv *env, jobject p1, jmethodID p2, va_list p3)
{
MODULE_DEBUG_PRINTF("module_JNIEnv_CallObjectMethodV(%x, %s, %s, ...)\n", p1, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_angrybirds_jnienv_CallObjectMethodV(%x, %s, %s, ...)\n", p1, p2->name, p2->sig);
if (strcmp(p2->name, "readFile") == 0)
{
// Process input to prevent "not responding" message when game starts
Expand All @@ -165,9 +165,9 @@ JNIEnv_CallObjectMethodV(JNIEnv *env, jobject p1, jmethodID p2, va_list p3)

/* DeleteLocalRef override. Free some memory :) */
void
JNIEnv_DeleteLocalRef(JNIEnv* p0, jobject p1)
angrybirds_jnienv_DeleteLocalRef(JNIEnv* p0, jobject p1)
{
MODULE_DEBUG_PRINTF("JNIEnv_DeleteLocalRef(%x)\n", p1);
MODULE_DEBUG_PRINTF("angrybirds_jnienv_DeleteLocalRef(%x)\n", p1);
if (p1 == GLOBAL_J(p0) || p1 == NULL) {
MODULE_DEBUG_PRINTF("WARNING: DeleteLocalRef on global\n");
return;
Expand All @@ -189,11 +189,11 @@ angrybirds_try_init(struct SupportModule *self)
self->priv->native_mixdata = (angrybirds_mixdata_t)LOOKUP_M("ka3d_AudioOutput_nativeMixData");
self->priv->native_deinit = (angrybirds_deinit_t)LOOKUP_M("ka3d_MyRenderer_nativeDeinit");

/* Overrides for JNIEnv_ */
self->override_env.CallObjectMethodV = JNIEnv_CallObjectMethodV;
self->override_env.DeleteLocalRef = JNIEnv_DeleteLocalRef;
self->override_env.CallVoidMethodV = JNIEnv_CallVoidMethodV;
self->override_env.NewObjectV = JNIEnv_NewObjectV;
/* Overrides for angrybirds_jnienv_ */
self->override_env.CallObjectMethodV = angrybirds_jnienv_CallObjectMethodV;
self->override_env.DeleteLocalRef = angrybirds_jnienv_DeleteLocalRef;
self->override_env.CallVoidMethodV = angrybirds_jnienv_CallVoidMethodV;
self->override_env.NewObjectV = angrybirds_jnienv_NewObjectV;

return (self->priv->native_init != NULL &&
self->priv->native_resize != NULL &&
Expand Down
70 changes: 35 additions & 35 deletions modules/fruitninja.c
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ load_sound_callback(const char *filename, char *buffer, size_t size)
}

jobject
JNIEnv_CallStaticObjectMethodV(JNIEnv*env, jclass p1, jmethodID p2, va_list p3)
fruitninja_jnienv_CallStaticObjectMethodV(JNIEnv*env, jclass p1, jmethodID p2, va_list p3)
{
struct dummy_jclass *jcl = p1;

Expand Down Expand Up @@ -138,7 +138,7 @@ JNIEnv_CallStaticObjectMethodV(JNIEnv*env, jclass p1, jmethodID p2, va_list p3)
}
else
{
MODULE_DEBUG_PRINTF("module_JNIEnv_CallStaticObjectMethodV(%s, %s, %s)\n",
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_CallStaticObjectMethodV(%s, %s, %s)\n",
jcl->name, p2->name, p2->sig);
}

Expand Down Expand Up @@ -176,11 +176,11 @@ musicFinished()
}

void
JNIEnv_CallStaticVoidMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
fruitninja_jnienv_CallStaticVoidMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
{
struct dummy_jclass *jcl = p1;

MODULE_DEBUG_PRINTF("module_JNIEnv_CallStaticVoidMethodV(%x, %s, %s)\n", jcl->name, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_CallStaticVoidMethodV(%x, %s, %s)\n", jcl->name, p2->name, p2->sig);


if( strcmp( p2->name, "SongPlay" ) == 0 ) // Play some sweet backround music?
Expand Down Expand Up @@ -219,46 +219,46 @@ JNIEnv_CallStaticVoidMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
Mix_VolumeChunk(SFX[i].sound, soundvol);
}
} else {
MODULE_DEBUG_PRINTF("module_JNIEnv_CallStaticVoidMethodV(%x, %s, %s)\n", jcl->name, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_CallStaticVoidMethodV(%x, %s, %s)\n", jcl->name, p2->name, p2->sig);
}
}

/* Overrides to fix SegFault on end of classic mode (dirty hack?) */
jclass
JNIEnv_GetObjectClass(JNIEnv* env, jobject p1)
fruitninja_jnienv_GetObjectClass(JNIEnv* env, jobject p1)
{
MODULE_DEBUG_PRINTF("module_JNIEnv_GetObjectClass(%x, %x)\n", env, p1);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_GetObjectClass(%x, %x)\n", env, p1);
struct dummy_jclass *class = malloc(sizeof(struct dummy_jclass));
class->name = strdup(p1);
return class;
}
jobject
JNIEnv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
fruitninja_jnienv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
{
struct dummy_jclass *clazz = p1;
MODULE_DEBUG_PRINTF("JNIEnv_NewObjectV(%x, %s, %s)\n", p1, p2->name, clazz->name);
MODULE_DEBUG_PRINTF("fruitninja_jnienv_NewObjectV(%x, %s, %s)\n", p1, p2->name, clazz->name);
return NULL;
}
jfieldID
JNIEnv_GetFieldID(JNIEnv* p0, jclass p1, const char* p2, const char* p3)
fruitninja_jnienv_GetFieldID(JNIEnv* p0, jclass p1, const char* p2, const char* p3)
{
struct dummy_jclass *jcl = p1;
MODULE_DEBUG_PRINTF("module_JNIEnv_GetFieldID(%s, %s, %s)\n", jcl->name, p2, p3);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_GetFieldID(%s, %s, %s)\n", jcl->name, p2, p3);
return 0;
}

/* Following overrides are just to suppress some not important debug messages... */
jclass
JNIEnv_FindClass(JNIEnv* p0, const char* p1)
fruitninja_jnienv_FindClass(JNIEnv* p0, const char* p1)
{
if( !strcmp( p1, "com/openfeint/api/OpenFeint" ) == 0 )
MODULE_DEBUG_PRINTF("module_JNIEnv_FindClass('%s')\n", p1);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_FindClass('%s')\n", p1);
struct dummy_jclass *class = malloc(sizeof(struct dummy_jclass));
class->name = strdup(p1);
return class;
}
jmethodID
JNIEnv_GetStaticMethodID(JNIEnv* p0, jclass clazz, const char* name, const char* sig)
fruitninja_jnienv_GetStaticMethodID(JNIEnv* p0, jclass clazz, const char* name, const char* sig)
{
if (strcmp(name,"isNetworkConnected")==0) {
if (fruitninja_priv.isNetworkConnected==0) {
Expand All @@ -269,40 +269,40 @@ JNIEnv_GetStaticMethodID(JNIEnv* p0, jclass clazz, const char* name, const char*
}
return fruitninja_priv.isNetworkConnected;
}
MODULE_DEBUG_PRINTF("module_JNIEnv_GetStaticMethodID(%x, %s, %s)\n", clazz, name, sig);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_GetStaticMethodID(%x, %s, %s)\n", clazz, name, sig);
jmethodID id = malloc(sizeof(struct _jmethodID));
id->clazz = clazz;
id->name = strdup(name);
id->sig = strdup(sig);
return id;
}
jboolean
JNIEnv_CallStaticBooleanMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
fruitninja_jnienv_CallStaticBooleanMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
{
//struct dummy_jclass *clazz = (struct dummy_jclass*)p1;
if( strcmp( p2->name, "isNetworkConnected" ) != 0 ) {
MODULE_DEBUG_PRINTF("module_JNIEnv_CallStaticBooleanMethodV(%x, %s, %s)\n", p2->clazz, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_CallStaticBooleanMethodV(%x, %s, %s)\n", p2->clazz, p2->name, p2->sig);
}
return 0;
}
jint
JNIEnv_CallStaticIntMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
fruitninja_jnienv_CallStaticIntMethodV(JNIEnv* p0, jclass p1, jmethodID p2, va_list p3)
{
MODULE_DEBUG_PRINTF("module_JNIEnv_CallStaticIntMethodMethodV(%x, %s, %s)\n", p2->clazz, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_CallStaticIntMethodMethodV(%x, %s, %s)\n", p2->clazz, p2->name, p2->sig);
if (strcmp(p2->name,"GetWifi")==0) return 0;
if (strcmp(p2->name,"GetTouchscreenCapabilities")==0) return 0;
return 0;
}
void
JNIEnv_ExceptionClear(JNIEnv* p0)
fruitninja_jnienv_ExceptionClear(JNIEnv* p0)
{
//MODULE_DEBUG_PRINTF("module_JNIEnv_ExceptionClear()\n");
//MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_ExceptionClear()\n");
}

jthrowable
JNIEnv_ExceptionOccurred(JNIEnv* p0)
fruitninja_jnienv_ExceptionOccurred(JNIEnv* p0)
{
//MODULE_DEBUG_PRINTF("module_JNIEnv_ExceptionOccurred()\n");
//MODULE_DEBUG_PRINTF("module_fruitninja_jnienv_ExceptionOccurred()\n");
return NULL;
}

Expand All @@ -326,18 +326,18 @@ fruitninja_try_init(struct SupportModule *self)
self->priv->native_initjavasoundmanager = (fruitninja_initjavasoundmanager_t)LOOKUP_M("_NativeGameLib_native_1InitJavaSoundManager");
self->priv->isNetworkConnected = 0;

/* override for JNIEnv_ */
self->override_env.CallStaticObjectMethodV = JNIEnv_CallStaticObjectMethodV;
self->override_env.GetObjectClass = JNIEnv_GetObjectClass;
self->override_env.NewObjectV = JNIEnv_NewObjectV;
self->override_env.GetFieldID = JNIEnv_GetFieldID;
self->override_env.FindClass = JNIEnv_FindClass;
self->override_env.GetStaticMethodID = JNIEnv_GetStaticMethodID;
self->override_env.ExceptionClear = JNIEnv_ExceptionClear;
self->override_env.CallStaticBooleanMethodV = JNIEnv_CallStaticBooleanMethodV;
self->override_env.CallStaticVoidMethodV = JNIEnv_CallStaticVoidMethodV;
self->override_env.ExceptionOccurred = JNIEnv_ExceptionOccurred;
self->override_env.CallStaticIntMethodV = JNIEnv_CallStaticIntMethodV;
/* override for fruitninja_jnienv_ */
self->override_env.CallStaticObjectMethodV = fruitninja_jnienv_CallStaticObjectMethodV;
self->override_env.GetObjectClass = fruitninja_jnienv_GetObjectClass;
self->override_env.NewObjectV = fruitninja_jnienv_NewObjectV;
self->override_env.GetFieldID = fruitninja_jnienv_GetFieldID;
self->override_env.FindClass = fruitninja_jnienv_FindClass;
self->override_env.GetStaticMethodID = fruitninja_jnienv_GetStaticMethodID;
self->override_env.ExceptionClear = fruitninja_jnienv_ExceptionClear;
self->override_env.CallStaticBooleanMethodV = fruitninja_jnienv_CallStaticBooleanMethodV;
self->override_env.CallStaticVoidMethodV = fruitninja_jnienv_CallStaticVoidMethodV;
self->override_env.ExceptionOccurred = fruitninja_jnienv_ExceptionOccurred;
self->override_env.CallStaticIntMethodV = fruitninja_jnienv_CallStaticIntMethodV;


return (//self->priv->JNI_OnLoad != NULL &&
Expand Down
10 changes: 5 additions & 5 deletions modules/openframeworks.c
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ struct _jobject {
};

jobject
JNIEnv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
openframeworks_jnienv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
{
MODULE_DEBUG_PRINTF("module_NewObjectV(%p, %s)\n", p1, p2->name);
struct _jobject *object = malloc(sizeof(*object));
Expand All @@ -105,9 +105,9 @@ JNIEnv_NewObjectV(JNIEnv *env, jclass p1, jmethodID p2, va_list p3)
}

void
JNIEnv_CallVoidMethodV(JNIEnv *env, jobject p1, jmethodID p2, va_list p3)
openframeworks_jnienv_CallVoidMethodV(JNIEnv *env, jobject p1, jmethodID p2, va_list p3)
{
MODULE_DEBUG_PRINTF("module_JNIEnv_CallVoidMethodV(%x, %s, %s)\n", p1, p2->name, p2->sig);
MODULE_DEBUG_PRINTF("module_openframeworks_jnienv_CallVoidMethodV(%x, %s, %s)\n", p1, p2->name, p2->sig);

if (strcmp(p2->name, "reportScore") == 0
&& strcmp(openframeworks_priv.app_name, "Super Hexagon") == 0)
Expand Down Expand Up @@ -296,8 +296,8 @@ openframeworks_try_init(struct SupportModule *self)
self->priv->update = (openframeworks_update_t)LOOKUP_M(
"Java_cc_openframeworks_OFAndroid_update");

self->override_env.NewObjectV = JNIEnv_NewObjectV;
self->override_env.CallVoidMethodV = JNIEnv_CallVoidMethodV;
self->override_env.NewObjectV = openframeworks_jnienv_NewObjectV;
self->override_env.CallVoidMethodV = openframeworks_jnienv_CallVoidMethodV;

return (self->priv->JNI_OnLoad != NULL) && !failed_syms;
}
Expand Down
48 changes: 24 additions & 24 deletions modules/unity.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,15 +53,15 @@ typedef struct
/* -------- */


jfieldID JNIEnv_GetStaticFieldID(JNIEnv *p0, jclass p1, const char *p2, const char *p3) SOFTFP;
jobject JNIEnv_GetStaticObjectField(JNIEnv *p0, jclass p1, jfieldID p2) SOFTFP;
jclass JNIEnv_GetObjectClass(JNIEnv *p0, jobject p1) SOFTFP;
jobject JNIEnv_CallObjectMethod(JNIEnv* env, jobject p1, jmethodID p2, ...) SOFTFP;
jobject JNIEnv_CallStaticObjectMethod(JNIEnv* env, jclass p1, jmethodID p2, ...) SOFTFP;
const char * JNIEnv_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy) SOFTFP;
jfieldID unity_jnienv_GetStaticFieldID(JNIEnv *p0, jclass p1, const char *p2, const char *p3) SOFTFP;
jobject unity_jnienv_GetStaticObjectField(JNIEnv *p0, jclass p1, jfieldID p2) SOFTFP;
jclass unity_jnienv_GetObjectClass(JNIEnv *p0, jobject p1) SOFTFP;
jobject unity_jnienv_CallObjectMethod(JNIEnv* env, jobject p1, jmethodID p2, ...) SOFTFP;
jobject unity_jnienv_CallStaticObjectMethod(JNIEnv* env, jclass p1, jmethodID p2, ...) SOFTFP;
const char * unity_jnienv_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy) SOFTFP;


jfieldID JNIEnv_GetStaticFieldID(JNIEnv *p0, jclass p1, const char *p2, const char *p3)
jfieldID unity_jnienv_GetStaticFieldID(JNIEnv *p0, jclass p1, const char *p2, const char *p3)
{
struct dummy_jclass* cls = (struct dummy_jclass*)p1;
MODULE_DEBUG_PRINTF("GetStaticFieldID %s %s %s\n", cls->name, p2, p3);
Expand All @@ -75,7 +75,7 @@ jfieldID JNIEnv_GetStaticFieldID(JNIEnv *p0, jclass p1, const char *p2, const ch
return (jfieldID)field;
}

jobject JNIEnv_GetStaticObjectField(JNIEnv *p0, jclass p1, jfieldID p2)
jobject unity_jnienv_GetStaticObjectField(JNIEnv *p0, jclass p1, jfieldID p2)
{
struct dummy_jclass* cls = p1;
struct _jfieldID* fld = (void *)p2;
Expand All @@ -89,7 +89,7 @@ jobject JNIEnv_GetStaticObjectField(JNIEnv *p0, jclass p1, jfieldID p2)
return obj;
}

jclass JNIEnv_GetObjectClass(JNIEnv *p0, jobject p1)
jclass unity_jnienv_GetObjectClass(JNIEnv *p0, jobject p1)
{
MODULE_DEBUG_PRINTF("GetObjectClass %x\n",p1);
if (p1!=NULL)
Expand All @@ -101,7 +101,7 @@ jclass JNIEnv_GetObjectClass(JNIEnv *p0, jobject p1)
}


jobject JNIEnv_CallObjectMethod(JNIEnv* env, jobject p1, jmethodID p2, ...)
jobject unity_jnienv_CallObjectMethod(JNIEnv* env, jobject p1, jmethodID p2, ...)
{
MODULE_DEBUG_PRINTF("CallObjectMethod %x %x\n",p1,p2);

Expand All @@ -115,12 +115,12 @@ jobject JNIEnv_CallObjectMethod(JNIEnv* env, jobject p1, jmethodID p2, ...)
}

jobject
JNIEnv_CallStaticObjectMethod(JNIEnv* env, jclass p1, jmethodID p2, ...)
unity_jnienv_CallStaticObjectMethod(JNIEnv* env, jclass p1, jmethodID p2, ...)
{
struct dummy_jclass* clazz = p1;
jmethodID method = p2;

MODULE_DEBUG_PRINTF("JNIEnv_CallStaticObjectMethod(%s,%s)\n",clazz->name,method->name);
MODULE_DEBUG_PRINTF("unity_jnienv_CallStaticObjectMethod(%s,%s)\n",clazz->name,method->name);

if (strcmp(method->name,"getProperty")==0) {
//jstring property = va_arg(p3,jstring);
Expand All @@ -138,17 +138,17 @@ JNIEnv_CallStaticObjectMethod(JNIEnv* env, jclass p1, jmethodID p2, ...)
}

jobject
JNIEnv_NewGlobalRef(JNIEnv* p0, jobject p1)
unity_jnienv_NewGlobalRef(JNIEnv* p0, jobject p1)
{
MODULE_DEBUG_PRINTF("JNIEnv_NewGlobalRef(%x)\n", p1);
MODULE_DEBUG_PRINTF("unity_jnienv_NewGlobalRef(%x)\n", p1);
if (p1==NULL) {
struct dummy_jclass* cls = malloc(sizeof(struct dummy_jclass));
cls->name = "null";

dummy_jobject* obj = malloc(sizeof(dummy_jobject));
obj->clazz = cls;
obj->field = NULL;
MODULE_DEBUG_PRINTF("JNIEnv_NewGlobalRef(%x) -> %x\n", p1, obj);
MODULE_DEBUG_PRINTF("unity_jnienv_NewGlobalRef(%x) -> %x\n", p1, obj);
return obj;
}
//dummy_jobject
Expand Down Expand Up @@ -192,22 +192,22 @@ unity_try_init(struct SupportModule *self)
self->priv->JNI_OnLoad_libunity = (jni_onload_t)LOOKUP_LIBM("libunity","JNI_OnLoad");
self->priv->JNI_OnLoad_libmono = (jni_onload_t)LOOKUP_LIBM("libmono","JNI_OnLoad");

self->override_env.GetStaticFieldID = JNIEnv_GetStaticFieldID;
self->override_env.GetStaticObjectField = JNIEnv_GetStaticObjectField;
self->override_env.GetObjectClass = JNIEnv_GetObjectClass;
self->override_env.CallObjectMethod = JNIEnv_CallObjectMethod;
self->override_env.CallStaticObjectMethod = JNIEnv_CallStaticObjectMethod;
self->override_env.GetStringUTFChars = JNIEnv_GetStringUTFChars;
self->override_env.NewGlobalRef = JNIEnv_NewGlobalRef;
self->override_env.GetStaticFieldID = unity_jnienv_GetStaticFieldID;
self->override_env.GetStaticObjectField = unity_jnienv_GetStaticObjectField;
self->override_env.GetObjectClass = unity_jnienv_GetObjectClass;
self->override_env.CallObjectMethod = unity_jnienv_CallObjectMethod;
self->override_env.CallStaticObjectMethod = unity_jnienv_CallStaticObjectMethod;
self->override_env.GetStringUTFChars = unity_jnienv_GetStringUTFChars;
self->override_env.NewGlobalRef = unity_jnienv_NewGlobalRef;

return (self->priv->JNI_OnLoad_libunity!=NULL);
}


const char *
JNIEnv_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy)
unity_jnienv_GetStringUTFChars(JNIEnv *env, jstring string, jboolean *isCopy)
{
MODULE_DEBUG_PRINTF("JNIEnv_GetStringUTFChars(%x)\n", string);
MODULE_DEBUG_PRINTF("unity_jnienv_GetStringUTFChars(%x)\n", string);
if (string == GLOBAL_J(env)) {
MODULE_DEBUG_PRINTF("WARNING: GetStringUTFChars on global\n");
return NULL;
Expand Down

0 comments on commit 86ef383

Please sign in to comment.