Merge "Avoid unnecessary FindClass("java/lang/String")."
This commit is contained in:
@@ -293,17 +293,10 @@ static jobjectArray android_content_AssetManager_list(JNIEnv* env, jobject clazz
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
jclass cls = env->FindClass("java/lang/String");
|
|
||||||
LOG_FATAL_IF(cls == NULL, "No string class?!?");
|
|
||||||
if (cls == NULL) {
|
|
||||||
delete dir;
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t N = dir->getFileCount();
|
size_t N = dir->getFileCount();
|
||||||
|
|
||||||
jobjectArray array = env->NewObjectArray(dir->getFileCount(),
|
jobjectArray array = env->NewObjectArray(dir->getFileCount(),
|
||||||
cls, NULL);
|
g_stringClass, NULL);
|
||||||
if (array == NULL) {
|
if (array == NULL) {
|
||||||
delete dir;
|
delete dir;
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -1455,19 +1448,13 @@ static jobjectArray android_content_AssetManager_getArrayStringResource(JNIEnv*
|
|||||||
}
|
}
|
||||||
const ResTable& res(am->getResources());
|
const ResTable& res(am->getResources());
|
||||||
|
|
||||||
jclass cls = env->FindClass("java/lang/String");
|
|
||||||
LOG_FATAL_IF(cls == NULL, "No string class?!?");
|
|
||||||
if (cls == NULL) {
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
const ResTable::bag_entry* startOfBag;
|
const ResTable::bag_entry* startOfBag;
|
||||||
const ssize_t N = res.lockBag(arrayResId, &startOfBag);
|
const ssize_t N = res.lockBag(arrayResId, &startOfBag);
|
||||||
if (N < 0) {
|
if (N < 0) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
jobjectArray array = env->NewObjectArray(N, cls, NULL);
|
jobjectArray array = env->NewObjectArray(N, g_stringClass, NULL);
|
||||||
if (env->ExceptionCheck()) {
|
if (env->ExceptionCheck()) {
|
||||||
res.unlockBag(startOfBag);
|
res.unlockBag(startOfBag);
|
||||||
return NULL;
|
return NULL;
|
||||||
@@ -1764,6 +1751,7 @@ int register_android_content_AssetManager(JNIEnv* env)
|
|||||||
jclass stringClass = env->FindClass("java/lang/String");
|
jclass stringClass = env->FindClass("java/lang/String");
|
||||||
LOG_FATAL_IF(stringClass == NULL, "Unable to find class java/lang/String");
|
LOG_FATAL_IF(stringClass == NULL, "Unable to find class java/lang/String");
|
||||||
g_stringClass = (jclass)env->NewGlobalRef(stringClass);
|
g_stringClass = (jclass)env->NewGlobalRef(stringClass);
|
||||||
|
LOG_FATAL_IF(g_stringClass == NULL, "Unable to create global reference for class java/lang/String");
|
||||||
|
|
||||||
return AndroidRuntime::registerNativeMethods(env,
|
return AndroidRuntime::registerNativeMethods(env,
|
||||||
"android/content/res/AssetManager", gAssetManagerMethods, NELEM(gAssetManagerMethods));
|
"android/content/res/AssetManager", gAssetManagerMethods, NELEM(gAssetManagerMethods));
|
||||||
|
|||||||
Reference in New Issue
Block a user