shithub: sl

ref: c8ff8d599f84e0209ed0c37e92b6e05f1d06995f
dir: /src/bitvector.c/

View raw version
#include "sl.h"

u32int *
bitvector_resize(u32int *b, u64int oldsz, u64int newsz, bool zero)
{
	u32int *p;
	usize sz = ((newsz+31)>>5) * sizeof(u32int);
	p = MEM_REALLOC(b, sz);
	if(p == nil)
		return nil;
	if(zero && newsz > oldsz){
		usize osz = ((oldsz+31)>>5) * sizeof(u32int);
		memset(&p[osz/sizeof(u32int)], 0, sz-osz);
	}
	return p;
}