From cc548fe9cb117d8f1ac19ccd0049e06b84a6922d Mon Sep 17 00:00:00 2001 From: Rainer Schuetze Date: Sat, 16 Nov 2013 17:35:34 +0100 Subject: [PATCH] fix appenderNewCapacity for curLen == 0, start with minimum of 8. --- std/array.d | 2 ++ 1 file changed, 2 insertions(+) diff --git a/std/array.d b/std/array.d index c30d554c0..4145ca340 100644 --- a/std/array.d +++ b/std/array.d @@ -2454,6 +2454,8 @@ struct Appender(A : T[], T) //ret sugLen: A suggested growth. private size_t appenderNewCapacity(size_t TSizeOf)(size_t curLen, size_t reqLen) @safe pure nothrow { + if(curLen == 0) + return max(reqLen,8); ulong mult = 100 + (1000UL) / (bsr(curLen * TSizeOf) + 1); // limit to doubling the length, we don't want to grow too much if(mult > 200)