- if (!(mp->msgstats = realloc (mp->msgstats, MSGSTATSIZE(mp, lo, hi)))) {
- advise (NULL, "unable to reallocate message storage");
- return NULL;
+
+ for (i = old_size, v = &mp->msgstats[old_size-1]; i > new_size;
+ --i, --v) {
+ bvector_free (*v);
+ }
+ mp->num_msgstats = MSGSTATNUM (lo, hi);
+ mp->msgstats =
+ mh_xrealloc (mp->msgstats, MSGSTATSIZE(mp));
+ for (i = old_size, v = &mp->msgstats[old_size]; i < new_size;
+ ++i, ++v) {
+ *v = bvector_create (0);