check archiving

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/base/trunk@3142 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Richard Frith-MacDonald 1998-10-28 15:18:38 +00:00
parent bf3c3b5ded
commit 683cfb1923

View file

@ -2,6 +2,7 @@
#include <Foundation/NSInvocation.h>
#include <Foundation/NSString.h>
#include <Foundation/NSAutoreleasePool.h>
#include <Foundation/NSArchiver.h>
typedef struct {
char c;
@ -154,7 +155,19 @@ typedef struct {
}
- (void) forwardInvocation: (NSInvocation*)inv
{
[inv invokeWithTarget: obj];
NSData *d = [NSArchiver archivedDataWithRootObject: inv];
NSInvocation *i = [NSUnarchiver unarchiveObjectWithData: d];
unsigned l;
void *b;
[i invokeWithTarget: obj];
d = [NSArchiver archivedDataWithRootObject: i];
i = [NSUnarchiver unarchiveObjectWithData: d];
l = [[i methodSignature] methodReturnLength];
b = (void *)objc_malloc(l);
[i getReturnValue: b];
[inv setReturnValue: b];
objc_free(b);
}
@end