diff options
author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1999-11-10 13:41:11 -0200 |
---|---|---|
committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1999-11-10 13:41:11 -0200 |
commit | a4628a02cfb11ac01a8496fb1359a4d66c49f887 (patch) | |
tree | 9e37b233c4a9714015b5b90092f49f156f21ae55 | |
parent | 0c725b2492051bdb776af3dae31881a162000894 (diff) | |
download | lua-a4628a02cfb11ac01a8496fb1359a4d66c49f887.tar.gz lua-a4628a02cfb11ac01a8496fb1359a4d66c49f887.tar.bz2 lua-a4628a02cfb11ac01a8496fb1359a4d66c49f887.zip |
better ways to test lock mechanism
-rw-r--r-- | lbuiltin.c | 15 |
1 files changed, 9 insertions, 6 deletions
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | ** $Id: lbuiltin.c,v 1.69 1999/10/26 10:53:40 roberto Exp roberto $ | 2 | ** $Id: lbuiltin.c,v 1.70 1999/11/04 17:22:26 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 | */ |
@@ -696,7 +696,6 @@ static void testC (void) { | |||
696 | #define getnum(s) ((*s++) - '0') | 696 | #define getnum(s) ((*s++) - '0') |
697 | #define getname(s) (nome[0] = *s++, nome) | 697 | #define getname(s) (nome[0] = *s++, nome) |
698 | 698 | ||
699 | static int locks[10]; | ||
700 | lua_Object reg[10]; | 699 | lua_Object reg[10]; |
701 | char nome[2]; | 700 | char nome[2]; |
702 | const char *s = luaL_check_string(1); | 701 | const char *s = luaL_check_string(1); |
@@ -719,10 +718,14 @@ static void testC (void) { | |||
719 | reg[n] = lua_rawgetglobal(getname(s)); | 718 | reg[n] = lua_rawgetglobal(getname(s)); |
720 | break; | 719 | break; |
721 | } | 720 | } |
722 | case 'l': locks[getnum(s)] = lua_ref(1); break; | 721 | case 'l': lua_pushnumber(lua_ref(1)); reg[getnum(s)] = lua_pop(); break; |
723 | case 'L': locks[getnum(s)] = lua_ref(0); break; | 722 | case 'L': lua_pushnumber(lua_ref(0)); reg[getnum(s)] = lua_pop(); break; |
724 | case 'r': { int n=getnum(s); reg[n]=lua_getref(locks[getnum(s)]); break; } | 723 | case 'r': { int n=getnum(s); |
725 | case 'u': lua_unref(locks[getnum(s)]); break; | 724 | reg[n]=lua_getref((int)lua_getnumber(reg[getnum(s)])); |
725 | break; | ||
726 | } | ||
727 | case 'u': lua_unref((int)lua_getnumber(reg[getnum(s)])); | ||
728 | break; | ||
726 | case 'p': { int n = getnum(s); reg[n] = lua_getparam(getnum(s)); break; } | 729 | case 'p': { int n = getnum(s); reg[n] = lua_getparam(getnum(s)); break; } |
727 | case '=': lua_setglobal(getname(s)); break; | 730 | case '=': lua_setglobal(getname(s)); break; |
728 | case 's': lua_pushstring(getname(s)); break; | 731 | case 's': lua_pushstring(getname(s)); break; |