Mercurial > repo
view nasmbuild/nasm-2.13rc9/rdoff/collectn.c @ 10971:0b7c2ac84f2e
<oerjan> revert
author | HackBot |
---|---|
date | Mon, 29 May 2017 08:09:08 +0000 |
parents | 587a0a262d22 |
children |
line wrap: on
line source
/* * collectn.c - implements variable length pointer arrays [collections]. * * This file is public domain. */ #include "compiler.h" #include <stdlib.h> #include "collectn.h" void collection_init(Collection * c) { int i; for (i = 0; i < 32; i++) c->p[i] = NULL; c->next = NULL; } void **colln(Collection * c, int index) { while (index >= 32) { index -= 32; if (c->next == NULL) { c->next = malloc(sizeof(Collection)); collection_init(c->next); } c = c->next; } return &(c->p[index]); } void collection_reset(Collection * c) { int i; if (c->next) { collection_reset(c->next); free(c->next); } c->next = NULL; for (i = 0; i < 32; i++) c->p[i] = NULL; }