Would appending the character 'p' instead of the string "p" make any difference?
On Fri, Feb 1, 2013 at 1:39 PM, Joe Darcy <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/> > > 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