Add @NeverInline annotation to more String* methods

Since we are allowing to inline unimplemented intrinsics, we want to mark some methods as @NeverInline to keep our pattern matching working.

Bug: 262585898
Change-Id: I354ee8634b1a58b6f5bb968aa58d2ca84419de03
diff --git a/ojluni/src/main/java/java/lang/String.java b/ojluni/src/main/java/java/lang/String.java
index b165137..5c97e48 100644
--- a/ojluni/src/main/java/java/lang/String.java
+++ b/ojluni/src/main/java/java/lang/String.java
@@ -27,6 +27,7 @@
 package java.lang;
 
 import dalvik.annotation.optimization.FastNative;
+import dalvik.annotation.optimization.NeverInline;
 import java.io.ObjectStreamField;
 import java.io.UnsupportedEncodingException;
 import java.lang.annotation.Native;
@@ -2108,6 +2109,7 @@
      * @return  the index of the first occurrence of the specified substring,
      *          or {@code -1} if there is no such occurrence.
      */
+    @NeverInline
     public int indexOf(String str) {
         // BEGIN Android-changed: Implement with indexOf() method that takes String parameters.
         /*
@@ -2141,6 +2143,7 @@
      *          starting at the specified index,
      *          or {@code -1} if there is no such occurrence.
      */
+    @NeverInline
     public int indexOf(String str, int fromIndex) {
         // BEGIN Android-changed: Implement with indexOf() method that takes String parameters.
         /*
diff --git a/ojluni/src/main/java/java/lang/StringBuffer.java b/ojluni/src/main/java/java/lang/StringBuffer.java
index e597a81..6563b3f 100644
--- a/ojluni/src/main/java/java/lang/StringBuffer.java
+++ b/ojluni/src/main/java/java/lang/StringBuffer.java
@@ -25,6 +25,7 @@
 
 package java.lang;
 
+import dalvik.annotation.optimization.NeverInline;
 import java.util.Arrays;
 import jdk.internal.HotSpotIntrinsicCandidate;
 
@@ -709,6 +710,7 @@
 
     @Override
     @HotSpotIntrinsicCandidate
+    @NeverInline
     public synchronized String toString() {
         if (toStringCache == null) {
             return toStringCache =
diff --git a/ojluni/src/main/java/java/lang/StringBuilder.java b/ojluni/src/main/java/java/lang/StringBuilder.java
index 28c765c..a0a9d68 100644
--- a/ojluni/src/main/java/java/lang/StringBuilder.java
+++ b/ojluni/src/main/java/java/lang/StringBuilder.java
@@ -174,12 +174,14 @@
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(Object obj) {
         return append(String.valueOf(obj));
     }
 
     @Override
     @HotSpotIntrinsicCandidate
+    @NeverInline
     public StringBuilder append(String str) {
         super.append(str);
         return this;
@@ -204,12 +206,14 @@
      * @param   sb   the {@code StringBuffer} to append.
      * @return  a reference to this object.
      */
+     @NeverInline
     public StringBuilder append(StringBuffer sb) {
         super.append(sb);
         return this;
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(CharSequence s) {
         super.append(s);
         return this;
@@ -219,12 +223,14 @@
      * @throws     IndexOutOfBoundsException {@inheritDoc}
      */
     @Override
+    @NeverInline
     public StringBuilder append(CharSequence s, int start, int end) {
         super.append(s, start, end);
         return this;
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(char[] str) {
         super.append(str);
         return this;
@@ -234,12 +240,14 @@
      * @throws IndexOutOfBoundsException {@inheritDoc}
      */
     @Override
+    @NeverInline
     public StringBuilder append(char[] str, int offset, int len) {
         super.append(str, offset, len);
         return this;
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(boolean b) {
         super.append(b);
         return this;
@@ -247,6 +255,7 @@
 
     @Override
     @HotSpotIntrinsicCandidate
+    @NeverInline
     public StringBuilder append(char c) {
         super.append(c);
         return this;
@@ -254,24 +263,28 @@
 
     @Override
     @HotSpotIntrinsicCandidate
+    @NeverInline
     public StringBuilder append(int i) {
         super.append(i);
         return this;
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(long lng) {
         super.append(lng);
         return this;
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(float f) {
         super.append(f);
         return this;
     }
 
     @Override
+    @NeverInline
     public StringBuilder append(double d) {
         super.append(d);
         return this;
@@ -281,6 +294,7 @@
      * @since 1.5
      */
     @Override
+    @NeverInline
     public StringBuilder appendCodePoint(int codePoint) {
         super.appendCodePoint(codePoint);
         return this;
@@ -453,6 +467,7 @@
 
     @Override
     @HotSpotIntrinsicCandidate
+    @NeverInline
     public String toString() {
         // BEGIN Android-added: Return a constant "" for an empty buffer to keep historic behavior.
         if (count == 0) {