summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2012-05-14 19:55:40 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2012-05-14 19:55:40 +0700
commit675437b214074d41fc43448ecb99d55e5fa9dccf (patch)
treee42cab30dfea16e58d794c79dba46e1f91577616 /src
parente37fb952da8ca362af99c9dec5e83ad04dc82647 (diff)
downloadabc-675437b214074d41fc43448ecb99d55e5fa9dccf.tar.gz
abc-675437b214074d41fc43448ecb99d55e5fa9dccf.tar.bz2
abc-675437b214074d41fc43448ecb99d55e5fa9dccf.zip
Preventing 'show' from unmapping the network.
Diffstat (limited to 'src')
-rw-r--r--src/base/abc/abcShow.c19
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 );
}