filters
Array.cc00001
00002
00003
00004
00005
00006
00007
00008
00009 #include <aconf.h>
00010
00011 #ifdef USE_GCC_PRAGMAS
00012 #pragma implementation
00013 #endif
00014
00015 #include <stddef.h>
00016 #include "gmem.h"
00017 #include "Object.h"
00018 #include "Array.h"
00019
00020
00021
00022
00023
00024 Array::Array(XRef *xrefA) {
00025 xref = xrefA;
00026 elems = NULL;
00027 size = length = 0;
00028 ref = 1;
00029 }
00030
00031 Array::~Array() {
00032 int i;
00033
00034 for (i = 0; i < length; ++i)
00035 elems[i].free();
00036 gfree(elems);
00037 }
00038
00039 void Array::add(Object *elem) {
00040 if (length + 1 > size) {
00041 size += 8;
00042 elems = (Object *)grealloc(elems, size * sizeof(Object));
00043 }
00044 elems[length] = *elem;
00045 ++length;
00046 }
00047
00048 Object *Array::get(int i, Object *obj) {
00049 return elems[i].fetch(xref, obj);
00050 }
00051
00052 Object *Array::getNF(int i, Object *obj) {
00053 return elems[i].copy(obj);
00054 }
|