aboutsummaryrefslogtreecommitdiff
path: root/lundump.c
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2013-04-26 15:48:35 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2013-04-26 15:48:35 -0300
commiteee51492e26bc295d2b67b91aa7bdb97a21e3623 (patch)
tree694f60a1200a517f4aa1b5dfc377b7c759d2dbf0 /lundump.c
parentc37b7b3cca3f58389aefb3903b58fd213bae2b16 (diff)
downloadlua-eee51492e26bc295d2b67b91aa7bdb97a21e3623.tar.gz
lua-eee51492e26bc295d2b67b91aa7bdb97a21e3623.tar.bz2
lua-eee51492e26bc295d2b67b91aa7bdb97a21e3623.zip
dumping and undumping integers
Diffstat (limited to 'lundump.c')
-rw-r--r--lundump.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/lundump.c b/lundump.c
index 2bd8e197..0a8db845 100644
--- a/lundump.c
+++ b/lundump.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lundump.c,v 2.21 2012/03/19 22:58:09 roberto Exp roberto $ 2** $Id: lundump.c,v 2.22 2012/05/08 13:53:33 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*/
@@ -69,6 +69,13 @@ static lua_Number LoadNumber(LoadState* S)
69 return x; 69 return x;
70} 70}
71 71
72static lua_Integer LoadInteger(LoadState* S)
73{
74 lua_Integer x;
75 LoadVar(S,x);
76 return x;
77}
78
72static TString* LoadString(LoadState* S) 79static TString* LoadString(LoadState* S)
73{ 80{
74 size_t size; 81 size_t size;
@@ -112,10 +119,13 @@ static void LoadConstants(LoadState* S, Proto* f)
112 case LUA_TBOOLEAN: 119 case LUA_TBOOLEAN:
113 setbvalue(o,LoadChar(S)); 120 setbvalue(o,LoadChar(S));
114 break; 121 break;
115 case LUA_TNUMBER: 122 case LUA_TNUMFLT:
116 setnvalue(o,LoadNumber(S)); 123 setnvalue(o,LoadNumber(S));
117 break; 124 break;
118 case LUA_TSTRING: 125 case LUA_TNUMINT:
126 setivalue(o,LoadInteger(S));
127 break;
128 case LUA_TSHRSTR: case LUA_TLNGSTR:
119 setsvalue2n(S->L,o,LoadString(S)); 129 setsvalue2n(S->L,o,LoadString(S));
120 break; 130 break;
121 default: lua_assert(0); 131 default: lua_assert(0);