Martin,

You mean it should be like this:
        char[] val = value;    /* avoid getfield opcode */
        int end = val.length;
?

Lev

On 03/27/2015 11:37 PM, Martin Buchholz wrote:
Here you copy the field into a local, but then don't make use of it to grab the length.
2888         int len = value.length;
2889         int st = 0;
2890         char[] val = value;    /* avoid getfield opcode */
Also, 'beg' and 'end' would be much better names for the locals 'st' and 'len'.

On Fri, Mar 27, 2015 at 12:54 PM, Lev Priima <[email protected] <mailto:[email protected]>> wrote:

    Hi Ivan,

    Thanks! Agree. Updated:
    http://cr.openjdk.java.net/~lpriima/8071571/1/webrev/
    <http://cr.openjdk.java.net/%7Elpriima/8071571/1/webrev/>

    Lev


    On 03/27/2015 06:17 PM, Ivan Gerasimov wrote:

        Hi Lev!

        Why don't you want to also simplify String#trim()?
        -        return ((st > 0) || (len < value.length)) ?
        substring(st, len) : this;
        +        return substring(st, len);

        I guess, the situation when a string *is* trimmed, i.e.
        substring() is called is more common.
        In that case we have a couple of duplicating condition checks
        (they're going to be performed in substring() anyways) plus
        the cost of a branch.

        Sincerely yours,
        Ivan


        On 27.03.2015 17 <tel:27.03.2015%2017>:56, Lev Priima wrote:

            Please review small cleanup in java.lang.String:

            Issue: https://bugs.openjdk.java.net/browse/JDK-8071571
            Webrev:
            http://cr.openjdk.java.net/~lpriima/8071571/0/webrev/
            <http://cr.openjdk.java.net/%7Elpriima/8071571/0/webrev/>

            46 tests from jdk9/dev/jdk/test/java/lang/String* passed
            locally.





Reply via email to