diff options
author | daurnimator <quae@daurnimator.com> | 2017-06-09 15:25:05 +1000 |
---|---|---|
committer | daurnimator <quae@daurnimator.com> | 2017-06-09 16:18:09 +1000 |
commit | b01bf7ef940503e373d59c912c9952582a608a77 (patch) | |
tree | 6304d51d53f9b72940fe90d78e8100b86213e3bd /src | |
parent | d47c82caf02bd21d05700c48a52d8be69db9ad7d (diff) | |
download | fengari-b01bf7ef940503e373d59c912c9952582a608a77.tar.gz fengari-b01bf7ef940503e373d59c912c9952582a608a77.tar.bz2 fengari-b01bf7ef940503e373d59c912c9952582a608a77.zip |
src/lzio.js: Introduce luaZ_resetbuffer
Diffstat (limited to 'src')
-rw-r--r-- | src/llex.js | 15 | ||||
-rw-r--r-- | src/lzio.js | 16 |
2 files changed, 15 insertions, 16 deletions
diff --git a/src/llex.js b/src/llex.js index 4c2be8c..c110a7a 100644 --- a/src/llex.js +++ b/src/llex.js @@ -320,10 +320,7 @@ const read_long_string = function(ls, seminfo, sep) { case char['\n']: case char['\r']: { save(ls, char['\n']); inclinenumber(ls); - if (!seminfo) { - ls.buff.n = 0; - ls.buff.buffer = []; - } + if (!seminfo) lzio.luaZ_resetbuffer(ls.buff); break; } default: { @@ -468,9 +465,7 @@ const isreserved = function(w) { }; const llex = function(ls, seminfo) { - ls.buff.n = 0; - ls.buff.buffer = []; - + lzio.luaZ_resetbuffer(ls.buff); for (;;) { assert(typeof ls.current == "number"); switch (ls.current) { @@ -489,12 +484,10 @@ const llex = function(ls, seminfo) { next(ls); if (ls.current === char['[']) { /* long comment? */ let sep = skip_sep(ls); - ls.buff.n = 0; /* 'skip_sep' may dirty the buffer */ - ls.buff.buffer = []; + lzio.luaZ_resetbuffer(ls.buff); /* 'skip_sep' may dirty the buffer */ if (sep >= 0) { read_long_string(ls, null, sep); /* skip long comment */ - ls.buff.n = 0; /* previous call may dirty the buff. */ - ls.buff.buffer = []; + lzio.luaZ_resetbuffer(ls.buff); /* previous call may dirty the buff. */ break; } } diff --git a/src/lzio.js b/src/lzio.js index 919ed44..72969d4 100644 --- a/src/lzio.js +++ b/src/lzio.js @@ -10,6 +10,11 @@ class MBuffer { } } +const luaZ_resetbuffer = function(buff) { + buff.n = 0; + buff.buffer = []; +}; + class ZIO { constructor(L, reader, data) { this.L = L; /* Lua state (for reader) */ @@ -74,8 +79,9 @@ const luaZ_read = function(z, b, b_offset, n) { return 0; }; -module.exports.EOZ = EOZ; -module.exports.luaZ_fill = luaZ_fill; -module.exports.luaZ_read = luaZ_read; -module.exports.MBuffer = MBuffer; -module.exports.ZIO = ZIO; +module.exports.EOZ = EOZ; +module.exports.luaZ_fill = luaZ_fill; +module.exports.luaZ_read = luaZ_read; +module.exports.luaZ_resetbuffer = luaZ_resetbuffer; +module.exports.MBuffer = MBuffer; +module.exports.ZIO = ZIO; |