diff options
author | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-08 17:17:33 +0000 |
---|---|---|
committer | mmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-08-08 17:18:53 +0000 |
commit | 202e490e9e47463db1363be692a27531623bf505 (patch) | |
tree | 0910587b719cade9c17993a6840baebc92720ba7 /net/base/net_string_util_icu_alternatives_android.cc | |
parent | 40e54f85ff7870708f9df72d13a67dce3673e314 (diff) | |
download | chromium_src-202e490e9e47463db1363be692a27531623bf505.zip chromium_src-202e490e9e47463db1363be692a27531623bf505.tar.gz chromium_src-202e490e9e47463db1363be692a27531623bf505.tar.bz2 |
Fix Java object leaks in net_string_util_icu_alternatives_android.cc.
BUG=401769
Review URL: https://codereview.chromium.org/449253002
Cr-Commit-Position: refs/heads/master@{#288384}
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@288384 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/net_string_util_icu_alternatives_android.cc')
-rw-r--r-- | net/base/net_string_util_icu_alternatives_android.cc | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/net/base/net_string_util_icu_alternatives_android.cc b/net/base/net_string_util_icu_alternatives_android.cc index ca06303..ca0e7f0 100644 --- a/net/base/net_string_util_icu_alternatives_android.cc +++ b/net/base/net_string_util_icu_alternatives_android.cc @@ -20,12 +20,13 @@ namespace { ScopedJavaLocalRef<jstring> ConvertToJstring(const std::string& text, const char* charset) { JNIEnv* env = base::android::AttachCurrentThread(); - jobject java_byte_buffer = - env->NewDirectByteBuffer(const_cast<char*>(text.data()), text.length()); + ScopedJavaLocalRef<jobject> java_byte_buffer( + env, + env->NewDirectByteBuffer(const_cast<char*>(text.data()), text.length())); base::android::ScopedJavaLocalRef<jstring> java_charset = base::android::ConvertUTF8ToJavaString(env, base::StringPiece(charset)); ScopedJavaLocalRef<jstring> java_result = - android::Java_NetStringUtil_convertToUnicode(env, java_byte_buffer, + android::Java_NetStringUtil_convertToUnicode(env, java_byte_buffer.obj(), java_charset.obj()); return java_result; } @@ -36,13 +37,14 @@ ScopedJavaLocalRef<jstring> ConvertToJstring(const std::string& text, ScopedJavaLocalRef<jstring> ConvertToNormalizedJstring( const std::string& text, const char* charset) { JNIEnv* env = base::android::AttachCurrentThread(); - jobject java_byte_buffer = - env->NewDirectByteBuffer(const_cast<char*>(text.data()), text.length()); + ScopedJavaLocalRef<jobject> java_byte_buffer( + env, + env->NewDirectByteBuffer(const_cast<char*>(text.data()), text.length())); base::android::ScopedJavaLocalRef<jstring> java_charset = base::android::ConvertUTF8ToJavaString(env, base::StringPiece(charset)); ScopedJavaLocalRef<jstring> java_result = android::Java_NetStringUtil_convertToUnicodeAndNormalize( - env, java_byte_buffer, java_charset.obj()); + env, java_byte_buffer.obj(), java_charset.obj()); return java_result; } @@ -51,13 +53,14 @@ ScopedJavaLocalRef<jstring> ConvertToNormalizedJstring( ScopedJavaLocalRef<jstring> ConvertToJstringWithSubstitutions( const std::string& text, const char* charset) { JNIEnv* env = base::android::AttachCurrentThread(); - jobject java_byte_buffer = - env->NewDirectByteBuffer(const_cast<char*>(text.data()), text.length()); + ScopedJavaLocalRef<jobject> java_byte_buffer( + env, + env->NewDirectByteBuffer(const_cast<char*>(text.data()), text.length())); base::android::ScopedJavaLocalRef<jstring> java_charset = base::android::ConvertUTF8ToJavaString(env, base::StringPiece(charset)); ScopedJavaLocalRef<jstring> java_result = android::Java_NetStringUtil_convertToUnicodeWithSubstitutions( - env, java_byte_buffer, java_charset.obj()); + env, java_byte_buffer.obj(), java_charset.obj()); return java_result; } |