-// Copyright (C) 2003 Adam Megacz <adam@ibex.org> all rights reserved.
-//
-// You may modify, copy, and redistribute this code under the terms of
-// the GNU Library Public License version 2.1, with the exception of
-// the portion of clause 6a after the semicolon (aka the "obnoxious
-// relink clause")
+// Copyright 2000-2005 the Contributors, as shown in the revision logs.
+// Licensed under the Apache Public Source License 2.0 ("the License").
+// You may not use this file except in compliance with the License.
package org.ibex.util;
import java.io.*;
*
* @see java.util.Vector
*/
-public final class Vec implements Serializable {
+public final class Vec implements Serializable, Cloneable {
private Object[] store;
private int size = 0;
public Vec() { this(10); }
public Vec(int i) { store = new Object[i]; }
public Vec(int i, Object[] store) { size = i; this.store = store; }
-
+ public Vec(Vec old) {
+ store = new Object[old.store.length];
+ System.arraycopy(old.store, 0, store, 0, old.store.length);
+ this.size = old.size;
+ }
+
+ public Object clone() { return new Vec(this); }
private void grow() { grow(store.length * 2); }
private void grow(int newsize) {
Object[] newstore = new Object[newsize];
public void push(Object o) { addElement(o); }
public Object pop() {
Object ret = lastElement();
- if (size > 0) store[size--] = null;
+ if (size > 0) store[--size] = null;
return ret;
}
size = newSize;
}
- public void copyInto(Object[] out) {
+ public Object[] copyInto(Object[] out) {
for(int i=0; i<size; i++)
out[i] = store[i];
+ return out;
}
public void fromArray(Object[] in) {
size = newSize;
}
- public void copyInto(int[] out) {
+ public int[] copyInto(int[] out) {
for(int i=0; i<size; i++)
out[i] = store[i];
+ return out;
}
public void fromArray(int[] in) {