summaryrefslogtreecommitdiff
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-github-80fe8504f5d7be0a3ddf939981bf4b18266861b6.tar.gz
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 @@
/*
-** $Id: lundump.c,v 2.32 2014/03/10 19:50:19 roberto Exp roberto $
+** $Id: lundump.c,v 2.33 2014/03/11 18:05:46 roberto Exp roberto $
** load precompiled Lua chunks
** See Copyright Notice in lua.h
*/
@@ -21,9 +21,6 @@
#include "lzio.h"
-#define LoadVar(S,x) LoadBlock(S,&x,sizeof(x))
-#define LoadVector(S,b,n) LoadBlock(S,b,(n)*sizeof((b)[0]))
-
#if !defined(luai_verifycode)
#define luai_verifycode(L,b,f) /* empty */
#endif
@@ -43,12 +40,21 @@ static l_noret error(LoadState *S, const char *why) {
}
+/*
+** All high-level loads go through LoadVector; you can change it to
+** adapt to the endianess of the input
+*/
+#define LoadVector(S,b,n) LoadBlock(S,b,(n)*sizeof((b)[0]))
+
static void LoadBlock (LoadState *S, void *b, size_t size) {
if (luaZ_read(S->Z, b, size) != 0)
error(S, "truncated");
}
+#define LoadVar(S,x) LoadVector(S,&x,1)
+
+
static lu_byte LoadByte (LoadState *S) {
lu_byte x;
LoadVar(S, x);