diff --git a/src/aig/gia/giaGen.c b/src/aig/gia/giaGen.c index edd3a28af..e9bf012f5 100644 --- a/src/aig/gia/giaGen.c +++ b/src/aig/gia/giaGen.c @@ -1557,7 +1557,7 @@ Gia_Man_t * Gia_ManGenAdder( int nVars, int fSK, int fBK, int fHC, int fMM, int int * pLits = ABC_CALLOC( int, 2*nVars+10 ); memcpy( pLits, pLitsI, sizeof(int)*2*nVars ); for ( i = 1; i < nVars; i++ ) - for ( k = 1; k < nVars; k++ ) + for ( k = nVars - 1; k >= 1; k-- ) if ( pStore[i][k] >= 0 ) Gia_ManGenPrefix( p, &pLits[2*k], &pLits[2*k+1], pLits[2*pStore[i][k]], pLits[2*pStore[i][k]+1] ); if ( fCarries ) diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 8d95d60b4..11d90c4fc 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -35606,13 +35606,16 @@ int Abc_CommandAbc9SaveAig( Abc_Frame_t * pAbc, int argc, char ** argv ) goto usage; } } + if ( fClear ) + { + Gia_ManStopP( &pAbc->pGiaSaved ); + return 0; + } if ( pAbc->pGia == NULL ) { Abc_Print( -1, "Empty network.\n" ); return 1; } - if ( fClear && pAbc->pGiaSaved != NULL ) - Gia_ManStopP( &pAbc->pGiaSaved ); if ( fArea && pAbc->pGiaSaved != NULL && Gia_ManAndNum(pAbc->pGiaSaved) <= Gia_ManAndNum(pAbc->pGia) ) return 0; if ( !fArea && pAbc->pGiaSaved != NULL && !(Gia_ManLevelNum(pAbc->pGiaSaved) > Gia_ManLevelNum(pAbc->pGia) || (Gia_ManLevelNum(pAbc->pGiaSaved) == Gia_ManLevelNum(pAbc->pGia) && Gia_ManAndNum(pAbc->pGiaSaved) > Gia_ManAndNum(pAbc->pGia))) )