Commit b29610b3 by Anthony Green Committed by Anthony Green

de-pessimization

From-SVN: r78447
parent 7b79fe71
2004-02-24 Anthony Green <green@redhat.com>
* java/lang/StringBuffer.java: No need to NULL out remainder of
buffer since ensureCapacity_unsynchronized will have done this for
us.
2004-02-20 Michael Koch <konqueror@gmx.de>
* gnu/java/net/protocol/jar/Handler.java
......
/* StringBuffer.java -- Growable strings
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004
Free Software Foundation, Inc.
This file is part of GNU Classpath.
......@@ -205,10 +206,26 @@ public final class StringBuffer implements Serializable, CharSequence
if (newLength < 0)
throw new StringIndexOutOfBoundsException(newLength);
int valueLength = value.length;
/* Always call ensureCapacity_unsynchronized in order to preserve
copy-on-write semantics. */
ensureCapacity_unsynchronized(newLength);
while (count < newLength)
value[count++] = '\0';
count = newLength;
if (newLength < valueLength)
{
/* If the StringBuffer's value just grew, then we know that
value is newly allocated and the region between count and
newLength is filled with '\0'. */
count = newLength;
}
else
{
/* The StringBuffer's value doesn't need to grow. However,
we should clear out any cruft that may exist. */
while (count < newLength)
value[count++] = '\0';
}
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment