static jint android_content_XmlBlock_nativeGetAttributeIndex(JNIEnv* env, jobject clazz, jint token, jstring ns, jstring name) { ResXMLParser* st = (ResXMLParser*)token; if (st == NULL || name == NULL) { doThrow(env, "java/lang/NullPointerException"); return 0; } const char16_t* ns16 = NULL; jsize nsLen = 0; if (ns) { ns16 = env->GetStringChars(ns, NULL); nsLen = env->GetStringLength(ns); } const char16_t* name16 = env->GetStringChars(name, NULL); jsize nameLen = env->GetStringLength(name); jint idx = (jint)st->indexOfAttribute(ns16, nsLen, name16, nameLen); if (ns) { env->ReleaseStringChars(ns, ns16); } env->ReleaseStringChars(name, name16); return idx; }
static jint android_content_XmlBlock_nativeGetAttributeIndex(JNIEnv* env, jobject clazz, jlong token, jstring ns, jstring name) { ResXMLParser* st = reinterpret_cast<ResXMLParser*>(token); if (st == NULL || name == NULL) { jniThrowNullPointerException(env, NULL); return 0; } const char16_t* ns16 = NULL; jsize nsLen = 0; if (ns) { ns16 = env->GetStringChars(ns, NULL); nsLen = env->GetStringLength(ns); } const char16_t* name16 = env->GetStringChars(name, NULL); jsize nameLen = env->GetStringLength(name); jint idx = static_cast<jint>(st->indexOfAttribute(ns16, nsLen, name16, nameLen)); if (ns) { env->ReleaseStringChars(ns, ns16); } env->ReleaseStringChars(name, name16); return idx; }