#include "oop.h"

#include <assert.h>

ByteArray::ByteArray(int size) : ArrayedCollection(size)
{
  mElements= (unsigned char *)GC_MALLOC_ATOMIC(mSize);
}

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

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

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

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

