Fix QJniObject::registerNativeMethods use of global reference
registerNativeMethods() should be using the local jclass from findClass() instead of the global reference. Task-number: QTBUG-89633 Change-Id: I469a9a1ecff95ab9948421baa5c88735ba7ad776 Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
This commit is contained in:
parent
9f4098937b
commit
c00ab6f8ea
@ -221,14 +221,13 @@ bool QJniEnvironment::registerNativeMethods(const char *className, JNINativeMeth
|
|||||||
if (!clazz)
|
if (!clazz)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
jclass gClazz = static_cast<jclass>(d->jniEnv->NewGlobalRef(clazz));
|
if (d->jniEnv->RegisterNatives(clazz, methods, size / sizeof(methods[0])) < 0) {
|
||||||
|
|
||||||
if (d->jniEnv->RegisterNatives(gClazz, methods, size / sizeof(methods[0])) < 0) {
|
|
||||||
exceptionCheckAndClear();
|
exceptionCheckAndClear();
|
||||||
|
d->jniEnv->DeleteLocalRef(clazz);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
d->jniEnv->DeleteLocalRef(gClazz);
|
d->jniEnv->DeleteLocalRef(clazz);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user