summaryrefslogtreecommitdiffstats
path: root/net/base/net_string_util_icu_alternatives_android.cc
diff options
context:
space:
mode:
authormmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 17:17:33 +0000
committermmenke@chromium.org <mmenke@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-08-08 17:18:53 +0000
commit202e490e9e47463db1363be692a27531623bf505 (patch)
tree0910587b719cade9c17993a6840baebc92720ba7 /net/base/net_string_util_icu_alternatives_android.cc
parent40e54f85ff7870708f9df72d13a67dce3673e314 (diff)
downloadchromium_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.cc21
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;
}