#include "ffi009.h"


Vect* foo(int length)
{
  return new_empty_vect(length);
}

Vect* bar(int length)
{
  return new_empty_vect(length * 2);
}


Vect* new_empty_vect(int l)
{
  unsigned char* vect;

  vect = malloc(sizeof(unsigned char) * l);

  if (vect == NULL){
    free(vect);
    return NULL;
  }

  Vect* v = malloc(sizeof(Vect));

  if (v==NULL){
    free(vect);
    free(v);
    return NULL;
  }

  v->value  = vect;
  v->length = l;

  return v;
}


int get_allocation_size(Vect* v)
{
  return sizeof(Vect) + v->length;
}