diff options
Diffstat (limited to 'opcode.c')
| -rw-r--r-- | opcode.c | 30 |
1 files changed, 22 insertions, 8 deletions
| @@ -3,7 +3,7 @@ | |||
| 3 | ** TecCGraf - PUC-Rio | 3 | ** TecCGraf - PUC-Rio |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | char *rcs_opcode="$Id: opcode.c,v 3.60 1996/03/15 13:13:13 roberto Exp roberto $"; | 6 | char *rcs_opcode="$Id: opcode.c,v 3.61 1996/03/19 16:50:24 roberto Exp roberto $"; |
| 7 | 7 | ||
| 8 | #include <setjmp.h> | 8 | #include <setjmp.h> |
| 9 | #include <stdio.h> | 9 | #include <stdio.h> |
| @@ -259,13 +259,10 @@ static StkId callC (lua_CFunction func, StkId base) | |||
| 259 | /* incorporate parameters on the stack */ | 259 | /* incorporate parameters on the stack */ |
| 260 | CBase = base+CnResults; /* == top-stack */ | 260 | CBase = base+CnResults; /* == top-stack */ |
| 261 | if (call_hook) | 261 | if (call_hook) |
| 262 | { | 262 | callHook(base, LUA_T_CMARK, 0); |
| 263 | callHook (base, LUA_T_CMARK, 0); | 263 | (*func)(); |
| 264 | (*func)(); | 264 | if (call_hook) /* func may have changed call_hook */ |
| 265 | callHook (base, LUA_T_CMARK, 1); | 265 | callHook(base, LUA_T_CMARK, 1); |
| 266 | } | ||
| 267 | else | ||
| 268 | (*func)(); | ||
| 269 | firstResult = CBase; | 266 | firstResult = CBase; |
| 270 | CBase = oldBase; | 267 | CBase = oldBase; |
| 271 | CnResults = oldCnResults; | 268 | CnResults = oldCnResults; |
| @@ -673,6 +670,23 @@ lua_Object lua_getparam (int number) | |||
| 673 | return CBase-CnResults+number; | 670 | return CBase-CnResults+number; |
| 674 | } | 671 | } |
| 675 | 672 | ||
| 673 | int lua_isnumber (lua_Object object) | ||
| 674 | { | ||
| 675 | return (object != LUA_NOOBJECT) && (tonumber(Address(object)) == 0); | ||
| 676 | } | ||
| 677 | |||
| 678 | int lua_isstring (lua_Object object) | ||
| 679 | { | ||
| 680 | int t = lua_type(object); | ||
| 681 | return (t == LUA_T_STRING) || (t == LUA_T_NUMBER); | ||
| 682 | } | ||
| 683 | |||
| 684 | int lua_isfunction (lua_Object object) | ||
| 685 | { | ||
| 686 | int t = lua_type(object); | ||
| 687 | return (t == LUA_T_FUNCTION) || (t == LUA_T_CFUNCTION); | ||
| 688 | } | ||
| 689 | |||
| 676 | /* | 690 | /* |
| 677 | ** Given an object handle, return its number value. On error, return 0.0. | 691 | ** Given an object handle, return its number value. On error, return 0.0. |
| 678 | */ | 692 | */ |
