diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-08-27 17:57:52 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2003-08-27 17:57:52 -0300 |
commit | 885961be1d8e3f703b54d1d19e6c63617cd2ed24 (patch) | |
tree | 806106d34cb9ef81c5bac712ac4317376600e378 /lzio.c | |
parent | b1141427991dea7a96597f2aacdedf243b60decd (diff) | |
download | lua-885961be1d8e3f703b54d1d19e6c63617cd2ed24.tar.gz lua-885961be1d8e3f703b54d1d19e6c63617cd2ed24.tar.bz2 lua-885961be1d8e3f703b54d1d19e6c63617cd2ed24.zip |
reader runs outside core Lua
Diffstat (limited to 'lzio.c')
-rw-r--r-- | lzio.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lzio.c,v 1.25 2003/08/25 19:51:54 roberto Exp roberto $ | 2 | ** $Id: lzio.c,v 1.26 2003/08/25 20:00:50 roberto Exp roberto $ |
3 | ** a generic input stream interface | 3 | ** a generic input stream interface |
4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
5 | */ | 5 | */ |
@@ -13,12 +13,17 @@ | |||
13 | 13 | ||
14 | #include "llimits.h" | 14 | #include "llimits.h" |
15 | #include "lmem.h" | 15 | #include "lmem.h" |
16 | #include "lstate.h" | ||
16 | #include "lzio.h" | 17 | #include "lzio.h" |
17 | 18 | ||
18 | 19 | ||
19 | int luaZ_fill (ZIO *z) { | 20 | int luaZ_fill (ZIO *z) { |
20 | size_t size; | 21 | size_t size; |
21 | const char *buff = z->reader(z->L, z->data, &size); | 22 | lua_State *L = z->L; |
23 | const char *buff; | ||
24 | lua_unlock(L); | ||
25 | buff = z->reader(L, z->data, &size); | ||
26 | lua_lock(L); | ||
22 | if (buff == NULL || size == 0) return EOZ; | 27 | if (buff == NULL || size == 0) return EOZ; |
23 | z->n = size - 1; | 28 | z->n = size - 1; |
24 | z->p = buff; | 29 | z->p = buff; |