--- a/Block.st Thu Feb 29 00:21:11 1996 +0100
+++ b/Block.st Thu Feb 29 00:25:38 1996 +0100
@@ -81,7 +81,7 @@
!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.44 1996-01-15 21:43:12 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.45 1996-02-28 23:25:38 cg Exp $'
! !
!Block class methodsFor:'initialization'!
@@ -247,7 +247,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 0, nil, nil COMMA_SND, nil) );
# else
- RETURN ( interpret(self, 0, nil, nil COMMA_SND, nil) );
+ RETURN ( __interpret(self, 0, nil, nil COMMA_SND, nil) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -259,7 +259,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 0, nil, home COMMA_SND, nil) );
# else
- RETURN ( interpret(self, 0, nil, home COMMA_SND, nil) );
+ RETURN ( __interpret(self, 0, nil, home COMMA_SND, nil) );
# endif
#endif
}
@@ -290,7 +290,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 1, nil, nil COMMA_SND, nil, &arg) );
# else
- RETURN ( interpret(self, 1, nil, nil COMMA_SND, nil, arg) );
+ RETURN ( __interpret(self, 1, nil, nil COMMA_SND, nil, arg) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -301,7 +301,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 1, nil, home COMMA_SND, nil, &arg) );
# else
- RETURN ( interpret(self, 1, nil, home COMMA_SND, nil, arg) );
+ RETURN ( __interpret(self, 1, nil, home COMMA_SND, nil, arg) );
# endif
#endif
}
@@ -331,7 +331,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 2, nil, nil COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 2, nil, nil COMMA_SND, nil, arg1, arg2) );
+ RETURN ( __interpret(self, 2, nil, nil COMMA_SND, nil, arg1, arg2) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -341,7 +341,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 2, nil, home COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 2, nil, home COMMA_SND, nil, arg1, arg2) );
+ RETURN ( __interpret(self, 2, nil, home COMMA_SND, nil, arg1, arg2) );
# endif
#endif
}
@@ -371,7 +371,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 3, nil, nil COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 3, nil, nil COMMA_SND, nil, arg1, arg2, arg3) );
+ RETURN ( __interpret(self, 3, nil, nil COMMA_SND, nil, arg1, arg2, arg3) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -381,7 +381,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 3, nil, home COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 3, nil, home COMMA_SND, nil, arg1, arg2, arg3) );
+ RETURN ( __interpret(self, 3, nil, home COMMA_SND, nil, arg1, arg2, arg3) );
# endif
#endif
}
@@ -411,7 +411,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 4, nil, nil COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 4, nil, nil COMMA_SND, nil, arg1, arg2, arg3, arg4) );
+ RETURN ( __interpret(self, 4, nil, nil COMMA_SND, nil, arg1, arg2, arg3, arg4) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -421,7 +421,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 4, nil, home COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 4, nil, home COMMA_SND, nil, arg1, arg2, arg3, arg4) );
+ RETURN ( __interpret(self, 4, nil, home COMMA_SND, nil, arg1, arg2, arg3, arg4) );
# endif
#endif
}
@@ -451,7 +451,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 5, nil, nil COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 5, nil, nil COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5) );
+ RETURN ( __interpret(self, 5, nil, nil COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -461,7 +461,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 5, nil, home COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 5, nil, home COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5) );
+ RETURN ( __interpret(self, 5, nil, home COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5) );
# endif
#endif
}
@@ -491,7 +491,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 6, nil, nil COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 6, nil, nil COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
+ RETURN ( __interpret(self, 6, nil, nil COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
# endif
#else
home = _BlockInstPtr(self)->b_home;
@@ -501,7 +501,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, 6, nil, home COMMA_SND, nil, &arg1) );
# else
- RETURN ( interpret(self, 6, nil, home COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
+ RETURN ( __interpret(self, 6, nil, home COMMA_SND, nil, arg1, arg2, arg3, arg4, arg5, arg6) );
# endif
#endif
}
@@ -515,7 +515,7 @@
ArgArray must be either an Array or nil.
The size of the argArray must match the number of arguments the receiver expects."
- |a1 a2 a3 a4 a5 a6 a7|
+ |a1 a2 a3 a4 a5 a6 a7 a8|
(argArray notNil and:[argArray class ~~ Array]) ifTrue:[
^ self badArgumentArry
@@ -534,9 +534,49 @@
if (__ISVALID_ILC_LNO(__pilc))
_ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__pilc);
#endif
+ thecode = _BlockInstPtr(self)->b_code;
+
+#ifndef NEW_BLOCK_CALL
+ home = _BlockInstPtr(self)->b_home;
+ if (thecode != (OBJFUNC)nil) {
+ switch (nargs = _intVal(_INST(nargs))) {
+ default:
+ goto error;
+ case 8:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7]) );
+ case 7:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
+ case 6:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
+ case 5:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1], ap[2], ap[3], ap[4]) );
+ case 4:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1], ap[2], ap[3]) );
+ case 3:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1], ap[2]) );
+ case 2:
+ ap = _ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home COMMA_SND, ap[0], ap[1]) );
+ case 1:
+ RETURN ( (*thecode)(home COMMA_SND, _ArrayInstPtr(argArray)->a_element[0]) );
+ case 0:
+ RETURN ( (*thecode)(home COMMA_SND) );
+ break;
+ }
+ }
+#endif
+
switch (nargs = _intVal(_INST(nargs))) {
default:
goto error;
+ case 8:
+ a8 = _ArrayInstPtr(argArray)->a_element[7];
case 7:
a7 = _ArrayInstPtr(argArray)->a_element[6];
case 6:
@@ -554,28 +594,24 @@
case 0:
break;
}
- thecode = _BlockInstPtr(self)->b_code;
#ifdef NEW_BLOCK_CALL
if (thecode != (OBJFUNC)nil) {
- RETURN ( (*thecode)(self COMMA_SND, a1, a2, a3, a4, a5, a6, a7) );
+ RETURN ( (*thecode)(self COMMA_SND, a1, a2, a3, a4, a5, a6, a7, a8) );
}
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, nargs, nil, nil COMMA_SND, nil, &a1) );
# else
- RETURN ( interpret(self, nargs, nil, nil COMMA_SND, nil,
- a1, a2, a3, a4, a5, a6, a7) );
+ RETURN ( __interpret(self, nargs, nil, nil COMMA_SND, nil, a1, a2, a3, a4, a5, a6, a7, a8) );
# endif
+
#else
- home = _BlockInstPtr(self)->b_home;
- if (thecode != (OBJFUNC)nil) {
- RETURN ( (*thecode)(home COMMA_SND, a1, a2, a3, a4, a5, a6, a7) );
- }
+
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, nargs, nil, home COMMA_SND, nil, &a1) );
# else
- RETURN ( interpret(self, nargs, nil, home COMMA_SND, nil,
- a1, a2, a3, a4, a5, a6, a7) );
+ RETURN ( __interpret(self, nargs, nil, home COMMA_SND, nil, a1, a2, a3, a4, a5, a6, a7, a8) );
# endif
+
#endif
error: ;