aboutsummaryrefslogtreecommitdiff
path: root/lundump.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2014-03-11 15:56:27 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2014-03-11 15:56:27 -0300
commit80fe8504f5d7be0a3ddf939981bf4b18266861b6 (patch)
treec3cceb1009cb3dce2344facf30798c10631faf38 /lundump.c
parente9763842134ac807262e3b86d5f40d25a8d69f1b (diff)
downloadlua-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.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/lundump.c b/lundump.c
index 1807822f..e9d445e6 100644
--- a/lundump.c
+++ b/lundump.c
@@ -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
46static void LoadBlock (LoadState *S, void *b, size_t size) { 49static 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
52static lu_byte LoadByte (LoadState *S) { 58static lu_byte LoadByte (LoadState *S) {
53 lu_byte x; 59 lu_byte x;
54 LoadVar(S, x); 60 LoadVar(S, x);