diff options
-rw-r--r-- | src/aig/gia/giaAiger.c | 13 | ||||
-rw-r--r-- | src/aig/gia/giaSweep.c | 6 | ||||
-rw-r--r-- | src/misc/tim/timMan.c | 4 |
3 files changed, 17 insertions, 6 deletions
diff --git a/src/aig/gia/giaAiger.c b/src/aig/gia/giaAiger.c index 0e9172c8..29bcddfa 100644 --- a/src/aig/gia/giaAiger.c +++ b/src/aig/gia/giaAiger.c @@ -25,6 +25,7 @@ ABC_NAMESPACE_IMPL_START +#define XAIG_VERBOSE 0 //////////////////////////////////////////////////////////////////////// /// DECLARATIONS /// @@ -495,7 +496,7 @@ Gia_Man_t * Gia_AigerReadFromMemory( char * pContents, int nFileSize, int fSkipS // check if there are other types of information to read if ( pCur + 1 < (unsigned char *)pContents + nFileSize && *pCur == 'c' ) { - int fVerbose = 0; + int fVerbose = XAIG_VERBOSE; Vec_Str_t * vStr; unsigned char * pCurTemp; pCur++; @@ -967,7 +968,7 @@ Vec_Str_t * Gia_AigerWriteIntoMemoryStrPart( Gia_Man_t * p, Vec_Int_t * vCis, Ve ***********************************************************************/ void Gia_AigerWrite( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, int fCompact ) { - int fVerbose = 0; + int fVerbose = XAIG_VERBOSE; FILE * pFile; Gia_Man_t * p; Gia_Obj_t * pObj; @@ -996,9 +997,11 @@ void Gia_AigerWrite( Gia_Man_t * pInit, char * pFileName, int fWriteSymbols, int { // printf( "Gia_AigerWrite(): Normalizing AIG for writing.\n" ); p = Gia_ManDupNormalize( pInit ); - p->pManTime = pInit->pManTime; pInit->pManTime = NULL; - p->vNamesIn = pInit->vNamesIn; pInit->vNamesIn = NULL; - p->vNamesOut = pInit->vNamesOut; pInit->vNamesOut = NULL; + p->pManTime = pInit->pManTime; pInit->pManTime = NULL; + p->vNamesIn = pInit->vNamesIn; pInit->vNamesIn = NULL; + p->vNamesOut = pInit->vNamesOut; pInit->vNamesOut = NULL; + p->pAigExtra = pInit->pAigExtra; pInit->pAigExtra = NULL; + p->nAnd2Delay = pInit->nAnd2Delay; pInit->nAnd2Delay = 0; } else p = pInit; diff --git a/src/aig/gia/giaSweep.c b/src/aig/gia/giaSweep.c index ac52fe9c..4ef8725e 100644 --- a/src/aig/gia/giaSweep.c +++ b/src/aig/gia/giaSweep.c @@ -326,6 +326,12 @@ Gia_Man_t * Gia_ManFraigSweep( Gia_Man_t * p, void * pPars ) pTemp->pManTime = NULL; pTemp->pAigExtra = NULL; Gia_ManStop( pTemp ); + // normalize the result + pNew = Gia_ManDupNormalize( pTemp = pNew ); + pNew->pManTime = pTemp->pManTime; pTemp->pManTime = NULL; + pNew->pAigExtra = pTemp->pAigExtra; pTemp->pAigExtra = NULL; + pNew->nAnd2Delay = pTemp->nAnd2Delay; pTemp->nAnd2Delay = 0; + Gia_ManStop( pTemp ); // return the result assert( pNew->pManTime != NULL ); assert( pNew->pAigExtra != NULL ); diff --git a/src/misc/tim/timMan.c b/src/misc/tim/timMan.c index 50054f53..4825ed71 100644 --- a/src/misc/tim/timMan.c +++ b/src/misc/tim/timMan.c @@ -188,7 +188,9 @@ Tim_Man_t * Tim_ManTrim( Tim_Man_t * p, Vec_Int_t * vBoxPres ) pNew = Tim_ManStart( nNewCis, nNewCos ); // copy box connectivity information memcpy( pNew->pCis, p->pCis, sizeof(Tim_Obj_t) * Tim_ManPiNum(p) ); - memcpy( pNew->pCos, p->pCos, sizeof(Tim_Obj_t) * Tim_ManPoNum(p) ); + memcpy( pNew->pCos + nNewCos - Tim_ManPoNum(p), + p->pCos + Tim_ManCoNum(p) - Tim_ManPoNum(p), + sizeof(Tim_Obj_t) * Tim_ManPoNum(p) ); // duplicate delay tables if ( Tim_ManDelayTableNum(p) > 0 ) { |