I have noticed that ffcall compiled base libs calls directly 
forwardInvocation: instead of forward::.


This little patch implements forwardInvocation: for EOFault
just like forward::


Marko


*** EOFault.m.orig      Sun Aug 19 01:46:26 2001
--- EOFault.m   Sun Aug 19 01:48:55 2001
***************
*** 34,39 ****
--- 34,41 ----
   #include <Foundation/NSDictionary.h>
   #include <Foundation/NSString.h>
   #include <Foundation/NSObjCRuntime.h>
+ #include <Foundation/NSMethodSignature.h>
+ #include <Foundation/NSInvocation.h>

   #include <extensions/NSException.h>
   #include <extensions/objc-runtime.h>
***************
*** 465,470 ****
--- 467,498 ----
   {
       // Must be here as initialize is called for each root class
       // without asking if it responds to it !
+ }
+
+ - (void)forwardInvocation:(NSInvocation *)anInvocation
+ {
+    EOFaultResolver* resolver = faultResolver;
+
+    // If in class
+    if (!object_is_instance(self)) {
+       THROW([[InvalidArgumentException alloc]
+            initWithFormat:@"EOFault class does not responds to %s'",
+            sel_get_name([anInvocation selector])]);
+    }
+
+    [resolver beforeFault];
+    [resolver fault];
+    [resolver afterFault];
+
+    if (isa == [EOFault class]) {
+       THROW([[InvalidArgumentException alloc]
+            initWithFormat:
+            @"fault error: %@ was not cleared during fault fetching",
+     [resolver description]]);
+    }
+
+    [anInvocation invokeWithTarget: self];
+
   }

   - (retval_t)forward:(SEL)sel :(arglist_t)args


_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep

Reply via email to