diff options
author | Tom Tromey <tromey@redhat.com> | 2004-08-31 09:50:40 +0000 |
---|---|---|
committer | Andreas Tobler <andreast@gcc.gnu.org> | 2004-08-31 11:50:40 +0200 |
commit | e2ab6d127aa3379ef3ad19779bfe52b273a1a757 (patch) | |
tree | 932905a0edb65eb0f9f8b0778733087b34517924 /libjava/java/text | |
parent | 71b5d516bc6cd5fc865ac560e4bea70607207272 (diff) | |
download | gcc-e2ab6d127aa3379ef3ad19779bfe52b273a1a757.zip gcc-e2ab6d127aa3379ef3ad19779bfe52b273a1a757.tar.gz gcc-e2ab6d127aa3379ef3ad19779bfe52b273a1a757.tar.bz2 |
AttributedString.java (AttributedString): Use ArrayList to build array of attribute ranges.
2004-08-31 Tom Tromey <tromey@redhat.com>
* java/text/AttributedString.java (AttributedString): Use
ArrayList to build array of attribute ranges. Don't use
`attribs' before it is set.
From-SVN: r86825
Diffstat (limited to 'libjava/java/text')
-rw-r--r-- | libjava/java/text/AttributedString.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libjava/java/text/AttributedString.java b/libjava/java/text/AttributedString.java index 8304ced..41512dc 100644 --- a/libjava/java/text/AttributedString.java +++ b/libjava/java/text/AttributedString.java @@ -39,6 +39,7 @@ exception statement from your version. */ package java.text; import java.util.Arrays; +import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; @@ -224,6 +225,7 @@ AttributedString(AttributedCharacterIterator aci, int begin_index, // Loop through and extract the attributes char c = aci.setIndex(begin_index); + ArrayList accum = new ArrayList(); do { sb.append(c); @@ -272,17 +274,17 @@ AttributedString(AttributedCharacterIterator aci, int begin_index, Map new_map = new Hashtable(); new_map.put(attrib, attrib_obj); - // Add it to the attribute list. Yes this is a bad way to do things. - AttributeRange[] new_list = new AttributeRange[attribs.length + 1]; - System.arraycopy(attribs, 0, new_list, 0, attribs.length); - attribs = new_list; - attribs[attribs.length - 1] = new AttributeRange(new_map, rs, rl); + // Add it to the attribute list. + accum.add(new AttributeRange(new_map, rs, rl)); } c = aci.next(); } while(c != CharacterIterator.DONE); + attribs = new AttributeRange[accum.size()]; + attribs = (AttributeRange[]) accum.toArray(attribs); + sci = new StringCharacterIterator(sb.toString()); } |