From e52d3a0c16de062eb7d5558e3ffe7ee006443065 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Fri, 3 Apr 2015 16:37:04 +0700 Subject: Bug fix in handling constants in the updated 'sop' command. --- src/base/abc/abcFunc.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'src/base') diff --git a/src/base/abc/abcFunc.c b/src/base/abc/abcFunc.c index 3c3e0f69..500be62a 100644 --- a/src/base/abc/abcFunc.c +++ b/src/base/abc/abcFunc.c @@ -216,22 +216,17 @@ char * Abc_ConvertBddToSop( Mem_Flex_t * pMan, DdManager * dd, DdNode * bFuncOn, assert( bFuncOn == bFuncOnDc || Cudd_bddLeq( dd, bFuncOn, bFuncOnDc ) ); if ( Cudd_IsConstant(bFuncOn) || Cudd_IsConstant(bFuncOnDc) ) { - if ( fMode == -1 ) // if the phase is not known, write constant 1 - fMode = 1; - Vec_StrFill( vCube, nFanins, '-' ); - Vec_StrPush( vCube, '\0' ); if ( pMan ) pSop = Mem_FlexEntryFetch( pMan, nFanins + 4 ); else pSop = ABC_ALLOC( char, nFanins + 4 ); - if ( bFuncOn == Cudd_ReadOne(dd) ) - sprintf( pSop, "%s %d\n", vCube->pArray, fMode ); - else - sprintf( pSop, "%s %d\n", vCube->pArray, !fMode ); + pSop[0] = ' '; + pSop[1] = '0' + (int)(bFuncOn == Cudd_ReadOne(dd)); + pSop[2] = '\n'; + pSop[3] = '\0'; return pSop; } - if ( fMode == -1 ) { // try both phases assert( fAllPrimes == 0 ); -- cgit v1.2.3