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
This commit is contained in:
Tom Tromey 2004-08-31 09:50:40 +00:00 committed by Andreas Tobler
parent 71b5d516bc
commit e2ab6d127a
2 changed files with 13 additions and 5 deletions

View file

@ -1,3 +1,9 @@
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.
2004-08-30 Andreas Tobler <a.tobler@schweiz.ch>
* HACKING: Remove reference to special automake. No longer needed.

View file

@ -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());
}