Fixing the way packing information is written.

This commit is contained in:
Alan Mishchenko 2013-04-19 23:40:17 -07:00
parent 30cfee7d19
commit 85ea8e95c6
1 changed files with 9 additions and 6 deletions

View File

@ -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 * 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 ); assert( nSize % 4 == 0 );
memcpy( Vec_IntArray(vPacking), *ppPos, nSize ); for ( i = 0; i < nSize/4; i++, *ppPos += 4 )
*ppPos += nSize; Vec_IntPush( vPacking, Gia_AigerReadInt( *ppPos ) );
return vPacking; return vPacking;
} }
Vec_Str_t * Gia_WritePacking( Vec_Int_t * vPacking ) Vec_Str_t * Gia_WritePacking( Vec_Int_t * vPacking )
{ {
Vec_Str_t * vBuffer = Vec_StrStart( 4*Vec_IntSize(vPacking) ); unsigned char * pBuffer = ABC_ALLOC( unsigned char, 4*Vec_IntSize(vPacking) );
memcpy( Vec_StrArray(vBuffer), Vec_IntArray(vPacking), 4*Vec_IntSize(vPacking) ); int i, Entry, nSize = 0;
return vBuffer; Vec_IntForEachEntry( vPacking, Entry, i )
Gia_AigerWriteInt( pBuffer + 4 * nSize++, Entry );
return Vec_StrAllocArray( (char *)pBuffer, 4*Vec_IntSize(vPacking) );
} }
//////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////