Index: trunk/src/plugins/rt_topo/crbs.c =================================================================== --- trunk/src/plugins/rt_topo/crbs.c (revision 1473) +++ trunk/src/plugins/rt_topo/crbs.c (revision 1474) @@ -97,18 +97,23 @@ cpt = cdt_insert_point(&crbs->cdt, x, y); if (cpt->data != NULL) { /* already initialized */ - int grew = 0; + int grew; + p = cpt->data; - if (cop > p->gpt->copper) { - p->gpt->copper = cop; - grew = 1; + grew = (cop > p->gpt->copper) || (clr > p->gpt->clearance); + + if (grew) { + grbs_point_unreg(&crbs->grbs, p->gpt); + + if (cop > p->gpt->copper) + p->gpt->copper = cop; + if (clr > p->gpt->clearance) + p->gpt->clearance = clr; + + grbs_point_reg(&crbs->grbs, p->gpt); + + printf("GT point_chg P%ld %f %f\n", p->gpt->uid, p->gpt->copper, p->gpt->clearance); } - if (clr > p->gpt->clearance) { - p->gpt->clearance = clr; - grew = 1; - } - if (grew) - printf("GT point_chg P%ld %f %f\n", p->gpt->uid, p->gpt->copper, p->gpt->clearance); return cpt; }