[Scummvm-cvs-logs] CVS: scummvm/gui util.h,1.4,1.5
Max Horn
fingolfin at users.sourceforge.net
Wed Jul 17 10:23:06 CEST 2002
Update of /cvsroot/scummvm/scummvm/gui
In directory usw-pr-cvs1:/tmp/cvs-serv2770
Modified Files:
util.h
Log Message:
added copy constructo and assignment operator for List<T> template
Index: util.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/gui/util.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- util.h 16 Jul 2002 10:52:48 -0000 1.4
+++ util.h 17 Jul 2002 17:22:48 -0000 1.5
@@ -40,7 +40,11 @@
List<T>() : _capacity(0), _size(0), _data(0) {}
List<T>(const List<T>& list) : _capacity(0), _size(0), _data(0)
{
- error("EEEEK! List copy constructor called");
+ _size = list._size;
+ _capacity = _size + 32;
+ _data = new T[_capacity];
+ for (int i = 0; i < _size; i++)
+ _data[i] = list._data[i];
}
~List<T>()
@@ -69,9 +73,30 @@
return _data[idx];
}
+ List<T>& operator =(const List<T>& list)
+ {
+ if (_data)
+ delete [] _data;
+ _size = list._size;
+ _capacity = _size + 32;
+ _data = new T[_capacity];
+ for (int i = 0; i < _size; i++)
+ _data[i] = list._data[i];
+
+ return *this;
+ }
+
int size() const { return _size; }
- void clear() { _size = 0; }
+ void clear()
+ {
+ if (_data) {
+ delete [] _data;
+ _data = 0;
+ }
+ _size = 0;
+ _capacity = 0;
+ }
protected:
void ensureCapacity(int new_len)
More information about the Scummvm-git-logs
mailing list