diff options
-rw-r--r-- | src/lj_buf.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/lj_buf.c b/src/lj_buf.c index 5a03ea6a..cf268af2 100644 --- a/src/lj_buf.c +++ b/src/lj_buf.c | |||
@@ -66,7 +66,7 @@ LJ_NOINLINE char *LJ_FASTCALL lj_buf_more2(SBuf *sb, MSize sz) | |||
66 | lj_err_mem(sbufL(sbx)); | 66 | lj_err_mem(sbufL(sbx)); |
67 | if (len + sz > sbufsz(sbx)) { /* Must grow. */ | 67 | if (len + sz > sbufsz(sbx)) { /* Must grow. */ |
68 | buf_grow((SBuf *)sbx, len + sz); | 68 | buf_grow((SBuf *)sbx, len + sz); |
69 | } else if (sbufxslack(sbx) < (sbufsz(sbx) >> 3)) { | 69 | } else if (sbufiscow(sb) || sbufxslack(sbx) < (sbufsz(sbx) >> 3)) { |
70 | /* Also grow to avoid excessive compactions, if slack < size/8. */ | 70 | /* Also grow to avoid excessive compactions, if slack < size/8. */ |
71 | buf_grow((SBuf *)sbx, sbuflen(sbx) + sz); /* Not sbufxlen! */ | 71 | buf_grow((SBuf *)sbx, sbuflen(sbx) + sz); /* Not sbufxlen! */ |
72 | return sbx->w; | 72 | return sbx->w; |