Please review a tiny change to eliminate a string copy into a temporary character buffer when removing leading or trailing whitespace from a string.

The affected methods are called within the main code to translate doc comments to HTML.  This is noreg-cleanup/no-reg-trivial, so no new additional tests.

Webrev below, but the patch is also included here:

--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Dec 16 15:33:03 2019 -0500 +++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java Mon Dec 16 13:07:18 2019 -0800
@@ -1604,22 +1604,19 @@
     }

     private String removeTrailingWhitespace(String text) {
-        char[] buf = text.toCharArray();
-        for (int i = buf.length - 1; i > 0 ; i--) {
-            if (!Character.isWhitespace(buf[i]))
-                return text.substring(0, i + 1);
+        int i = text.length() - 1;
+        while (i >= 0 && Character.isWhitespace(text.charAt(i))) {
+            i--;
         }
-        return text;
+        return i == text.length() - 1 ? text : text.substring(0, i + 1);
     }

     private String removeLeadingWhitespace(String text) {
-        char[] buf = text.toCharArray();
-        for (int i = 0; i < buf.length; i++) {
-            if (!Character.isWhitespace(buf[i])) {
-                return text.substring(i);
-            }
+        int i = 0;
+        while (i < text.length() && Character.isWhitespace(text.charAt(i))) {
+            i++;
         }
-        return text;
+        return i == 0 ? text : text.substring(i);
     }

     /**


-- Jon


JBS: https://bugs.openjdk.java.net/browse/JDK-8236030
Webrev: http://cr.openjdk.java.net/~jjg/8236030/webrev/

Reply via email to