aboutsummaryrefslogtreecommitdiff
path: root/src/lj_buf.c
diff options
context:
space:
mode:
authorMike Pall <mike>2022-03-07 09:42:59 +0100
committerMike Pall <mike>2022-03-07 09:42:59 +0100
commitc4adf49204d0263b098d7a7fba7209aec4e77247 (patch)
tree5fd66d8ab448a92b55b18a1c44d72e4935cb2c9a /src/lj_buf.c
parent1d7b5029c5ba36870d25c67524034d452b761d27 (diff)
downloadluajit-c4adf49204d0263b098d7a7fba7209aec4e77247.tar.gz
luajit-c4adf49204d0263b098d7a7fba7209aec4e77247.tar.bz2
luajit-c4adf49204d0263b098d7a7fba7209aec4e77247.zip
Fix string buffer COW handling.
Reported by XmiliaH.
Diffstat (limited to 'src/lj_buf.c')
-rw-r--r--src/lj_buf.c2
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;