diff options
| -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; |
