@@ -20,14 +20,10 @@ #import "OFInvocation.h" #import "OFArray.h" #import "OFData.h" #import "OFMethodSignature.h" -#ifdef OF_INVOCATION_CAN_INVOKE -extern void of_invocation_invoke(OFInvocation *); -#endif - @implementation OFInvocation @synthesize methodSignature = _methodSignature; + (instancetype)invocationWithMethodSignature: (OFMethodSignature *)signature { @@ -50,20 +46,20 @@ for (size_t i = 0; i < numberOfArguments; i++) { OFMutableData *data; typeEncoding = [_methodSignature argumentTypeAtIndex: i]; - typeSize = of_sizeof_type_encoding(typeEncoding); + typeSize = OFSizeOfTypeEncoding(typeEncoding); data = [OFMutableData dataWithItemSize: typeSize capacity: 1]; [data increaseCountBy: 1]; [_arguments addObject: data]; } typeEncoding = _methodSignature.methodReturnType; - typeSize = of_sizeof_type_encoding(typeEncoding); + typeSize = OFSizeOfTypeEncoding(typeEncoding); if (typeSize > 0) { _returnValue = [[OFMutableData alloc] initWithItemSize: typeSize capacity: 1]; @@ -86,23 +82,19 @@ [_returnValue release]; [super dealloc]; } -- (void)setArgument: (const void *)buffer - atIndex: (size_t)idx +- (void)setArgument: (const void *)buffer atIndex: (size_t)idx { OFMutableData *data = [_arguments objectAtIndex: idx]; - memcpy(data.mutableItems, buffer, data.itemSize); } -- (void)getArgument: (void *)buffer - atIndex: (size_t)idx +- (void)getArgument: (void *)buffer atIndex: (size_t)idx { OFData *data = [_arguments objectAtIndex: idx]; - memcpy(buffer, data.items, data.itemSize); } - (void)setReturnValue: (const void *)buffer { @@ -111,13 +103,6 @@ - (void)getReturnValue: (void *)buffer { memcpy(buffer, _returnValue.items, _returnValue.itemSize); } - -#ifdef OF_INVOCATION_CAN_INVOKE -- (void)invoke -{ - of_invocation_invoke(self); -} -#endif @end