Exemplo n.º 1
0
arena_list_t* anew_list(void *data)
{

  /*if(arena == NULL){
  // printf("should make new arena\n");
    arena = create_arena(4096*10000);
  }*/
	arena_list_t*		list;
  //printf("should malloc arena\n");
	//list = amalloc(arena,sizeof(arena_list_t));
	if(free_head == NULL || empty(free_head)){
		list = malloc(sizeof(arena_list_t));
	}else{
		list = free_head->succ;
		take_out(list);
	}
	if (list == NULL) {
		fprintf(stderr, "out of memory in %s\n", __func__);
		exit(1);
	}

	list->succ = list->pred = list;
	list->data = data;

	return list;
}
Exemplo n.º 2
0
void* take_out_first(list_t* list)
{
	list_t*	succ;
	void*	data;

	if (list->succ->data == NULL)
		return NULL;

	data = list->succ->data;

	succ = list->succ;
	take_out(succ);
	free(succ);

	return data;
}