summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/base/abc/abcLib.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/base/abc/abcLib.c b/src/base/abc/abcLib.c
index 788b0fe0..6623b872 100644
--- a/src/base/abc/abcLib.c
+++ b/src/base/abc/abcLib.c
@@ -134,12 +134,20 @@ Abc_Des_t * Abc_DesDup( Abc_Des_t * p )
{
Abc_Des_t * pNew;
Abc_Ntk_t * pTemp;
- int i;
+ Abc_Obj_t * pObj;
+ int i, k;
pNew = Abc_DesCreate( p->pName );
Vec_PtrForEachEntry( Abc_Ntk_t *, p->vModules, pTemp, i )
Abc_DesAddModel( pNew, Abc_NtkDup(pTemp) );
Vec_PtrForEachEntry( Abc_Ntk_t *, p->vTops, pTemp, i )
Vec_PtrPush( pNew->vTops, pTemp->pCopy );
+ Vec_PtrForEachEntry( Abc_Ntk_t *, p->vModules, pTemp, i )
+ pTemp->pCopy->pAltView = pTemp->pAltView ? pTemp->pAltView->pCopy : NULL;
+ // update box models
+ Vec_PtrForEachEntry( Abc_Ntk_t *, p->vModules, pTemp, i )
+ Abc_NtkForEachBox( pTemp, pObj, k )
+ if ( Abc_ObjIsWhitebox(pObj) || Abc_ObjIsBlackbox(pObj) )
+ pObj->pCopy->pData = Abc_ObjModel(pObj)->pCopy;
return pNew;
}