//----------------------------------------------------------------// void MOCKNetworkStream::AffirmBuffer( u32 newBits ) { if( newBits == 0 ) return; u32 newBufferSize = BIT2BYTE( mBitSize + newBits ); if( newBufferSize > mBufferSize ) { newBufferSize *= 2; byte* newBuffer = ( byte* )malloc( newBufferSize ); if( mBuffer ) { memcpy ( newBuffer, mBuffer, BIT2BYTE( mBitSize ) ); free( mBuffer ); } mBuffer = newBuffer; mBufferSize = newBufferSize; } }
//----------------------------------------------------------------// MOCKNetworkStream* MOCKNetworkStream::Clone() { MOCKNetworkStream* stream = new MOCKNetworkStream(); stream->mBufferSize = mBufferSize; stream->mBuffer = (byte*) malloc( mBufferSize ); stream->mBitSize = mBitSize; stream->mBitPos = 0; memcpy( stream->mBuffer, mBuffer, BIT2BYTE( mBitSize ) ); return stream; }
int addbit(bitset ss, int ibit) { int ibyte = BIT2BYTE(ibit); BYTE mask = BIT2MASK(ibit); if (ss[ibyte] & mask) return 0; /* Bit already set */ ss[ibyte] |= mask; return 1; }
/* Bitset primitives used by the parser generator */ #include "pgenheaders.h" #include "bitset.h" bitset newbitset(int nbits) { int nbytes = NBYTES(nbits); bitset ss = (char *)PyObject_MALLOC(sizeof(BYTE) * nbytes); if (ss == NULL) Py_FatalError("no mem for bitset"); ss += nbytes; while (--nbytes >= 0) *--ss = 0; return ss; } void delbitset(bitset ss) { PyObject_FREE(ss); } int addbit(bitset ss, int ibit) { int ibyte = BIT2BYTE(ibit); BYTE mask = BIT2MASK(ibit); if (ss[ibyte] & mask) return 0; /* Bit already set */ ss[ibyte] |= mask; return 1; } #if 0 /* Now a macro */ int testbit(bitset ss, int ibit) { return (ss[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0; }