From 24867fa77c867a444670cf484d32188ae0808777 Mon Sep 17 00:00:00 2001 From: Ralph Corderoy Date: Fri, 28 Apr 2017 22:42:46 +0100 Subject: [PATCH] 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. --- sbr/vector.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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; } -- 2.56.0