aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto Ierusalimschy <roberto@inf.puc-rio.br>2000-06-05 17:15:33 -0300
committerRoberto Ierusalimschy <roberto@inf.puc-rio.br>2000-06-05 17:15:33 -0300
commit292c9530183a8e9939cff9a7d30fc50e85031698 (patch)
tree20dc1c90af03ef60396d6a8df737369fb8238f21
parentc542aac0b935a65203244c130cdfa700113f0bc8 (diff)
downloadlua-292c9530183a8e9939cff9a7d30fc50e85031698.tar.gz
lua-292c9530183a8e9939cff9a7d30fc50e85031698.tar.bz2
lua-292c9530183a8e9939cff9a7d30fc50e85031698.zip
new auxiliar function `luaH_setstr'
-rw-r--r--lbuiltin.c9
-rw-r--r--ltable.c10
-rw-r--r--ltable.h3
-rw-r--r--lvm.c7
4 files changed, 16 insertions, 13 deletions
diff --git a/lbuiltin.c b/lbuiltin.c
index 2e5833ed..19cdb6d6 100644
--- a/lbuiltin.c
+++ b/lbuiltin.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lbuiltin.c,v 1.111 2000/05/26 19:17:57 roberto Exp roberto $ 2** $Id: lbuiltin.c,v 1.112 2000/06/02 19:08:56 roberto Exp roberto $
3** Built-in functions 3** Built-in functions
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -68,12 +68,7 @@ static Number getsize (const Hash *h) {
68 68
69 69
70static Number getnarg (lua_State *L, const Hash *a) { 70static Number getnarg (lua_State *L, const Hash *a) {
71 TObject index; 71 const TObject *value = luaH_getstr(a, luaS_new(L, "n")); /* value = a.n */
72 const TObject *value;
73 /* value = table.n */
74 ttype(&index) = TAG_STRING;
75 tsvalue(&index) = luaS_new(L, "n");
76 value = luaH_get(L, a, &index);
77 return (ttype(value) == TAG_NUMBER) ? nvalue(value) : getsize(a); 72 return (ttype(value) == TAG_NUMBER) ? nvalue(value) : getsize(a);
78} 73}
79 74
diff --git a/ltable.c b/ltable.c
index 9929146d..4ffd2f9d 100644
--- a/ltable.c
+++ b/ltable.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltable.c,v 1.43 2000/05/24 13:54:49 roberto Exp roberto $ 2** $Id: ltable.c,v 1.44 2000/06/05 20:07:53 roberto Exp roberto $
3** Lua tables (hash) 3** Lua tables (hash)
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -278,6 +278,14 @@ void luaH_setint (lua_State *L, Hash *t, int key, const TObject *val) {
278} 278}
279 279
280 280
281void luaH_setstr (lua_State *L, Hash *t, TString *key, const TObject *val) {
282 TObject index;
283 ttype(&index) = TAG_STRING;
284 tsvalue(&index) = key;
285 luaH_set(L, t, &index, val);
286}
287
288
281const TObject *luaH_getglobal (lua_State *L, const char *name) { 289const TObject *luaH_getglobal (lua_State *L, const char *name) {
282 return luaH_getstr(L->gt, luaS_new(L, name)); 290 return luaH_getstr(L->gt, luaS_new(L, name));
283} 291}
diff --git a/ltable.h b/ltable.h
index df36e8a6..52053f8f 100644
--- a/ltable.h
+++ b/ltable.h
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: ltable.h,v 1.20 2000/05/08 19:32:53 roberto Exp roberto $ 2** $Id: ltable.h,v 1.21 2000/06/05 20:07:53 roberto Exp roberto $
3** Lua tables (hash) 3** Lua tables (hash)
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -25,6 +25,7 @@ void luaH_remove (Hash *t, TObject *key);
25void luaH_set (lua_State *L, Hash *t, const TObject *key, const TObject *val); 25void luaH_set (lua_State *L, Hash *t, const TObject *key, const TObject *val);
26int luaH_pos (lua_State *L, const Hash *t, const TObject *r); 26int luaH_pos (lua_State *L, const Hash *t, const TObject *r);
27void luaH_setint (lua_State *L, Hash *t, int key, const TObject *val); 27void luaH_setint (lua_State *L, Hash *t, int key, const TObject *val);
28void luaH_setstr (lua_State *L, Hash *t, TString *key, const TObject *val);
28unsigned long luaH_hash (lua_State *L, const TObject *key); 29unsigned long luaH_hash (lua_State *L, const TObject *key);
29const TObject *luaH_getglobal (lua_State *L, const char *name); 30const TObject *luaH_getglobal (lua_State *L, const char *name);
30 31
diff --git a/lvm.c b/lvm.c
index d53017a8..c264fd96 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1,5 +1,5 @@
1/* 1/*
2** $Id: lvm.c,v 1.110 2000/05/30 19:00:31 roberto Exp roberto $ 2** $Id: lvm.c,v 1.111 2000/06/05 14:56:18 roberto Exp roberto $
3** Lua virtual machine 3** Lua virtual machine
4** See Copyright Notice in lua.h 4** See Copyright Notice in lua.h
5*/ 5*/
@@ -66,10 +66,9 @@ int luaV_tostring (lua_State *L, TObject *obj) { /* LUA_NUMBER */
66 66
67 67
68void luaV_setn (lua_State *L, Hash *t, int val) { 68void luaV_setn (lua_State *L, Hash *t, int val) {
69 TObject index, value; 69 TObject value;
70 ttype(&index) = TAG_STRING; tsvalue(&index) = luaS_new(L, "n");
71 ttype(&value) = TAG_NUMBER; nvalue(&value) = val; 70 ttype(&value) = TAG_NUMBER; nvalue(&value) = val;
72 luaH_set(L, t, &index, &value); 71 luaH_setstr(L, t, luaS_new(L, "n"), &value);
73} 72}
74 73
75 74