Merge "Fix use of JNI calls inside GetStringCritical/ReleaseStringCritical sections."

am: df3d68c9b2

Change-Id: I56e293d16dee7503f717f3cca4902720307a2024
This commit is contained in:
Andreas Huber
2016-11-10 19:08:28 +00:00
committed by android-build-merger

View File

@@ -267,17 +267,17 @@ static void JHwParcel_native_writeInterfaceToken(
const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL); const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL);
if (interfaceName) { if (interfaceName) {
hardware::Parcel *parcel = String16 nameCopy(
JHwParcel::GetNativeContext(env, thiz)->getParcel(); reinterpret_cast<const char16_t *>(interfaceName),
env->GetStringLength(interfaceNameObj));
status_t err = parcel->writeInterfaceToken(
String16(
reinterpret_cast<const char16_t *>(interfaceName),
env->GetStringLength(interfaceNameObj)));
env->ReleaseStringCritical(interfaceNameObj, interfaceName); env->ReleaseStringCritical(interfaceNameObj, interfaceName);
interfaceName = NULL; interfaceName = NULL;
hardware::Parcel *parcel =
JHwParcel::GetNativeContext(env, thiz)->getParcel();
status_t err = parcel->writeInterfaceToken(nameCopy);
signalExceptionForError(env, err); signalExceptionForError(env, err);
} }
} }
@@ -294,17 +294,18 @@ static void JHwParcel_native_enforceInterface(
const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL); const jchar *interfaceName = env->GetStringCritical(interfaceNameObj, NULL);
if (interfaceName) { if (interfaceName) {
hardware::Parcel *parcel = String16 interfaceNameCopy(
JHwParcel::GetNativeContext(env, thiz)->getParcel(); reinterpret_cast<const char16_t *>(interfaceName),
env->GetStringLength(interfaceNameObj));
bool valid = parcel->enforceInterface(
String16(
reinterpret_cast<const char16_t *>(interfaceName),
env->GetStringLength(interfaceNameObj)));
env->ReleaseStringCritical(interfaceNameObj, interfaceName); env->ReleaseStringCritical(interfaceNameObj, interfaceName);
interfaceName = NULL; interfaceName = NULL;
hardware::Parcel *parcel =
JHwParcel::GetNativeContext(env, thiz)->getParcel();
bool valid = parcel->enforceInterface(interfaceNameCopy);
if (!valid) { if (!valid) {
jniThrowException( jniThrowException(
env, env,