diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-05-14 19:55:40 +0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-05-14 19:55:40 +0700 |
commit | 675437b214074d41fc43448ecb99d55e5fa9dccf (patch) | |
tree | e42cab30dfea16e58d794c79dba46e1f91577616 /src/base | |
parent | e37fb952da8ca362af99c9dec5e83ad04dc82647 (diff) | |
download | abc-675437b214074d41fc43448ecb99d55e5fa9dccf.tar.gz abc-675437b214074d41fc43448ecb99d55e5fa9dccf.tar.bz2 abc-675437b214074d41fc43448ecb99d55e5fa9dccf.zip |
Preventing 'show' from unmapping the network.
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/abc/abcShow.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/base/abc/abcShow.c b/src/base/abc/abcShow.c index 4b8fae49..2b7370ae 100644 --- a/src/base/abc/abcShow.c +++ b/src/base/abc/abcShow.c @@ -179,25 +179,23 @@ void Abc_NodeShowCut( Abc_Obj_t * pNode, int nNodeSizeMax, int nConeSizeMax ) SeeAlso [] ***********************************************************************/ -void Abc_NtkShow( Abc_Ntk_t * pNtk, int fGateNames, int fSeq, int fUseReverse ) +void Abc_NtkShow( Abc_Ntk_t * pNtk0, int fGateNames, int fSeq, int fUseReverse ) { FILE * pFile; + Abc_Ntk_t * pNtk; Abc_Obj_t * pNode; Vec_Ptr_t * vNodes; char FileNameDot[200]; int i; - assert( Abc_NtkIsStrash(pNtk) || Abc_NtkIsLogic(pNtk) ); - if ( Abc_NtkIsStrash(pNtk) && Abc_NtkGetChoiceNum(pNtk) ) + assert( Abc_NtkIsStrash(pNtk0) || Abc_NtkIsLogic(pNtk0) ); + if ( Abc_NtkIsStrash(pNtk0) && Abc_NtkGetChoiceNum(pNtk0) ) { printf( "Temporarily visualization of AIGs with choice nodes is disabled.\n" ); return; } - // convert to logic SOP - if ( Abc_NtkIsLogic(pNtk) ) - Abc_NtkToSop( pNtk, 0 ); // create the file name - Abc_ShowGetFileName( pNtk->pName, FileNameDot ); + Abc_ShowGetFileName( pNtk0->pName, FileNameDot ); // check that the file can be opened if ( (pFile = fopen( FileNameDot, "w" )) == NULL ) { @@ -206,6 +204,12 @@ void Abc_NtkShow( Abc_Ntk_t * pNtk, int fGateNames, int fSeq, int fUseReverse ) } fclose( pFile ); + + // convert to logic SOP + pNtk = Abc_NtkDup( pNtk0 ); + if ( Abc_NtkIsLogic(pNtk) && !Abc_NtkHasMapping(pNtk) ) + Abc_NtkToSop( pNtk, 0 ); + // collect all nodes in the network vNodes = Vec_PtrAlloc( 100 ); Abc_NtkForEachObj( pNtk, pNode, i ) @@ -219,6 +223,7 @@ void Abc_NtkShow( Abc_Ntk_t * pNtk, int fGateNames, int fSeq, int fUseReverse ) // visualize the file Abc_ShowFile( FileNameDot ); + Abc_NtkDelete( pNtk ); } |