diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-02-28 09:25:12 -0300 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-02-28 09:25:12 -0300 |
| commit | 93e28031de81efacb7f84b142f57d5c2cdf4744e (patch) | |
| tree | ed4a1a629e0f23f2404619be44f537533fe0312c /lundump.c | |
| parent | de84b3fecb9eb96f2d65bb754851dba8d815bb6d (diff) | |
| download | lua-93e28031de81efacb7f84b142f57d5c2cdf4744e.tar.gz lua-93e28031de81efacb7f84b142f57d5c2cdf4744e.tar.bz2 lua-93e28031de81efacb7f84b142f57d5c2cdf4744e.zip | |
all chars used in binary dumps are unsigned ('lu_byte')
Diffstat (limited to '')
| -rw-r--r-- | lundump.c | 11 |
1 files changed, 5 insertions, 6 deletions
| @@ -1,5 +1,5 @@ | |||
| 1 | /* | 1 | /* |
| 2 | ** $Id: lundump.c,v 2.26 2014/02/27 16:56:20 roberto Exp roberto $ | 2 | ** $Id: lundump.c,v 2.27 2014/02/27 18:56:15 roberto Exp roberto $ |
| 3 | ** load precompiled Lua chunks | 3 | ** load precompiled Lua chunks |
| 4 | ** See Copyright Notice in lua.h | 4 | ** See Copyright Notice in lua.h |
| 5 | */ | 5 | */ |
| @@ -34,7 +34,6 @@ static l_noret error(LoadState* S, const char* why) | |||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | #define LoadMem(S,b,n,size) LoadBlock(S,b,(n)*(size)) | 36 | #define LoadMem(S,b,n,size) LoadBlock(S,b,(n)*(size)) |
| 37 | #define LoadByte(S) (lu_byte)LoadChar(S) | ||
| 38 | #define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x)) | 37 | #define LoadVar(S,x) LoadMem(S,&x,1,sizeof(x)) |
| 39 | #define LoadVector(S,b,n,size) LoadMem(S,b,n,size) | 38 | #define LoadVector(S,b,n,size) LoadMem(S,b,n,size) |
| 40 | 39 | ||
| @@ -47,9 +46,9 @@ static void LoadBlock(LoadState* S, void* b, size_t size) | |||
| 47 | if (luaZ_read(S->Z,b,size)!=0) error(S,"truncated"); | 46 | if (luaZ_read(S->Z,b,size)!=0) error(S,"truncated"); |
| 48 | } | 47 | } |
| 49 | 48 | ||
| 50 | static int LoadChar(LoadState* S) | 49 | static lu_byte LoadByte(LoadState* S) |
| 51 | { | 50 | { |
| 52 | char x; | 51 | lu_byte x; |
| 53 | LoadVar(S,x); | 52 | LoadVar(S,x); |
| 54 | return x; | 53 | return x; |
| 55 | } | 54 | } |
| @@ -110,14 +109,14 @@ static void LoadConstants(LoadState* S, Proto* f) | |||
| 110 | for (i=0; i<n; i++) | 109 | for (i=0; i<n; i++) |
| 111 | { | 110 | { |
| 112 | TValue* o=&f->k[i]; | 111 | TValue* o=&f->k[i]; |
| 113 | int t=LoadChar(S); | 112 | int t=LoadByte(S); |
| 114 | switch (t) | 113 | switch (t) |
| 115 | { | 114 | { |
| 116 | case LUA_TNIL: | 115 | case LUA_TNIL: |
| 117 | setnilvalue(o); | 116 | setnilvalue(o); |
| 118 | break; | 117 | break; |
| 119 | case LUA_TBOOLEAN: | 118 | case LUA_TBOOLEAN: |
| 120 | setbvalue(o,LoadChar(S)); | 119 | setbvalue(o,LoadByte(S)); |
| 121 | break; | 120 | break; |
| 122 | case LUA_TNUMFLT: | 121 | case LUA_TNUMFLT: |
| 123 | setnvalue(o,LoadNumber(S)); | 122 | setnvalue(o,LoadNumber(S)); |
