Index: trunk/src/data.h =================================================================== --- trunk/src/data.h (revision 7778) +++ trunk/src/data.h (revision 7779) @@ -53,10 +53,10 @@ }; -/* DO NOT USE these two macros, they are not PCB-safe */ +/* DO NOT USE this macros, it is not PCB-safe */ #define pcb_max_layer (PCB->Data->LayerN) -#define pcb_max_group (PCB->LayerGroups.len) + extern pcb_buffer_t pcb_buffers[PCB_MAX_BUFFER]; extern int pcb_added_lines; extern int pcb_layer_stack[PCB_MAX_LAYER]; Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 7778) +++ trunk/src/layer.c (revision 7779) @@ -367,7 +367,7 @@ static int is_last_top_copper_layer(int layer) { - pcb_layergrp_id_t cgroup = pcb_layer_get_group(PCB, pcb_max_group + PCB_COMPONENT_SIDE); + pcb_layergrp_id_t cgroup = pcb_layer_get_group(PCB, PCB->LayerGroups.len + PCB_COMPONENT_SIDE); pcb_layergrp_id_t lgroup = pcb_layer_get_group(PCB, layer); if (cgroup == lgroup && PCB->LayerGroups.grp[lgroup].len == 1) return 1; Index: trunk/src/layer_grp.c =================================================================== --- trunk/src/layer_grp.c (revision 7778) +++ trunk/src/layer_grp.c (revision 7779) @@ -515,7 +515,7 @@ int pcb_layergrp_list(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layergrp_id_t *res, int res_len) { int group, used = 0; - for (group = 0; group < pcb_max_group; group++) { + for (group = 0; group < pcb->LayerGroups.len; group++) { if ((pcb_layergrp_flags(pcb, group) & mask) == mask) APPEND(group); } @@ -525,7 +525,7 @@ int pcb_layer_group_list_any(pcb_board_t *pcb, pcb_layer_type_t mask, pcb_layergrp_id_t *res, int res_len) { int group, used = 0; - for (group = 0; group < pcb_max_group; group++) { + for (group = 0; group < pcb->LayerGroups.len; group++) { if ((pcb_layergrp_flags(pcb, group) & mask)) APPEND(group); }