Blame view

buildroot/buildroot-2016.08.1/package/lua/5.1.5/0012-fix-reader-at-eoz.patch 1.11 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
  When loading a file, Lua may call the reader function again after it returned end of input.
  
  Fetch from: http://www.lua.org/bugs.html#5.1.5-2
  
  Signed-off-by: Francois Perrad <francois.perrad@gadz.org>
  
  Index: b/src/lzio.c
  ===================================================================
  --- a/src/lzio.c
  +++ b/src/lzio.c
  @@ -22,10 +22,14 @@
     size_t size;
     lua_State *L = z->L;
     const char *buff;
  +  if (z->eoz) return EOZ;
     lua_unlock(L);
     buff = z->reader(L, z->data, &size);
     lua_lock(L);
  -  if (buff == NULL || size == 0) return EOZ;
  +  if (buff == NULL || size == 0) {
  +    z->eoz = 1;  /* avoid calling reader function next time */
  +    return EOZ;
  +  }
     z->n = size - 1;
     z->p = buff;
     return char2int(*(z->p++));
  @@ -51,6 +55,7 @@
     z->data = data;
     z->n = 0;
     z->p = NULL;
  +  z->eoz = 0;
   }
   
   
  Index: b/src/lzio.h
  ===================================================================
  --- a/src/lzio.h
  +++ b/src/lzio.h
  @@ -59,6 +59,7 @@
     lua_Reader reader;
     void* data;			/* additional data */
     lua_State *L;			/* Lua state (for reader) */
  +  int eoz;			/* true if reader has no more data */
   };