diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-03-11 15:56:27 -0300 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 2014-03-11 15:56:27 -0300 |
commit | 80fe8504f5d7be0a3ddf939981bf4b18266861b6 (patch) | |
tree | c3cceb1009cb3dce2344facf30798c10631faf38 /lundump.c | |
parent | e9763842134ac807262e3b86d5f40d25a8d69f1b (diff) | |
download | lua-80fe8504f5d7be0a3ddf939981bf4b18266861b6.tar.gz lua-80fe8504f5d7be0a3ddf939981bf4b18266861b6.tar.bz2 lua-80fe8504f5d7be0a3ddf939981bf4b18266861b6.zip |
make all dumps/loads go trhough Load/DumpVector (so it is easier
to adapt the code to correct endianess, if needed)
Diffstat (limited to 'lundump.c')
-rw-r--r-- | lundump.c | 14 |
1 files changed, 10 insertions, 4 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lundump.c,v 2.32 2014/03/10 19:50:19 roberto Exp roberto $ | 2 | ** $Id: lundump.c,v 2.33 2014/03/11 18:05:46 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 | */ |
@@ -21,9 +21,6 @@ | |||
21 | #include "lzio.h" | 21 | #include "lzio.h" |
22 | 22 | ||
23 | 23 | ||
24 | #define LoadVar(S,x) LoadBlock(S,&x,sizeof(x)) | ||
25 | #define LoadVector(S,b,n) LoadBlock(S,b,(n)*sizeof((b)[0])) | ||
26 | |||
27 | #if !defined(luai_verifycode) | 24 | #if !defined(luai_verifycode) |
28 | #define luai_verifycode(L,b,f) /* empty */ | 25 | #define luai_verifycode(L,b,f) /* empty */ |
29 | #endif | 26 | #endif |
@@ -43,12 +40,21 @@ static l_noret error(LoadState *S, const char *why) { | |||
43 | } | 40 | } |
44 | 41 | ||
45 | 42 | ||
43 | /* | ||
44 | ** All high-level loads go through LoadVector; you can change it to | ||
45 | ** adapt to the endianess of the input | ||
46 | */ | ||
47 | #define LoadVector(S,b,n) LoadBlock(S,b,(n)*sizeof((b)[0])) | ||
48 | |||
46 | static void LoadBlock (LoadState *S, void *b, size_t size) { | 49 | static void LoadBlock (LoadState *S, void *b, size_t size) { |
47 | if (luaZ_read(S->Z, b, size) != 0) | 50 | if (luaZ_read(S->Z, b, size) != 0) |
48 | error(S, "truncated"); | 51 | error(S, "truncated"); |
49 | } | 52 | } |
50 | 53 | ||
51 | 54 | ||
55 | #define LoadVar(S,x) LoadVector(S,&x,1) | ||
56 | |||
57 | |||
52 | static lu_byte LoadByte (LoadState *S) { | 58 | static lu_byte LoadByte (LoadState *S) { |
53 | lu_byte x; | 59 | lu_byte x; |
54 | LoadVar(S, x); | 60 | LoadVar(S, x); |