ref: 06a5c4a57ec148d3a965e3a3cce8d370ed47e1b3
dir: /bitvector.c/
#include "flisp.h"
uint32_t *
bitvector_resize(uint32_t *b, uint64_t oldsz, uint64_t newsz, int initzero)
{
uint32_t *p;
size_t sz = ((newsz+31)>>5) * sizeof(uint32_t);
p = MEM_REALLOC(b, sz);
if(p == nil)
return nil;
if(initzero && newsz>oldsz){
size_t osz = ((oldsz+31)>>5) * sizeof(uint32_t);
memset(&p[osz/sizeof(uint32_t)], 0, sz-osz);
}
return p;
}