Title: [92689] trunk/Source/WebCore
- Revision
- 92689
- Author
- [email protected]
- Date
- 2011-08-09 10:00:03 -0700 (Tue, 09 Aug 2011)
Log Message
Java Bridge leaks local references
https://bugs.webkit.org/show_bug.cgi?id=64320
Reviewed by Alexey Proskuryakov.
No new tests as this is just an optimization.
* bridge/jni/jsc/JavaFieldJSC.cpp:
(JavaField::JavaField):
* bridge/jni/jsc/JavaMethodJSC.cpp:
(JavaMethod::JavaMethod):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (92688 => 92689)
--- trunk/Source/WebCore/ChangeLog 2011-08-09 16:09:00 UTC (rev 92688)
+++ trunk/Source/WebCore/ChangeLog 2011-08-09 17:00:03 UTC (rev 92689)
@@ -1,3 +1,17 @@
+2011-08-09 Steve Block <[email protected]>
+
+ Java Bridge leaks local references
+ https://bugs.webkit.org/show_bug.cgi?id=64320
+
+ Reviewed by Alexey Proskuryakov.
+
+ No new tests as this is just an optimization.
+
+ * bridge/jni/jsc/JavaFieldJSC.cpp:
+ (JavaField::JavaField):
+ * bridge/jni/jsc/JavaMethodJSC.cpp:
+ (JavaMethod::JavaMethod):
+
2011-08-09 Pavel Feldman <[email protected]>
Web Inspector: files from different domains are mixed in the file selector in Scripts panel
Modified: trunk/Source/WebCore/bridge/jni/jsc/JavaFieldJSC.cpp (92688 => 92689)
--- trunk/Source/WebCore/bridge/jni/jsc/JavaFieldJSC.cpp 2011-08-09 16:09:00 UTC (rev 92688)
+++ trunk/Source/WebCore/bridge/jni/jsc/JavaFieldJSC.cpp 2011-08-09 17:00:03 UTC (rev 92689)
@@ -44,19 +44,23 @@
{
// Get field type name
jstring fieldTypeName = 0;
- if (jobject fieldType = callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;"))
+ 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 = JobjectWrapper::create(aField);
}
Modified: trunk/Source/WebCore/bridge/jni/jsc/JavaMethodJSC.cpp (92688 => 92689)
--- trunk/Source/WebCore/bridge/jni/jsc/JavaMethodJSC.cpp 2011-08-09 16:09:00 UTC (rev 92688)
+++ trunk/Source/WebCore/bridge/jni/jsc/JavaMethodJSC.cpp 2011-08-09 17:00:03 UTC (rev 92689)
@@ -41,7 +41,7 @@
// Get return type name
jstring returnTypeName = 0;
if (jobject returnType = callJNIMethod<jobject>(aMethod, "getReturnType", "()Ljava/lang/Class;")) {
- returnTypeName = static_cast<jstring>(callJNIMethod<jobject>(returnType, "getName", "()Ljava/lang/String;"));
+ returnTypeName = static_cast<jstring>(callJNIMethod<jobject>(returnType, "getName", "()Ljava/lang/String;"));
if (!returnTypeName)
returnTypeName = env->NewStringUTF("<Unknown>");
env->DeleteLocalRef(returnType);
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes