summaryrefslogtreecommitdiffstats
path: root/src/aig/gia
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-04-19 23:40:17 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-04-19 23:40:17 -0700
commit85ea8e95c6ffed210b63d88da8bba62a176e2a2a (patch)
treef22ffaadd4f53e0e09aa70f32dfe71b3abb58ce1 /src/aig/gia
parent30cfee7d1971dce04f70ced150c02a33f91e5fd8 (diff)
downloadabc-85ea8e95c6ffed210b63d88da8bba62a176e2a2a.tar.gz
abc-85ea8e95c6ffed210b63d88da8bba62a176e2a2a.tar.bz2
abc-85ea8e95c6ffed210b63d88da8bba62a176e2a2a.zip
Fixing the way packing information is written.
Diffstat (limited to 'src/aig/gia')
-rw-r--r--src/aig/gia/giaAigerExt.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/aig/gia/giaAigerExt.c b/src/aig/gia/giaAigerExt.c
index 250382cd..f7781f5d 100644
--- a/src/aig/gia/giaAigerExt.c
+++ b/src/aig/gia/giaAigerExt.c
@@ -301,17 +301,20 @@ Vec_Str_t * Gia_AigerWriteMappingDoc( Gia_Man_t * p )
***********************************************************************/
Vec_Int_t * Gia_AigerReadPacking( unsigned char ** ppPos, int nSize )
{
- Vec_Int_t * vPacking = Vec_IntStart( nSize/4 );
+ Vec_Int_t * vPacking = Vec_IntAlloc( nSize/4 );
+ int i;
assert( nSize % 4 == 0 );
- memcpy( Vec_IntArray(vPacking), *ppPos, nSize );
- *ppPos += nSize;
+ for ( i = 0; i < nSize/4; i++, *ppPos += 4 )
+ Vec_IntPush( vPacking, Gia_AigerReadInt( *ppPos ) );
return vPacking;
}
Vec_Str_t * Gia_WritePacking( Vec_Int_t * vPacking )
{
- Vec_Str_t * vBuffer = Vec_StrStart( 4*Vec_IntSize(vPacking) );
- memcpy( Vec_StrArray(vBuffer), Vec_IntArray(vPacking), 4*Vec_IntSize(vPacking) );
- return vBuffer;
+ unsigned char * pBuffer = ABC_ALLOC( unsigned char, 4*Vec_IntSize(vPacking) );
+ int i, Entry, nSize = 0;
+ Vec_IntForEachEntry( vPacking, Entry, i )
+ Gia_AigerWriteInt( pBuffer + 4 * nSize++, Entry );
+ return Vec_StrAllocArray( (char *)pBuffer, 4*Vec_IntSize(vPacking) );
}
////////////////////////////////////////////////////////////////////////