From 9539e36bc9590768d0c32654ddb75caab0aa6f82 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Thu, 22 Nov 2018 21:03:36 +0100 Subject: [PATCH] Fixed #195 --- src/tl/tl/tlReuseVector.h | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/src/tl/tl/tlReuseVector.h b/src/tl/tl/tlReuseVector.h index 294e27254..f43698c2c 100644 --- a/src/tl/tl/tlReuseVector.h +++ b/src/tl/tl/tlReuseVector.h @@ -975,20 +975,24 @@ private: value_type *new_start = (value_type *) (new char [sizeof (value_type) * n]); - size_type l = last (); - size_type i = first (); - memcpy ((void *)(new_start + i), (void *)(mp_start + i), (l - i) * sizeof (Value)); + size_type e = 0; - size_type e = size_type (mp_finish - mp_start); + if (mp_start) { + + e = size_type (mp_finish - mp_start); + + size_type l = last (); + size_type i = first (); + memcpy ((void *)(new_start + i), (void *)(mp_start + i), (l - i) * sizeof (Value)); + + delete [] ((char *) mp_start); + + } if (mp_rdata) { mp_rdata->reserve (n); } - if (mp_start) { - delete [] ((char *) mp_start); - } - mp_start = new_start; mp_finish = mp_start + e; mp_capacity = mp_start + n;