diff options
author | Steve Block <steveblock@google.com> | 2011-02-21 11:12:10 +0000 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2011-02-21 11:12:10 +0000 |
commit | 2d40c8d707d6a815f49000e2a1575b059a68e9a9 (patch) | |
tree | a0d91f6cdaa39f1356cdf1d9a82bcff36bd8fff0 | |
parent | fc4a7c214a17115d92d1a036c76221e1bca8bcb5 (diff) | |
download | external_webkit-2d40c8d707d6a815f49000e2a1575b059a68e9a9.zip external_webkit-2d40c8d707d6a815f49000e2a1575b059a68e9a9.tar.gz external_webkit-2d40c8d707d6a815f49000e2a1575b059a68e9a9.tar.bz2 |
Fix a leaked JNI LocaRef in WebViewCore::jsPrompt()
Bug: 3470906
Change-Id: I8fb9ddcf4ff3dee35c2225a18a86b4015002da96
-rw-r--r-- | WebKit/android/jni/WebViewCore.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/WebKit/android/jni/WebViewCore.cpp b/WebKit/android/jni/WebViewCore.cpp index 6e6196a..66c78b5 100644 --- a/WebKit/android/jni/WebViewCore.cpp +++ b/WebKit/android/jni/WebViewCore.cpp @@ -3385,13 +3385,13 @@ bool WebViewCore::jsConfirm(const WTF::String& url, const WTF::String& text) bool WebViewCore::jsPrompt(const WTF::String& url, const WTF::String& text, const WTF::String& defaultValue, WTF::String& result) { JNIEnv* env = JSC::Bindings::getJNIEnv(); + jstring jUrlStr = wtfStringToJstring(env, url); jstring jInputStr = wtfStringToJstring(env, text); jstring jDefaultStr = wtfStringToJstring(env, defaultValue); - jstring jUrlStr = wtfStringToJstring(env, url); jstring returnVal = static_cast<jstring>(env->CallObjectMethod(m_javaGlue->object(env).get(), m_javaGlue->m_jsPrompt, jUrlStr, jInputStr, jDefaultStr)); + env->DeleteLocalRef(jUrlStr); env->DeleteLocalRef(jInputStr); env->DeleteLocalRef(jDefaultStr); - env->DeleteLocalRef(jUrlStr); checkException(env); // If returnVal is null, it means that the user cancelled the dialog. @@ -3399,6 +3399,7 @@ bool WebViewCore::jsPrompt(const WTF::String& url, const WTF::String& text, cons return false; result = jstringToWtfString(env, returnVal); + env->DeleteLocalRef(returnVal); return true; } |