/* Copyright K. Mitchell 1995. This file has been generated by a program and is not intended to be read by a human. Run the file occam.w through nuweb. This produces a file called occam.tex. Typeset this file using LaTeX and then preview the resulting .dvi file, or just print it out. */ #ifndef _POOL_H #define _POOL_H #define MAX_POOL_SIZE 100 typedef struct link { struct link* next; } *link; #define new(type_name) \ ((pool[sizeof(type_name)]) \ ? (pool_temp = pool[sizeof(type_name)], \ pool[sizeof(type_name)] = pool[sizeof(type_name)]->next, \ (type_name *) pool_temp) \ : (type_name *) extend_pool(sizeof(type_name))) #define dispose(object) \ { ((link)object)->next = pool[sizeof(*object)]; \ pool[sizeof(*object)] = (link)object; } extern link pool[]; extern link pool_temp; extern void *extend_pool(int n); extern void pool_statistics(); #endif