Index: trunk/src/obj_padstack.c =================================================================== --- trunk/src/obj_padstack.c (revision 12240) +++ trunk/src/obj_padstack.c (revision 12241) @@ -33,14 +33,6 @@ #include "vtpadstack.h" #include "flag.h" -static inline pcb_padstack_proto_t *pcb_padstack_proto_get(pcb_data_t *data, pcb_cardinal_t pid) -{ - pcb_padstack_proto_t *proto = pcb_vtpadstack_proto_get(&data->ps_protos, pid, 0); - if ((proto == NULL) || (!proto->in_use)) - return NULL; - return proto; -} - pcb_padstack_t *pcb_padstack_alloc(pcb_data_t *data) { pcb_padstack_t *ps; @@ -84,7 +76,7 @@ { int n, sn; pcb_line_t line; - pcb_padstack_proto_t *proto = pcb_padstack_proto_get(ps->parent.data, ps->proto); + pcb_padstack_proto_t *proto = pcb_padstack_get_proto(ps->proto); assert(proto != NULL); ps->BoundingBox.X1 = ps->BoundingBox.X2 = ps->x; Index: trunk/src/obj_padstack_inlines.h =================================================================== --- trunk/src/obj_padstack_inlines.h (revision 12240) +++ trunk/src/obj_padstack_inlines.h (revision 12241) @@ -35,6 +35,8 @@ { if (ps->proto >= ps->parent.data->ps_protos.used) return NULL; + if (ps->parent.data->ps_protos.array[ps->proto].in_use == 0) + return NULL; return ps->parent.data->ps_protos.array + ps->proto; }