diff options
author | Arturo Espinosa <unammx@src.gnome.org> | 1999-04-17 02:59:58 (GMT) |
---|---|---|
committer | Arturo Espinosa <unammx@src.gnome.org> | 1999-04-17 02:59:58 (GMT) |
commit | d9f9a6449f377b4c933b75d57541b19c6d088994 (patch) | |
tree | 04f7f0c54447ef792fbf83bc5039174f4681b3bb /pdf/xpdf/Array.cc |
Initial revision
Diffstat (limited to 'pdf/xpdf/Array.cc')
-rw-r--r-- | pdf/xpdf/Array.cc | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pdf/xpdf/Array.cc b/pdf/xpdf/Array.cc new file mode 100644 index 0000000..9681b68 --- /dev/null +++ b/pdf/xpdf/Array.cc @@ -0,0 +1,51 @@ +//======================================================================== +// +// Array.cc +// +// Copyright 1996 Derek B. Noonburg +// +//======================================================================== + +#ifdef __GNUC__ +#pragma implementation +#endif + +#include <stddef.h> +#include "gmem.h" +#include "Object.h" +#include "Array.h" + +//------------------------------------------------------------------------ +// Array +//------------------------------------------------------------------------ + +Array::Array() { + elems = NULL; + size = length = 0; + ref = 1; +} + +Array::~Array() { + int i; + + for (i = 0; i < length; ++i) + elems[i].free(); + gfree(elems); +} + +void Array::add(Object *elem) { + if (length + 1 > size) { + size += 8; + elems = (Object *)grealloc(elems, size * sizeof(Object)); + } + elems[length] = *elem; + ++length; +} + +Object *Array::get(int i, Object *obj) { + return elems[i].fetch(obj); +} + +Object *Array::getNF(int i, Object *obj) { + return elems[i].copy(obj); +} |