summaryrefslogtreecommitdiff
path: root/runtime/native/java_lang_String.cc
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2017-03-16 10:45:40 +0000
committer Vladimir Marko <vmarko@google.com> 2017-03-16 10:55:24 +0000
commit9e57abacecc683f50dd6c9870a32ee075eaf86a8 (patch)
tree27ef93c87f3ce9f09414620f77b35f6d0949fb22 /runtime/native/java_lang_String.cc
parent26ec3cad4968ae32ce9d04c3046f766df46d9bd7 (diff)
Fix String::DoReplace() using obsolete `this`.
Change it to a static function taking a Handle<>. Test: testrunner.py --host --interp-ac --gcstress -t 021-string2 Bug: 36335996 Change-Id: I5ab3e7adc59d6a9095290e57d5ce5d46b79f089b
Diffstat (limited to 'runtime/native/java_lang_String.cc')
-rw-r--r--runtime/native/java_lang_String.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/runtime/native/java_lang_String.cc b/runtime/native/java_lang_String.cc
index 2e561ffa46..bf33bf24a0 100644
--- a/runtime/native/java_lang_String.cc
+++ b/runtime/native/java_lang_String.cc
@@ -101,8 +101,9 @@ static jstring String_intern(JNIEnv* env, jobject java_this) {
static jstring String_doReplace(JNIEnv* env, jobject java_this, jchar old_c, jchar new_c) {
ScopedFastNativeObjectAccess soa(env);
- ObjPtr<mirror::String> result =
- soa.Decode<mirror::String>(java_this)->DoReplace(soa.Self(), old_c, new_c);
+ StackHandleScope<1> hs(soa.Self());
+ Handle<mirror::String> string = hs.NewHandle(soa.Decode<mirror::String>(java_this));
+ ObjPtr<mirror::String> result = mirror::String::DoReplace(soa.Self(), string, old_c, new_c);
return soa.AddLocalReference<jstring>(result);
}