* Array list -- much like a simplified STL vector
* array of pointers to inserted items
*/
-class alist {
+class alist : public SMARTALLOC {
void **items;
int num_items;
int max_items;
void prepend(void *item);
void *remove(int index);
void *get(int index);
- bool empty();
+ bool empty() const;
void *prev();
void *next();
void *first();
void *last();
void * operator [](int index) const;
- int size();
+ int size() const;
void destroy();
void grow(int num);
- void * operator new(size_t);
- void operator delete(void *);
};
inline void * alist::operator [](int index) const {
return items[index];
}
-inline bool alist::empty()
+inline bool alist::empty() const
{
return num_items == 0;
}
/* Current size of list */
-inline int alist::size()
+inline int alist::size() const
{
return num_items;
}
num_grow = num;
}
-inline void * alist::operator new(size_t)
-{
- return malloc(sizeof(alist));
-}
-inline void alist::operator delete(void *item)
-{
- ((alist *)item)->destroy();
- free(item);
-}