#include "oop.h"

#include <assert.h>

Array::Array(int size) : ArrayedCollection(size)
{
  mElements= (oop *)GC_MALLOC(sizeof(oop) * mSize);
}

Array::~Array(void)
{
  assert(mElements);
  GC_FREE(mElements);
  assert(!(mElements= 0));
}

oop Array::classNew(int size)
{
  return new Array(size);
}

oop Array::at(int index)
{
  if (index < 0 || index >= mSize)
    errorSubscriptBounds(index);
  return mElements[index];
}

oop Array::atPut(int index, oop element)
{
  if (index < 0 || index >= mSize)
    errorSubscriptBounds(index);
  return mElements[index]= element;
}

