--- a/Block.st Fri May 29 23:28:42 1998 +0200
+++ b/Block.st Thu Jun 04 01:33:20 1998 +0200
@@ -881,13 +881,13 @@
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 a8|
+ |a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 a12|
(argArray notNil and:[(argArray class ~~ Array) and:[argArray isArray not]]) ifTrue:[
- ^ self badArgumentArry
+ ^ self badArgumentArry
].
(argArray size == nargs) ifFalse:[
- ^ self wrongNumberOfArguments:(argArray size)
+ ^ self wrongNumberOfArguments:(argArray size)
].
%{
@@ -899,84 +899,104 @@
#if defined(THIS_CONTEXT)
if (__ISVALID_ILC_LNO(__pilc))
- __ContextInstPtr(__thisContext)->c_lineno = __ILC_LNO_AS_OBJ(__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) {
- if ((nA = __INST(nargs)) == __MKSMALLINT(0)) {
- RETURN ( (*thecode)(home) );
- }
+ if ((nA = __INST(nargs)) == __MKSMALLINT(0)) {
+ RETURN ( (*thecode)(home) );
+ }
- switch (__intVal(__INST(nargs))) {
- default:
- goto error;
- case 8:
- ap = __ArrayInstPtr(argArray)->a_element;
- RETURN ( (*thecode)(home, 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, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
- case 6:
- ap = __ArrayInstPtr(argArray)->a_element;
- RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
- case 5:
- ap = __ArrayInstPtr(argArray)->a_element;
- RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4]) );
- case 4:
- ap = __ArrayInstPtr(argArray)->a_element;
- RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3]) );
- case 3:
- ap = __ArrayInstPtr(argArray)->a_element;
- RETURN ( (*thecode)(home, ap[0], ap[1], ap[2]) );
- case 2:
- ap = __ArrayInstPtr(argArray)->a_element;
- RETURN ( (*thecode)(home, ap[0], ap[1]) );
- case 1:
- RETURN ( (*thecode)(home, __ArrayInstPtr(argArray)->a_element[0]) );
- case 0:
- RETURN ( (*thecode)(home) );
- break;
- }
+ switch (__intVal(__INST(nargs))) {
+ default:
+ goto error;
+ case 12:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10], ap[11]) );
+ case 11:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9], ap[10]) );
+ case 10:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8], ap[9]) );
+ case 9:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6], ap[7], ap[8]) );
+ case 8:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, 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, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5], ap[6]) );
+ case 6:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4], ap[5]) );
+ case 5:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3], ap[4]) );
+ case 4:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2], ap[3]) );
+ case 3:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1], ap[2]) );
+ case 2:
+ ap = __ArrayInstPtr(argArray)->a_element;
+ RETURN ( (*thecode)(home, ap[0], ap[1]) );
+ case 1:
+ RETURN ( (*thecode)(home, __ArrayInstPtr(argArray)->a_element[0]) );
+ case 0:
+ RETURN ( (*thecode)(home) );
+ break;
+ }
}
#endif
__nargs = __intVal(__INST(nargs));
if (__nargs) {
switch (__nargs) {
- default:
- goto error;
- case 8:
- a8 = __ArrayInstPtr(argArray)->a_element[7];
- case 7:
- a7 = __ArrayInstPtr(argArray)->a_element[6];
- case 6:
- a6 = __ArrayInstPtr(argArray)->a_element[5];
- case 5:
- a5 = __ArrayInstPtr(argArray)->a_element[4];
- case 4:
- a4 = __ArrayInstPtr(argArray)->a_element[3];
- case 3:
- a3 = __ArrayInstPtr(argArray)->a_element[2];
- case 2:
- a2 = __ArrayInstPtr(argArray)->a_element[1];
- case 1:
- a1 = __ArrayInstPtr(argArray)->a_element[0];
- case 0:
- break;
- }
+ default:
+ goto error;
+ case 12:
+ a12 = __ArrayInstPtr(argArray)->a_element[11];
+ case 11:
+ a11 = __ArrayInstPtr(argArray)->a_element[10];
+ case 10:
+ a10 = __ArrayInstPtr(argArray)->a_element[9];
+ case 9:
+ a9 = __ArrayInstPtr(argArray)->a_element[8];
+ case 8:
+ a8 = __ArrayInstPtr(argArray)->a_element[7];
+ case 7:
+ a7 = __ArrayInstPtr(argArray)->a_element[6];
+ case 6:
+ a6 = __ArrayInstPtr(argArray)->a_element[5];
+ case 5:
+ a5 = __ArrayInstPtr(argArray)->a_element[4];
+ case 4:
+ a4 = __ArrayInstPtr(argArray)->a_element[3];
+ case 3:
+ a3 = __ArrayInstPtr(argArray)->a_element[2];
+ case 2:
+ a2 = __ArrayInstPtr(argArray)->a_element[1];
+ case 1:
+ a1 = __ArrayInstPtr(argArray)->a_element[0];
+ case 0:
+ break;
+ }
}
#ifdef NEW_BLOCK_CALL
if (thecode != (OBJFUNC)nil) {
- RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8) );
+ RETURN ( (*thecode)(self, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) );
}
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, __nargs, nil, nil, nil, nil, &a1) );
# else
- RETURN ( __interpret(self, __nargs, nil, nil, nil, nil, a1, a2, a3, a4, a5, a6, a7, a8) );
+ RETURN ( __interpret(self, __nargs, nil, nil, nil, nil, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) );
# endif
#else
@@ -984,7 +1004,7 @@
# ifdef PASS_ARG_POINTER
RETURN ( __interpret(self, __nargs, nil, home, nil, nil, &a1) );
# else
- RETURN ( __interpret(self, __nargs, nil, home, nil, nil, a1, a2, a3, a4, a5, a6, a7, a8) );
+ RETURN ( __interpret(self, __nargs, nil, home, nil, nil, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12) );
# endif
#endif
@@ -992,11 +1012,11 @@
error: ;
%}.
"
- the above code only supports up-to 7 arguments
+ the above code only supports up-to 12 arguments
"
^ ArgumentSignal
- raiseRequestWith:self
- errorString:'only blocks with up-to 7 arguments supported'
+ raiseRequestWith:self
+ errorString:'only blocks with up-to 12 arguments supported'
! !
!Block methodsFor:'looping'!
@@ -1451,6 +1471,6 @@
!Block class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.78 1998-03-31 13:47:49 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Block.st,v 1.79 1998-06-03 23:33:20 cg Exp $'
! !
Block initialize!