summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/aig/gia/giaAiger.c3
-rw-r--r--src/aig/gia/giaIf.c2
-rw-r--r--src/base/abci/abc.c4
3 files changed, 8 insertions, 1 deletions
diff --git a/src/aig/gia/giaAiger.c b/src/aig/gia/giaAiger.c
index 6457927b..eaad7dc9 100644
--- a/src/aig/gia/giaAiger.c
+++ b/src/aig/gia/giaAiger.c
@@ -663,7 +663,8 @@ Gia_Man_t * Gia_AigerReadFromMemory( char * pContents, int nFileSize, int fSkipS
int i, nRegs;
pCur++;
pCurTemp = pCur + Gia_AigerReadInt(pCur) + 4; pCur += 4;
- nRegs = Gia_AigerReadInt(pCur); pCur += 4;
+ //nRegs = Gia_AigerReadInt(pCur); pCur += 4;
+ nRegs = (pCurTemp - pCur)/4;
pNew->vRegClasses = Vec_IntAlloc( nRegs );
for ( i = 0; i < nRegs; i++ )
Vec_IntPush( pNew->vRegClasses, Gia_AigerReadInt(pCur) ), pCur += 4;
diff --git a/src/aig/gia/giaIf.c b/src/aig/gia/giaIf.c
index e295bdbb..3ba43803 100644
--- a/src/aig/gia/giaIf.c
+++ b/src/aig/gia/giaIf.c
@@ -2074,6 +2074,8 @@ Gia_Man_t * Gia_ManPerformMappingInt( Gia_Man_t * p, If_Par_t * pPars )
If_Man_t * pIfMan;
assert( pPars->pTimesArr == NULL );
assert( pPars->pTimesReq == NULL );
+ ABC_FREE( p->pCellStr );
+ Vec_IntFreeP( &p->vConfigs );
// disable cut minimization when GIA strucure is needed
if ( !pPars->fDelayOpt && !pPars->fDelayOptLut && !pPars->fDsdBalance && !pPars->fUserRecLib && !pPars->fDeriveLuts && !pPars->fUseDsd && !pPars->fUseTtPerm )
pPars->fCutMin = 0;
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index e91670f5..de338264 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -26961,7 +26961,11 @@ int Abc_CommandAbc9Strash( Abc_Frame_t * pAbc, int argc, char ** argv )
// printf( "Rehashed the current AIG.\n" );
}
if ( !(fCollapse && pAbc->pGia->pAigExtra) )
+ {
Gia_ManTransferTiming( pTemp, pAbc->pGia );
+ pAbc->pGia->vConfigs = pTemp->vConfigs; pTemp->vConfigs = NULL;
+ pAbc->pGia->pCellStr = pTemp->pCellStr; pTemp->pCellStr = NULL;
+ }
Abc_FrameUpdateGia( pAbc, pTemp );
return 0;