summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2011-02-21 11:12:10 +0000
committerSteve Block <steveblock@google.com>2011-02-21 11:12:10 +0000
commit2d40c8d707d6a815f49000e2a1575b059a68e9a9 (patch)
treea0d91f6cdaa39f1356cdf1d9a82bcff36bd8fff0
parentfc4a7c214a17115d92d1a036c76221e1bca8bcb5 (diff)
downloadexternal_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.cpp5
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;
}