Okay; I concede -- webrev with 'p' rather than "p" uploaded:

    http://cr.openjdk.java.net/~darcy/6964528.1

Thanks,

-Joe


On 02/01/2013 02:10 PM, Aleksey Shipilev wrote:
+1. Appending char is marginally faster as well.

-Aleksey.

On 02.02.2013, at 2:07, Vitaly Davidovich <vita...@gmail.com> wrote:

I'm with Louis on this one.  Since you're changing this code anyway, I
don't see any reason to use string here.

Sent from my phone
On Feb 1, 2013 4:45 PM, "Joe Darcy" <joe.da...@oracle.com> wrote:

On 02/01/2013 01:41 PM, Louis Wasserman wrote:

Would appending the character 'p' instead of the string "p" make any
difference?
Not a big enough one for me to feel compelled to look into it ;-)

-Joe


On Fri, Feb 1, 2013 at 1:39 PM, Joe Darcy <joe.da...@oracle.com <mailto:
joe.da...@oracle.com>> wrote:

    Hello,

    Please review a simple refactoring fix in Double.toHexString

        6964528: Double.toHexString(double d) String manipulation with
    + in an append of StringBuilder
    
http://cr.openjdk.java.net/~**darcy/6964528.0/<http://cr.openjdk.java.net/~darcy/6964528.0/>
    
<http://cr.openjdk.java.net/%**7Edarcy/6964528.0/<http://cr.openjdk.java.net/%7Edarcy/6964528.0/>

    Patch below.

    Thanks,

    -Joe

    --- old/src/share/classes/java/**lang/Double.java  2013-02-01
    13:36:33.000000000 -0800
    +++ new/src/share/classes/java/**lang/Double.java  2013-02-01
    13:36:33.000000000 -0800
    @@ -1,5 +1,5 @@
     /*
    - * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All
    rights reserved.
    + * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All
    rights reserved.
      * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
      *
      * This code is free software; you can redistribute it and/or
    modify it
    @@ -289,7 +289,7 @@
                 return Double.toString(d);
             else {
                 // Initialized to maximum size of output.
    -            StringBuffer answer = new StringBuffer(24);
    +            StringBuilder answer = new StringBuilder(24);

                 if (Math.copySign(1.0, d) == -1.0)    // value is
    negative,
                     answer.append("-");                  // so append
    sign info
    @@ -300,8 +300,7 @@

                 if(d == 0.0) {
                     answer.append("0.0p0");
    -            }
    -            else {
    +            } else {
                     boolean subnormal = (d < DoubleConsts.MIN_NORMAL);

                     // Isolate significand bits and OR in a
    high-order bit
    @@ -324,13 +323,14 @@
                                   "0":
     signif.replaceFirst("0{1,12}$"**, ""));

    +                answer.append("p");
                     // If the value is subnormal, use the E_min exponent
                     // value for double; otherwise, extract and
    report d's
                     // exponent (the representation of a subnormal uses
                     // E_min -1).
    -                answer.append("p" + (subnormal ?
    -                               DoubleConsts.MIN_EXPONENT:
    -                               Math.getExponent(d) ));
    +                answer.append(subnormal ?
    +                              DoubleConsts.MIN_EXPONENT:
    +                              Math.getExponent(d));
                 }
                 return answer.toString();
             }




--
Louis Wasserman


Reply via email to