aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Str.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/Str.c b/Str.c
index 9977c2d..f6b7670 100644
--- a/Str.c
+++ b/Str.c
@@ -282,7 +282,11 @@ void
Strgrow(Str x)
{
int newlen, addlen;
- addlen = x->area_size / 5;
+
+ if (x->area_size < 8192)
+ addlen = x->area_size;
+ else
+ addlen = x->area_size / 2;
if (addlen < INITIAL_STR_SIZE)
addlen = INITIAL_STR_SIZE;
newlen = x->area_size + addlen;