summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/bridge/jni/v8
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/bridge/jni/v8')
-rw-r--r--Source/WebCore/bridge/jni/v8/JNIUtilityPrivate.cpp15
-rw-r--r--Source/WebCore/bridge/jni/v8/JavaFieldJobjectV8.cpp13
2 files changed, 19 insertions, 9 deletions
diff --git a/Source/WebCore/bridge/jni/v8/JNIUtilityPrivate.cpp b/Source/WebCore/bridge/jni/v8/JNIUtilityPrivate.cpp
index 47b88d6..42efaac 100644
--- a/Source/WebCore/bridge/jni/v8/JNIUtilityPrivate.cpp
+++ b/Source/WebCore/bridge/jni/v8/JNIUtilityPrivate.cpp
@@ -107,7 +107,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
}
env->SetByteArrayRegion(static_cast<jbyteArray>(javaArray), i, 1, &bVal);
}
- } else if (!strcmp(javaClassName.data(), "[C")) {
+ } else if (!strcmp(javaClassName.data(), "[C")) {
// array of chars
javaArray = env->NewCharArray(length);
// Now iterate over each element and add to the array.
@@ -123,7 +123,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
}
env->SetCharArrayRegion(static_cast<jcharArray>(javaArray), i, 1, &cVal);
}
- } else if (!strcmp(javaClassName.data(), "[D")) {
+ } else if (!strcmp(javaClassName.data(), "[D")) {
// array of doubles
javaArray = env->NewDoubleArray(length);
// Now iterate over each element and add to the array.
@@ -135,7 +135,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
env->SetDoubleArrayRegion(static_cast<jdoubleArray>(javaArray), i, 1, &dVal);
}
}
- } else if (!strcmp(javaClassName.data(), "[F")) {
+ } else if (!strcmp(javaClassName.data(), "[F")) {
// array of floats
javaArray = env->NewFloatArray(length);
// Now iterate over each element and add to the array.
@@ -147,7 +147,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
env->SetFloatArrayRegion(static_cast<jfloatArray>(javaArray), i, 1, &fVal);
}
}
- } else if (!strcmp(javaClassName.data(), "[I")) {
+ } else if (!strcmp(javaClassName.data(), "[I")) {
// array of ints
javaArray = env->NewIntArray(length);
// Now iterate over each element and add to the array.
@@ -162,7 +162,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
}
env->SetIntArrayRegion(static_cast<jintArray>(javaArray), i, 1, &iVal);
}
- } else if (!strcmp(javaClassName.data(), "[J")) {
+ } else if (!strcmp(javaClassName.data(), "[J")) {
// array of longs
javaArray = env->NewLongArray(length);
// Now iterate over each element and add to the array.
@@ -177,7 +177,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
}
env->SetLongArrayRegion(static_cast<jlongArray>(javaArray), i, 1, &jVal);
}
- } else if (!strcmp(javaClassName.data(), "[S")) {
+ } else if (!strcmp(javaClassName.data(), "[S")) {
// array of shorts
javaArray = env->NewShortArray(length);
// Now iterate over each element and add to the array.
@@ -192,7 +192,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
}
env->SetShortArrayRegion(static_cast<jshortArray>(javaArray), i, 1, &sVal);
}
- } else if (!strcmp(javaClassName.data(), "[Z")) {
+ } else if (!strcmp(javaClassName.data(), "[Z")) {
// array of booleans
javaArray = env->NewBooleanArray(length);
// Now iterate over each element and add to the array.
@@ -210,6 +210,7 @@ JavaValue convertNPVariantToJavaValue(NPVariant value, const String& javaClass)
}
result.m_objectValue = adoptRef(new JavaInstanceJobject(javaArray));
+ env->DeleteLocalRef(javaArray);
}
break;
#endif // PLATFORM(ANDROID)
diff --git a/Source/WebCore/bridge/jni/v8/JavaFieldJobjectV8.cpp b/Source/WebCore/bridge/jni/v8/JavaFieldJobjectV8.cpp
index 0fe5837..fb23cf5 100644
--- a/Source/WebCore/bridge/jni/v8/JavaFieldJobjectV8.cpp
+++ b/Source/WebCore/bridge/jni/v8/JavaFieldJobjectV8.cpp
@@ -33,14 +33,23 @@ using namespace JSC::Bindings;
JavaFieldJobject::JavaFieldJobject(JNIEnv* env, jobject aField)
{
// Get field type
- jobject fieldType = callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;");
- jstring fieldTypeName = static_cast<jstring>(callJNIMethod<jobject>(fieldType, "getName", "()Ljava/lang/String;"));
+ jstring fieldTypeName = 0;
+ jclass fieldType = static_cast<jclass>(callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;"));
+ if (fieldType)
+ fieldTypeName = static_cast<jstring>(callJNIMethod<jobject>(fieldType, "getName", "()Ljava/lang/String;"));
+ if (!fieldTypeName)
+ fieldTypeName = env->NewStringUTF("<Unknown>");
m_typeClassName = JavaString(env, fieldTypeName);
m_type = javaTypeFromClassName(m_typeClassName.utf8());
+ env->DeleteLocalRef(fieldType);
+ env->DeleteLocalRef(fieldTypeName);
// Get field name
jstring fieldName = static_cast<jstring>(callJNIMethod<jobject>(aField, "getName", "()Ljava/lang/String;"));
+ if (!fieldName)
+ fieldName = env->NewStringUTF("<Unknown>");
m_name = JavaString(env, fieldName);
+ env->DeleteLocalRef(fieldName);
m_field = new JobjectWrapper(aField);
}