diff options
| -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; |
