diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lj_buf.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/src/lj_buf.c b/src/lj_buf.c index ae2ccd82..702c5a40 100644 --- a/src/lj_buf.c +++ b/src/lj_buf.c | |||
| @@ -92,10 +92,8 @@ void LJ_FASTCALL lj_buf_shrink(lua_State *L, SBuf *sb) | |||
| 92 | char *b = sb->b; | 92 | char *b = sb->b; |
| 93 | MSize osz = (MSize)(sb->e - b); | 93 | MSize osz = (MSize)(sb->e - b); |
| 94 | if (osz > 2*LJ_MIN_SBUF) { | 94 | if (osz > 2*LJ_MIN_SBUF) { |
| 95 | MSize n = (MSize)(sb->w - b); | ||
| 96 | b = lj_mem_realloc(L, b, osz, (osz >> 1)); | 95 | b = lj_mem_realloc(L, b, osz, (osz >> 1)); |
| 97 | sb->b = b; | 96 | sb->w = sb->b = b; /* Not supposed to keep data across shrinks. */ |
| 98 | sb->w = b + n; | ||
| 99 | sb->e = b + (osz >> 1); | 97 | sb->e = b + (osz >> 1); |
| 100 | } | 98 | } |
| 101 | lj_assertG_(G(sbufL(sb)), !sbufisext(sb), "YAGNI shrink SBufExt"); | 99 | lj_assertG_(G(sbufL(sb)), !sbufisext(sb), "YAGNI shrink SBufExt"); |
