Ejemplo n.º 1
0
void* array_push(array* a, void* element) {
  if (a == NULL || !array_realloc(a)) {
    return NULL;
  }
  a->data[a->size++] = element;
  return element;
}
Ejemplo n.º 2
0
void array_pop(struct array *array) {
	array->count--;
	if (array->count + array->step < array->total) {
		int r = array_realloc(array, array->total - array->step);
		if (r < 0)
			return;
	}
}
Ejemplo n.º 3
0
Array*
array_append(Array *array, Toy_Type *item) {
    if (NULL == array) return NULL;

    if ((array->cur_size + 1) > array->alloc_size) {
	if (NULL == array_realloc(array)) return NULL;
    }

    array->array[array->cur_size] = *item;
    array->cur_size++;

    return array;
}
Ejemplo n.º 4
0
int array_append(struct array *array, const void *element)
{
	size_t idx;

	if (array->count + 1 >= array->total) {
		int r = array_realloc(array, array->total + array->step);
		if (r < 0)
			return r;
	}
	idx = array->count;
	array->array[idx] = (void *)element;
	array->count++;
	return idx;
}
Ejemplo n.º 5
0
int array_remove_at(struct array *array, unsigned int pos)
{
	if (array->count <= pos)
		return -ENOENT;

	array->count--;
	if (pos < array->count)
		memmove(array->array + pos, array->array + pos + 1,
			sizeof(void *) * (array->count - pos));

	if (array->count + array->step < array->total) {
		int r = array_realloc(array, array->total - array->step);
		/* ignore error */
		if (r < 0)
			return 0;
	}

	return 0;
}
Ejemplo n.º 6
0
static void array_appendptr( array* arr, void* object ) {
	array_realloc( arr, sizeof( void* ) );
	uint32 offset = arr->size % sizeof( void* );
	((void**)(arr->data+offset))[arr->size/sizeof(void*)] = object;
	arr->size += sizeof( void* );
}
Ejemplo n.º 7
0
static void array_append32( array* arr, uint32 object ) {
	array_realloc( arr, sizeof( uint32 ) );
	uint32 offset = arr->size % sizeof( uint32 );
	((uint32*)(arr->data+offset))[arr->size/sizeof(uint32)] = object;
	arr->size += sizeof( uint32 );
}
Ejemplo n.º 8
0
static void array_append8( array* arr, uint8 object ) {
	array_realloc( arr, 1 );
	arr->data[arr->size] = object;
	++ arr->size;
}