10#include <grass/linkm.h>
18 if (Head->Unused ==
NULL) {
19 if (Head->max_ptr >= Head->alloced) {
24 Head->ptr_array,
sizeof(
VOID_T *) * Head->alloced * 2))) {
29 Head->ptr_array = (
VOID_T **)tmp;
36 (tmp = (
VOID_T *)malloc(Head->chunk_size * Head->unit_size))) {
42 Head->ptr_array[Head->max_ptr++] = (
VOID_T *)tmp;
43 Head->Unused = (
VOID_T *)tmp;
45 p = ctmp = (
char *)tmp;
46 for (i = 0; i < Head->chunk_size - 1; i++) {
48 (
VOID_T *)&(ctmp[(i + 1) * Head->unit_size]));
51 p = &(ctmp[(i + 1) * Head->unit_size]);
VOID_T * link__get_next(VOID_T *list)
void link__set_next(VOID_T *a, VOID_T *b)
VOID_T * link_new(struct link_head *Head)
int link_out_of_memory(void)