--- a/Object.st Mon Mar 03 13:08:32 1997 +0100
+++ b/Object.st Mon Mar 03 13:09:17 1997 +0100
@@ -3443,7 +3443,43 @@
}
RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc, arg1, arg2, arg3) );
%}
-
+!
+
+perform:aSelector with:arg1 with:arg2 with:arg3 with:arg4
+ "send the four-arg-message aSelector to the receiver"
+
+%{
+ struct inlineCache *pIlc;
+ static struct inlineCache ilc_0 = __ILCPERF4(0);
+ static struct inlineCache ilc_1 = __ILCPERF4(0);
+ static OBJ last_0 = nil;
+ static OBJ last_1 = nil;
+ static flip = 0;
+
+ if (aSelector != last_0) {
+ if (aSelector != last_1) {
+ if (flip) {
+ pIlc = &ilc_0;
+ flip = 0;
+ last_0 = aSelector;
+ } else {
+ pIlc = &ilc_1;
+ flip = 1;
+ last_1 = aSelector;
+ }
+ pIlc->ilc_func = __SEND4ADDR__;
+ if (pIlc->ilc_poly) {
+ __flushPolyCache(pIlc->ilc_poly);
+ pIlc->ilc_poly = 0;
+ }
+ } else {
+ pIlc = &ilc_1;
+ }
+ } else {
+ pIlc = &ilc_0;
+ }
+ RETURN ( (*(pIlc->ilc_func))(self, aSelector, nil, pIlc, arg1, arg2, arg3, arg4) );
+%}
!
perform:aSelector withArguments:argArray
@@ -5605,6 +5641,6 @@
!Object class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.177 1997-02-20 09:57:23 stefan Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Object.st,v 1.178 1997-03-03 12:09:17 cg Exp $'
! !
Object initialize!