aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWaldemar Celes <celes@tecgraf.puc-rio.br>1994-12-27 18:53:15 -0200
committerWaldemar Celes <celes@tecgraf.puc-rio.br>1994-12-27 18:53:15 -0200
commitb8e76d9b5c86182998c0616627607181154a60b1 (patch)
tree2889f4baf5089cdfb76c608c1850199598145c60
parentdc97a07e19abaa6942c84c88d001e8cccd517d1d (diff)
downloadlua-b8e76d9b5c86182998c0616627607181154a60b1.tar.gz
lua-b8e76d9b5c86182998c0616627607181154a60b1.tar.bz2
lua-b8e76d9b5c86182998c0616627607181154a60b1.zip
'lua_getsubscript' and 'lua_storesubscript' now run unprotected (to improve efficiency)
-rw-r--r--opcode.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/opcode.c b/opcode.c
index 580ecc33..f1d021f7 100644
--- a/opcode.c
+++ b/opcode.c
@@ -3,7 +3,7 @@
3** TecCGraf - PUC-Rio 3** TecCGraf - PUC-Rio
4*/ 4*/
5 5
6char *rcs_opcode="$Id: opcode.c,v 3.27 1994/12/16 16:08:34 roberto Exp roberto $"; 6char *rcs_opcode="$Id: opcode.c,v 3.28 1994/12/20 21:20:36 roberto Exp celes $";
7 7
8#include <setjmp.h> 8#include <setjmp.h>
9#include <stdio.h> 9#include <stdio.h>
@@ -441,16 +441,10 @@ lua_Object lua_setfallback (char *name, lua_CFunction fallback)
441*/ 441*/
442lua_Object lua_getsubscript (void) 442lua_Object lua_getsubscript (void)
443{ 443{
444 static Byte code[2] = {PUSHINDEXED, RETCODE0};
445 int status;
446 Object func;
447 tag(&func) = LUA_T_FUNCTION; bvalue(&func) = code;
448 adjustC(2); 444 adjustC(2);
449 status = do_protectedrun(&func, 1); 445 pushsubscript();
450 if (status == 0) 446 CBase++; /* incorporate object in the stack */
451 return (Ref(top-1)); 447 return (Ref(top-1));
452 else
453 return LUA_NOOBJECT;
454} 448}
455 449
456 450
@@ -487,11 +481,9 @@ void lua_endblock (void)
487*/ 481*/
488int lua_storesubscript (void) 482int lua_storesubscript (void)
489{ 483{
490 static Byte code[2] = {STOREINDEXED0, RETCODE0};
491 Object func;
492 tag(&func) = LUA_T_FUNCTION; bvalue(&func) = code;
493 adjustC(3); 484 adjustC(3);
494 return(do_protectedrun(&func, 0)); 485 storesubscript();
486 return 0;
495} 487}
496 488
497/* 489/*