diff --git a/alliance/src/s2r/src/rdsacces.c b/alliance/src/s2r/src/rdsacces.c index f82a956a..42480651 100644 --- a/alliance/src/s2r/src/rdsacces.c +++ b/alliance/src/s2r/src/rdsacces.c @@ -570,32 +570,28 @@ rdsfig_list *S2Rfigmbkrds (FigureMbk, All,SubConn) chain_list *Pt; /* dupplique tous les CALUx en ALUx dans le père pour permettre - l'unification des pastilles de metal de VIA et des ALU associés - On le dupplique deux fois une fois avec nom, une fois sans */ + l'unification des pastilles de metal de VIA et des ALU associés */ { phseg_list * phseg; for (phseg = FigureMbk->PHSEG; phseg; phseg=phseg->NEXT) { - char layer; + phseg_list * dupseg = addphseg(FigureMbk, + phseg->LAYER, phseg->WIDTH, + phseg->X1, phseg->Y1, + phseg->X2, phseg->Y2, phseg->NAME); switch (phseg->LAYER) { - case CALU1 : layer = ALU1; break; - case CALU2 : layer = ALU2; break; - case CALU3 : layer = ALU3; break; - case CALU4 : layer = ALU4; break; - case CALU5 : layer = ALU5; break; - case CALU6 : layer = ALU6; break; - case CALU7 : layer = ALU7; break; - case CALU8 : layer = ALU8; break; - case CALU9 : layer = ALU9; break; - default : continue; /* passer au segment suivant */ + case CALU1 : dupseg->LAYER = ALU1; break; + case CALU2 : dupseg->LAYER = ALU2; break; + case CALU3 : dupseg->LAYER = ALU3; break; + case CALU4 : dupseg->LAYER = ALU4; break; + case CALU5 : dupseg->LAYER = ALU5; break; + case CALU6 : dupseg->LAYER = ALU6; break; + case CALU7 : dupseg->LAYER = ALU7; break; + case CALU8 : dupseg->LAYER = ALU8; break; + case CALU9 : dupseg->LAYER = ALU9; break; } - addphseg(FigureMbk, layer, phseg->WIDTH, - phseg->X1, phseg->Y1, - phseg->X2, phseg->Y2, phseg->NAME); - addphseg(FigureMbk, layer, phseg->WIDTH, - phseg->X1, phseg->Y1, - phseg->X2, phseg->Y2, NULL); + dupseg->NAME = NULL; } } if (All) @@ -619,8 +615,7 @@ rdsfig_list *S2Rfigmbkrds (FigureMbk, All,SubConn) for (Pt = Pt->NEXT; Pt != NULL; Pt = Pt->NEXT) { if (SubConn == 0) /* puisqu'on ne veut pas de connecteurs - intermediaires, on remplace les CALU par les ALU associés FW 200205 - avec et sans nom */ + intermediaires, on remplace les CALU par les ALU associés FW 200205 */ { phseg_list * phseg; for (phseg = ((phfig_list *) Pt->DATA)->PHSEG; phseg; phseg=phseg->NEXT) @@ -636,40 +631,33 @@ rdsfig_list *S2Rfigmbkrds (FigureMbk, All,SubConn) case CALU7 : phseg->LAYER = ALU7; break; case CALU8 : phseg->LAYER = ALU8; break; case CALU9 : phseg->LAYER = ALU9; break; - default : continue; /* passer au segment suivant */ } - addphseg(FigureMbk, phseg->LAYER, phseg->WIDTH, - phseg->X1, phseg->Y1, - phseg->X2, phseg->Y2, NULL); } } else /* sinon on le duplique dans le metal associé pour qu'il absorbe - les vias inclus lors que la phase d'unification, avec et sans - nom */ + les vias inclus lors que la phase d'unification */ { phseg_list * phseg; - for (phseg = FigureMbk->PHSEG; phseg; phseg=phseg->NEXT) + for (phseg = ((phfig_list *) Pt->DATA)->PHSEG; phseg; phseg=phseg->NEXT) { - char layer; + phseg_list * dupseg = addphseg((phfig_list *) Pt->DATA, + phseg->LAYER, phseg->WIDTH, + phseg->X1, phseg->Y1, + phseg->X2, phseg->Y2, + phseg->NAME); switch (phseg->LAYER) { - case CALU1 : layer = ALU1; break; - case CALU2 : layer = ALU2; break; - case CALU3 : layer = ALU3; break; - case CALU4 : layer = ALU4; break; - case CALU5 : layer = ALU5; break; - case CALU6 : layer = ALU6; break; - case CALU7 : layer = ALU7; break; - case CALU8 : layer = ALU8; break; - case CALU9 : layer = ALU9; break; - default : continue; /* passer au segment suivant */ + case CALU1 : dupseg->LAYER = ALU1; break; + case CALU2 : dupseg->LAYER = ALU2; break; + case CALU3 : dupseg->LAYER = ALU3; break; + case CALU4 : dupseg->LAYER = ALU4; break; + case CALU5 : dupseg->LAYER = ALU5; break; + case CALU6 : dupseg->LAYER = ALU6; break; + case CALU7 : dupseg->LAYER = ALU7; break; + case CALU8 : dupseg->LAYER = ALU8; break; + case CALU9 : dupseg->LAYER = ALU9; break; } - addphseg(FigureMbk, layer, phseg->WIDTH, - phseg->X1, phseg->Y1, - phseg->X2, phseg->Y2, phseg->NAME); - addphseg(FigureMbk, layer, phseg->WIDTH, - phseg->X1, phseg->Y1, - phseg->X2, phseg->Y2, NULL); + dupseg->NAME = NULL; } } figmbkrds ((phfig_list *) Pt->DATA, 0, 0);