On Sun, 24 May 2020 at 02:01, Sean P. DeNigris <sean@clipperadams.com> wrote:
Esteban Lorenzano wrote
The easiest way I have to explain is:
You use an OpaqueObject when you will refer to the opaque type in calls as: someFunction(opaqueobject *someArg). You use an ExternalObject when you will refer to the opaque type in calls as: someFunction(externalobject someArg).
Very clear! We're getting somewhere :) But...
What if a type is used both ways?
For example: ^ self ffiCall: #(Method * class_copyMethodList(Class self, uint *outCount)) and ^ self ffiCall: #(struct objc_method_description * method_getDescription(Method self))
In advance of Esteban's answer I'd like to understand better your situation above. Passing a method to a function seems like setting up a call-back? Do you have a concrete C example that can be viewed in its full context? cheers -ben