A
First of all, the cause of the error is to get the address that can be considered as the first address of a given (in C) function and call the function in that address with an argument. toThe C compiler is not explicitly defined, so the function of 0 arguments (and the compiler is considered) Even though it is a call, there are three arguments that are inconsistent to call a function."Error.What should we do? Like a variable, we cast the variable that contains the address into a function prototype.I think that the cast is not wrong from the context before and after, but if you open this file, the following file will be an error.Fixed the same way as the error occurred here.Then, the other file will also be an error. Now, you can go through compile though there is a workout.However, how do I fix the compile error? So theライブラリー library is working correctly? I'm sorry, but I'm not verifying it. Since time has passed since the final release, it is not possible to move due to the modified part, or not to move due to OS version upgrade)Fixed differencepatchI created a file.patchIf you do not know how to apply-look for a line that matches the line that starts with+replace with the content of the line starting with:diff --git a/ext/rubycocoa/mdl_bundle_support.m b/ext/rubycocoa/mdl_bundle_support.m
index 2c1bb3d88fc73dc455ac8723154a376f15b3ff79..77d3218758b6810699aa0baff9779105c027d8ac 100644
--- a/ext/rubycocoa/mdl_bundle_support.m
+++ b/ext/rubycocoa/mdl_bundle_support.m
@@ -203,7 +203,7 @@ static id rubycocoa_bundleForClass(id rcv, SEL op, id klass)
{
id bundle = bundle_for_class(klass);
if (! bundle)
- bundle = original_bundleForClass(rcv, op, klass);
+ bundle = (((id (*)(id, SEL, id))original_bundleForClass)(rcv, op, klass));
return bundle;
}
diff --git a/ext/rubycocoa/OverrideMixin.m b/ext/rubycocoa/OverrideMixin.m
index 2fd51ffae7671b89b173622603a73f1fc39c6a67..299f9a2ab9d2399227c72e232e85299ecd25155e 100644
--- a/ext/rubycocoa/OverrideMixin.m
+++ b/ext/rubycocoa/OverrideMixin.m
@@ -300,7 +300,7 @@ static id imp_methodSignatureForSelector (id rcv, SEL method, SEL arg0)
{
id ret;
IMP simp = super_imp(rcv, method, (IMP)imp_methodSignatureForSelector);
ret = (*simp)(rcv, method, arg0);
ret = ((id (*)(id, SEL, SEL))simp)(rcv, method, arg0);
if (ret == nil)
ret = [get_slave(rcv) methodSignatureForSelector: arg0];
return ret;
@@ -314,7 +314,7 @@ static id imp_forwardInvocation (id rcv, SEL method, NSInvocation arg0)
if ([slave respondsToSelector: [arg0 selector]])
[slave forwardInvocation: arg0];
else
(*simp)(rcv, method, arg0);
((id (*)(id, SEL, SEL))*simp)(rcv, method, arg0);
return nil;
}
diff --git a/ext/rubycocoa/mdl_objwrapper.m b/ext/rubycocoa/mdl_objwrapper.m
index 08cb5d861494aa4c6b974a6bd9bce49e0d165631..1f1adecb493eda21ab93532a0ac2161c86467d74 100644
--- a/ext/rubycocoa/mdl_objwrapper.m
+++ b/ext/rubycocoa/mdl_objwrapper.m
@@ -372,7 +372,7 @@ ocm_send(int argc, VALUE* argv, VALUE rcv, VALUE* result)
exception = Qnil;
@try {
OBJWRP_LOG("direct call easy method %s imp %p", sel_getName(selector), imp);
val = (*imp)(oc_rcv, selector);
val = ((id (*)(id, SEL))*imp)(oc_rcv, selector);
}
@catch (id oc_exception) {
OBJWRP_LOG("got objc exception '%@' -- forwarding...", oc_exception);