Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Array.cc

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

Generated on Sat Nov 5 16:18:12 2005 for OPIE by  doxygen 1.4.2