E void FDECL(strbuf_reserve, (strbuf_t *, int));
E void FDECL(strbuf_empty, (strbuf_t *));
E void FDECL(strbuf_nl_to_crlf, (strbuf_t *));
-E struct ptr_array * FDECL(ptr_array_new, (size_t length));
-E void FDECL(ptr_array_free, (struct ptr_array *));
/* ### invent.c ### */
}
}
-ptr_array_t *
-ptr_array_new(max_length)
- size_t max_length;
-{
- size_t esize = max_length * sizeof(void *);
- ptr_array_t * a = (ptr_array_t *) malloc(sizeof(ptr_array_t) + esize);
- a->elements = (void **)(a + 1);
- a->length = 0;
- a->max_length = max_length;
- memset(a->elements, 0, esize);
- return a;
-}
-
-void
-ptr_array_free(a)
- ptr_array_t * a;
-{
- size_t i;
-
- nhassert(a->length <= a->max_length);
-
- for(i = 0; i < a->length; i++)
- if(a->elements[i])
- free(a->elements[i]);
-
- for (i = a->length; i < a->max_length; i++) {
- nhassert(a->elements[i] == NULL);
- if(a->elements[i])
- free(a->elements[i]);
- }
-
- free(a);
-}
-
/*hacklib.c*/