Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 1236) +++ trunk/src/main.c (revision 1237) @@ -1592,6 +1592,7 @@ } uninit_strflags_buf(); + uninit_strflags_layerlist(); #define free0(ptr) \ do { \ Index: trunk/src/strflags.c =================================================================== --- trunk/src/strflags.c (revision 1236) +++ trunk/src/strflags.c (revision 1237) @@ -204,6 +204,15 @@ return; } +void uninit_strflags_layerlist(void) +{ + if (layers != NULL) { + free(layers); + layers = NULL; + num_layers = max_layers = 0; + } +} + static inline void set_layer_list(int layer, int v) { if (layer >= num_layers) Index: trunk/src/strflags.h =================================================================== --- trunk/src/strflags.h (revision 1236) +++ trunk/src/strflags.h (revision 1237) @@ -47,5 +47,6 @@ char *pcbflags_to_string(FlagType flags); void uninit_strflags_buf(void); +void uninit_strflags_layerlist(void); #endif