diff options
Diffstat (limited to 'src/lib_buffer.c')
| -rw-r--r-- | src/lib_buffer.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/lib_buffer.c b/src/lib_buffer.c index e45555963..e21362b83 100644 --- a/src/lib_buffer.c +++ b/src/lib_buffer.c | |||
| @@ -38,15 +38,14 @@ LJLIB_CF(buffer_encode) | |||
| 38 | LJLIB_CF(buffer_decode) | 38 | LJLIB_CF(buffer_decode) |
| 39 | { | 39 | { |
| 40 | GCstr *str = lj_lib_checkstr(L, 1); | 40 | GCstr *str = lj_lib_checkstr(L, 1); |
| 41 | const char *p = strdata(str); | 41 | char *p = (char *)strdata(str); |
| 42 | SBuf sb; | 42 | SBuf sb; |
| 43 | StrBuf sbuf; | 43 | StrBuf sbuf; |
| 44 | setsbufL(&sb, L); | 44 | setsbufL(&sb, L); |
| 45 | setmref(sb.b, p); | 45 | sb.b = p; |
| 46 | setmref(sb.p, p + str->len); | 46 | sb.w = sb.e = p + str->len; |
| 47 | setmref(sb.e, p + str->len); | ||
| 48 | sbuf.sb = &sb; | 47 | sbuf.sb = &sb; |
| 49 | sbuf.r = (char *)p; | 48 | sbuf.r = p; |
| 50 | setnilV(L->top++); | 49 | setnilV(L->top++); |
| 51 | lj_serialize_get(&sbuf, L->top-1); | 50 | lj_serialize_get(&sbuf, L->top-1); |
| 52 | lj_gc_check(L); | 51 | lj_gc_check(L); |
