]> git.ipfire.org Git - thirdparty/cups.git/blame - pdftops/Array.cxx
Merge changes from 1.1.x into 1.2 devel.
[thirdparty/cups.git] / pdftops / Array.cxx
CommitLineData
9c72faab 1//========================================================================
2//
3// Array.cc
4//
5// Copyright 1996 Derek B. Noonburg
6//
7//========================================================================
8
9#ifdef __GNUC__
10#pragma implementation
11#endif
12
13#include <stddef.h>
14#include "gmem.h"
15#include "Object.h"
16#include "Array.h"
17
18//------------------------------------------------------------------------
19// Array
20//------------------------------------------------------------------------
21
753453e4 22Array::Array(XRef *xrefA) {
23 xref = xrefA;
9c72faab 24 elems = NULL;
25 size = length = 0;
26 ref = 1;
27}
28
29Array::~Array() {
30 int i;
31
32 for (i = 0; i < length; ++i)
33 elems[i].free();
34 gfree(elems);
35}
36
37void Array::add(Object *elem) {
38 if (length + 1 > size) {
39 size += 8;
40 elems = (Object *)grealloc(elems, size * sizeof(Object));
41 }
42 elems[length] = *elem;
43 ++length;
44}
45
46Object *Array::get(int i, Object *obj) {
753453e4 47 return elems[i].fetch(xref, obj);
9c72faab 48}
49
50Object *Array::getNF(int i, Object *obj) {
51 return elems[i].copy(obj);
52}