Index: trunk/src/data.c =================================================================== --- trunk/src/data.c (revision 7780) +++ trunk/src/data.c (revision 7781) @@ -198,7 +198,7 @@ list_map0(&data->Element, pcb_element_t, pcb_element_free); list_map0(&data->Rat, pcb_rat_t, pcb_rat_free); - for (layer = data->Layer, i = 0; i < pcb_max_layer; layer++, i++) { + for (layer = data->Layer, i = 0; i < data->LayerN; layer++, i++) { pcb_attribute_free(&layer->Attributes); PCB_TEXT_LOOP(layer); { @@ -260,7 +260,7 @@ hasNoObjects = (pinlist_length(&Data->Via) == 0); hasNoObjects &= (elementlist_length(&Data->Element) == 0); - for (i = 0; i < pcb_max_layer; i++) + for (i = 0; i < Data->LayerN; i++) hasNoObjects = hasNoObjects && pcb_layer_is_empty_(PCB, &(Data->Layer[i])); return (hasNoObjects); } Index: trunk/src/find_lookup.c =================================================================== --- trunk/src/find_lookup.c (revision 7780) +++ trunk/src/find_lookup.c (revision 7781) @@ -489,7 +489,7 @@ } } /* loop over all layergroups */ - for (group = 0; group < pcb_max_group; group++) { + for (group = 0; group < PCB->LayerGroups.len; group++) { pcb_cardinal_t entry; for (entry = 0; entry < PCB->LayerGroups.grp[group].len; entry++) { Index: trunk/src/layer.c =================================================================== --- trunk/src/layer.c (revision 7780) +++ trunk/src/layer.c (revision 7781) @@ -376,7 +376,7 @@ static int is_last_bottom_copper_layer(int layer) { - int sgroup = pcb_layer_get_group(PCB, pcb_max_group + PCB_SOLDER_SIDE); + int sgroup = pcb_layer_get_group(PCB, PCB->LayerGroups.len + PCB_SOLDER_SIDE); int lgroup = pcb_layer_get_group(PCB, layer); if (sgroup == lgroup && PCB->LayerGroups.grp[lgroup].len == 1) return 1; @@ -437,7 +437,7 @@ pcb_layergrp_id_t g; pcb_layer_id_t l; - for (g = 0; g < pcb_max_group; g++) + for (g = 0; g < pcb->LayerGroups.len; g++) pcb->LayerGroups.grp[g].len = 0; for (l = 0; l < pcb->Data->LayerN; l++) { Index: trunk/src/obj_line_drcenf.c =================================================================== --- trunk/src/obj_line_drcenf.c (revision 7780) +++ trunk/src/obj_line_drcenf.c (revision 7781) @@ -286,7 +286,7 @@ length = coord_abs(dy); } group = pcb_layer_get_group(PCB, INDEXOFCURRENT); - comp = pcb_max_group + 10; /* this out-of-range group might save a call */ + comp = PCB->LayerGroups.len + 10; /* this out-of-range group might save a call */ if (pcb_layergrp_flags(PCB, group) & PCB_LYT_BOTTOM) info.solder = pcb_true; else { @@ -441,7 +441,7 @@ /* prepare for the intersection search */ group = pcb_layer_get_group(PCB, INDEXOFCURRENT); - comp = pcb_max_group + 10; /* this out-of-range group might save a call */ + comp = PCB->LayerGroups.len + 10; /* this out-of-range group might save a call */ if (pcb_layergrp_flags(PCB, group) & PCB_LYT_BOTTOM) info.solder = pcb_true; else {