Changeset 92689 in webkit


Ignore:
Timestamp:
Aug 9, 2011 10:00:03 AM (13 years ago)
Author:
steveblock@google.com
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):

Location:
trunk/Source/WebCore
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r92688 r92689  
     12011-08-09  Steve Block  <steveblock@google.com>
     2
     3        Java Bridge leaks local references
     4        https://bugs.webkit.org/show_bug.cgi?id=64320
     5
     6        Reviewed by Alexey Proskuryakov.
     7
     8        No new tests as this is just an optimization.
     9
     10        * bridge/jni/jsc/JavaFieldJSC.cpp:
     11        (JavaField::JavaField):
     12        * bridge/jni/jsc/JavaMethodJSC.cpp:
     13        (JavaMethod::JavaMethod):
     14
    1152011-08-09  Pavel Feldman  <pfeldman@google.com>
    216
  • trunk/Source/WebCore/bridge/jni/jsc/JavaFieldJSC.cpp

    r91355 r92689  
    4545    // Get field type name
    4646    jstring fieldTypeName = 0;
    47     if (jobject fieldType = callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;"))
     47    jclass fieldType = static_cast<jclass>(callJNIMethod<jobject>(aField, "getType", "()Ljava/lang/Class;"));
     48    if (fieldType)
    4849        fieldTypeName = static_cast<jstring>(callJNIMethod<jobject>(fieldType, "getName", "()Ljava/lang/String;"));
    4950    if (!fieldTypeName)
     
    5253
    5354    m_type = javaTypeFromClassName(m_typeClassName.utf8());
     55    env->DeleteLocalRef(fieldType);
     56    env->DeleteLocalRef(fieldTypeName);
    5457
    5558    // Get field name
     
    5861        fieldName = env->NewStringUTF("<Unknown>");
    5962    m_name = JavaString(env, fieldName);
     63    env->DeleteLocalRef(fieldName);
    6064
    6165    m_field = JobjectWrapper::create(aField);
  • trunk/Source/WebCore/bridge/jni/jsc/JavaMethodJSC.cpp

    r92681 r92689  
    4242    jstring returnTypeName = 0;
    4343    if (jobject returnType = callJNIMethod<jobject>(aMethod, "getReturnType", "()Ljava/lang/Class;")) {
    44             returnTypeName = static_cast<jstring>(callJNIMethod<jobject>(returnType, "getName", "()Ljava/lang/String;"));
     44        returnTypeName = static_cast<jstring>(callJNIMethod<jobject>(returnType, "getName", "()Ljava/lang/String;"));
    4545        if (!returnTypeName)
    4646            returnTypeName = env->NewStringUTF("<Unknown>");
Note: See TracChangeset for help on using the changeset viewer.