Browse Source

fallback table now has number of parameters and results of each
fallback. This information is used by opcode.c, when calling a fallback.

Roberto Ierusalimschy 30 years ago
parent
commit
1bb3fb73cc
2 changed files with 14 additions and 11 deletions
  1. 11 10
      fallback.c
  2. 3 1
      fallback.h

+ 11 - 10
fallback.c

@@ -3,7 +3,7 @@
 ** TecCGraf - PUC-Rio
 */
  
-char *rcs_fallback="$Id: fallback.c,v 1.13 1995/10/02 17:03:33 roberto Exp roberto $";
+char *rcs_fallback="$Id: fallback.c,v 1.14 1995/10/04 14:20:26 roberto Exp roberto $";
 
 #include <stdio.h>
 #include <string.h>
@@ -28,15 +28,16 @@ static void funcFB (void);
 ** Warning: This list must be in the same order as the #define's
 */
 struct FB  luaI_fallBacks[] = {
-{"error", {LUA_T_CFUNCTION, {errorFB}}},
-{"index", {LUA_T_CFUNCTION, {indexFB}}},
-{"gettable", {LUA_T_CFUNCTION, {gettableFB}}},
-{"arith", {LUA_T_CFUNCTION, {arithFB}}},
-{"order", {LUA_T_CFUNCTION, {orderFB}}},
-{"concat", {LUA_T_CFUNCTION, {concatFB}}},
-{"settable", {LUA_T_CFUNCTION, {gettableFB}}},
-{"gc", {LUA_T_CFUNCTION, {GDFB}}},
-{"function", {LUA_T_CFUNCTION, {funcFB}}}
+{"error", {LUA_T_CFUNCTION, {errorFB}}, 1, 0},
+{"index", {LUA_T_CFUNCTION, {indexFB}}, 2, 1},
+{"gettable", {LUA_T_CFUNCTION, {gettableFB}}, 2, 1},
+{"arith", {LUA_T_CFUNCTION, {arithFB}}, 3, 1},
+{"order", {LUA_T_CFUNCTION, {orderFB}}, 3, 1},
+{"concat", {LUA_T_CFUNCTION, {concatFB}}, 2, 1},
+{"settable", {LUA_T_CFUNCTION, {gettableFB}}, 3, 0},
+{"gc", {LUA_T_CFUNCTION, {GDFB}}, 1, 0},
+{"function", {LUA_T_CFUNCTION, {funcFB}}, -1, -1}
+                                /* no fixed number of params or results */
 };
 
 #define N_FB  (sizeof(luaI_fallBacks)/sizeof(struct FB))

+ 3 - 1
fallback.h

@@ -1,5 +1,5 @@
 /*
-** $Id: fallback.h,v 1.7 1994/11/21 18:22:58 roberto Stab roberto $
+** $Id: fallback.h,v 1.8 1995/10/04 14:20:26 roberto Exp roberto $
 */
  
 #ifndef fallback_h
@@ -10,6 +10,8 @@
 extern struct FB {
   char *kind;
   Object function;
+  int nParams;
+  int nResults;
 } luaI_fallBacks[];
 
 #define FB_ERROR  0