From: Ralph Corderoy Date: Fri, 28 Apr 2017 21:42:46 +0000 (+0100) Subject: bvector_copy: Use bvector's tiny storage if big enough. X-Git-Url: https://diplodocus.org/git/nmh/commitdiff_plain/24867fa77c867a444670cf484d32188ae0808777 bvector_copy: Use bvector's tiny storage if big enough. Otherwise a source bvector that's using tiny storage has its bits duplicated into a malloc'd area when the destination's tiny storage was sufficient. --- diff --git a/sbr/vector.c b/sbr/vector.c index 7df36187..6afe62aa 100644 --- a/sbr/vector.c +++ b/sbr/vector.c @@ -79,7 +79,10 @@ bvector_copy (bvector_t dest, bvector_t src) { if (dest->bits != dest->tiny) free(dest->bits); - dest->bits = mh_xmalloc (bytes); + if (bytes <= sizeof dest->tiny) + dest->bits = dest->tiny; + else + dest->bits = mh_xmalloc (bytes); memcpy (dest->bits, src->bits, bytes); dest->maxsize = src->maxsize; }