RFR: JDK-8302323 Add repeat methods to StringBuilder/StringBuffer

Roger Riggs rriggs at openjdk.org
Thu Feb 23 16:31:24 UTC 2023


On Thu, 23 Feb 2023 16:20:59 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/AbstractStringBuilder.java line 1867:
>> 
>>> 1865: 
>>> 1866:     private AbstractStringBuilder repeatNull(int count) {
>>> 1867:         if (count < 0) {
>> 
>> This could be implemented as `repeat("null", count)`. Its not likely to be performance sensitive and be easier to maintain.
>
> Just being consistent with existing code.

Better to add less code to maintain later.

>> src/java.base/share/classes/java/lang/AbstractStringBuilder.java line 1879:
>> 
>>> 1877:             throw new OutOfMemoryError("Required length exceeds implementation limit");
>>> 1878:         }
>>> 1879:         int limit = count * length;
>> 
>> The meaning of limit should be consistent across uses.  Above it is an index into the buffer; here it is an offset.
>
> Not seeing it.

Sorry, it was a comment assuming the simpler code in lines 1849-1851 from Raffaello.

>> src/java.base/share/classes/java/lang/AbstractStringBuilder.java line 1904:
>> 
>>> 1902:     public AbstractStringBuilder repeat(CharSequence cs, int count) {
>>> 1903:         if (cs == null) {
>>> 1904:             return repeatNull(count);
>> 
>> Or just replace `cs = "null";` and fall through to the rest.
>
> Same.

Same, don't add more code than necessary.

-------------

PR: https://git.openjdk.org/jdk/pull/12728


More information about the core-libs-dev mailing list