diff options
author | Mathias Soeken <mathias.soeken@gmail.com> | 2016-12-07 10:08:44 +0100 |
---|---|---|
committer | Mathias Soeken <mathias.soeken@gmail.com> | 2016-12-07 10:08:44 +0100 |
commit | 5af44731bff0061c724912cf76e86dddbb4f2c7a (patch) | |
tree | 77ddddb7a79d6424210a7a6b8e8f9649d845d9ba /src/map | |
parent | f9b7e929045f348ef6ccff9024de3be0c35c2eec (diff) | |
parent | 77ef610919b09ed0f8cb0df50e48a7f9c4b9c553 (diff) | |
download | abc-5af44731bff0061c724912cf76e86dddbb4f2c7a.tar.gz abc-5af44731bff0061c724912cf76e86dddbb4f2c7a.tar.bz2 abc-5af44731bff0061c724912cf76e86dddbb4f2c7a.zip |
Merged alanmi/abc into default
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/mio/mio.h | 1 | ||||
-rw-r--r-- | src/map/mio/mioApi.c | 1 | ||||
-rw-r--r-- | src/map/mio/mioRead.c | 3 | ||||
-rw-r--r-- | src/map/scl/sclLiberty.c | 4 |
4 files changed, 9 insertions, 0 deletions
diff --git a/src/map/mio/mio.h b/src/map/mio/mio.h index f45cce89..6e16a57f 100644 --- a/src/map/mio/mio.h +++ b/src/map/mio/mio.h @@ -112,6 +112,7 @@ extern char * Mio_LibraryReadName ( Mio_Library_t * pLib ); extern int Mio_LibraryReadGateNum ( Mio_Library_t * pLib ); extern Mio_Gate_t * Mio_LibraryReadGates ( Mio_Library_t * pLib ); extern Mio_Gate_t ** Mio_LibraryReadGateArray ( Mio_Library_t * pLib ); +extern Mio_Gate_t * Mio_LibraryReadGateById ( Mio_Library_t * pLib, int iD ); extern Mio_Gate_t * Mio_LibraryReadGateByName ( Mio_Library_t * pLib, char * pName, char * pOutName ); extern char * Mio_LibraryReadSopByName ( Mio_Library_t * pLib, char * pName ); extern Mio_Gate_t * Mio_LibraryReadGateByTruth( Mio_Library_t * pLib, word t ); diff --git a/src/map/mio/mioApi.c b/src/map/mio/mioApi.c index bb601a05..38e754a6 100644 --- a/src/map/mio/mioApi.c +++ b/src/map/mio/mioApi.c @@ -44,6 +44,7 @@ char * Mio_LibraryReadName ( Mio_Library_t * pLib ) { retur int Mio_LibraryReadGateNum ( Mio_Library_t * pLib ) { return pLib->nGates; } Mio_Gate_t * Mio_LibraryReadGates ( Mio_Library_t * pLib ) { return pLib->pGates; } Mio_Gate_t ** Mio_LibraryReadGateArray ( Mio_Library_t * pLib ) { return pLib->ppGatesName;} +Mio_Gate_t * Mio_LibraryReadGateById ( Mio_Library_t * pLib, int Id ) { assert( pLib->ppGates0[Id]->Cell == Id ); return pLib->ppGates0[Id];} Mio_Gate_t * Mio_LibraryReadBuf ( Mio_Library_t * pLib ) { return pLib->pGateBuf; } Mio_Gate_t * Mio_LibraryReadInv ( Mio_Library_t * pLib ) { return pLib->pGateInv; } Mio_Gate_t * Mio_LibraryReadConst0 ( Mio_Library_t * pLib ) { return pLib->pGate0; } diff --git a/src/map/mio/mioRead.c b/src/map/mio/mioRead.c index b170256d..798458f3 100644 --- a/src/map/mio/mioRead.c +++ b/src/map/mio/mioRead.c @@ -586,7 +586,10 @@ void Mio_LibrarySortGates( Mio_Library_t * pLib ) int i = 0; ppGates = ABC_ALLOC( Mio_Gate_t *, pLib->nGates ); Mio_LibraryForEachGate( pLib, pGate ) + { + pGate->Cell = i; ppGates[i++] = pGate; + } assert( i == pLib->nGates ); // sort gates by name pLib->ppGates0 = ABC_ALLOC( Mio_Gate_t *, pLib->nGates ); diff --git a/src/map/scl/sclLiberty.c b/src/map/scl/sclLiberty.c index 2b2e77e9..50e69d08 100644 --- a/src/map/scl/sclLiberty.c +++ b/src/map/scl/sclLiberty.c @@ -1614,10 +1614,14 @@ Vec_Str_t * Scl_LibertyReadSclStr( Scl_Tree_t * p, int fVerbose, int fVeryVerbos Vec_Flt_t * vArray; assert( Vec_PtrSize(vTemples) % 4 == 0 ); Vec_PtrForEachEntry( Vec_Flt_t *, vTemples, vArray, i ) + { + if ( vArray == NULL ) + continue; if ( i % 4 == 0 ) ABC_FREE( vArray ); else if ( i % 4 == 2 || i % 4 == 3 ) Vec_FltFree( vArray ); + } Vec_PtrFree( vTemples ); } if ( fVerbose ) |