Index: aperture.c =================================================================== --- aperture.c (revision 29098) +++ aperture.c (revision 29099) @@ -13,7 +13,8 @@ void init_aperture_list(aperture_list_t *list) { list->data = NULL; - list->count = 0; + list->aperture_count_default = list->count = 0; + list->aperture_count = &list->aperture_count_default; } void uninit_aperture_list(aperture_list_t *list) @@ -30,8 +31,6 @@ aperture_t *add_aperture(aperture_list_t *list, pcb_coord_t width, aperture_shape_t shape) { - static int aperture_count; - aperture_t *app = (aperture_t *) malloc(sizeof *app); if (app == NULL) return NULL; @@ -38,7 +37,7 @@ app->width = width; app->shape = shape; - app->dCode = DCODE_BASE + aperture_count++; + app->dCode = DCODE_BASE + (*list->aperture_count)++; app->next = list->data; list->data = app; Index: aperture.h =================================================================== --- aperture.h (revision 29098) +++ aperture.h (revision 29099) @@ -24,6 +24,7 @@ typedef struct { aperture_t *data; int count; + int aperture_count_default, *aperture_count; } aperture_list_t; void init_aperture_list(aperture_list_t *list);