summaryrefslogtreecommitdiff
path: root/runtime/native/java_lang_String.cc
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/native/java_lang_String.cc')
-rw-r--r--runtime/native/java_lang_String.cc8
1 files changed, 5 insertions, 3 deletions
diff --git a/runtime/native/java_lang_String.cc b/runtime/native/java_lang_String.cc
index f1d6ff5f70..1357338464 100644
--- a/runtime/native/java_lang_String.cc
+++ b/runtime/native/java_lang_String.cc
@@ -99,9 +99,11 @@ static jstring String_intern(JNIEnv* env, jobject java_this) {
return soa.AddLocalReference<jstring>(result);
}
-static void String_setCharAt(JNIEnv* env, jobject java_this, jint index, jchar c) {
+static jstring String_doReplace(JNIEnv* env, jobject java_this, jchar old_c, jchar new_c) {
ScopedFastNativeObjectAccess soa(env);
- soa.Decode<mirror::String>(java_this)->SetCharAt(index, c);
+ ObjPtr<mirror::String> result =
+ soa.Decode<mirror::String>(java_this)->DoReplace(soa.Self(), old_c, new_c);
+ return soa.AddLocalReference<jstring>(result);
}
static jcharArray String_toCharArray(JNIEnv* env, jobject java_this) {
@@ -114,11 +116,11 @@ static JNINativeMethod gMethods[] = {
NATIVE_METHOD(String, charAt, "!(I)C"),
NATIVE_METHOD(String, compareTo, "!(Ljava/lang/String;)I"),
NATIVE_METHOD(String, concat, "!(Ljava/lang/String;)Ljava/lang/String;"),
+ NATIVE_METHOD(String, doReplace, "!(CC)Ljava/lang/String;"),
NATIVE_METHOD(String, fastIndexOf, "!(II)I"),
NATIVE_METHOD(String, fastSubstring, "!(II)Ljava/lang/String;"),
NATIVE_METHOD(String, getCharsNoCheck, "!(II[CI)V"),
NATIVE_METHOD(String, intern, "!()Ljava/lang/String;"),
- NATIVE_METHOD(String, setCharAt, "!(IC)V"),
NATIVE_METHOD(String, toCharArray, "!()[C"),
};