- int bytes = model->brush.num_pvsclusterbytes;
- bytes = min(bytes, pvsbufferlength);
+ size_t bytes = model->brush.num_pvsclusterbytes;
+
+ if (!*pvsbuffer || bytes != Mem_Size(*pvsbuffer))
+ {
+// Con_Printf("^4FatPVS: allocating a%s ^4buffer in pool %s, old size %zu new size %zu\n", *pvsbuffer == NULL ? " ^5NEW" : "", pool->name, *pvsbuffer != NULL ? Mem_Size(*pvsbuffer) : 0, bytes);
+ if (*pvsbuffer)
+ Mem_Free(*pvsbuffer); // don't reuse stale data when the worldmodel changes
+ *pvsbuffer = Mem_AllocType(pool, unsigned char, bytes);
+ }
+