示例#1
0
//----------------------------------------------------------------//
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;
	}
}
示例#2
0
//----------------------------------------------------------------//
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;
}
示例#3
0
文件: bitset.c 项目: 1310701102/sl4a
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;
}
示例#4
0
文件: bitset.c 项目: 1310701102/sl4a
/* 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;
}