libffi allows calling any C-function or ObjC method at runtime.
libffi-iphone is a stripped down version of libffi, tailored just for the iPhone. libffi-iphone includes source code for both the iPhone simulator and the iPhone itself.
Works just like libffi.
ffi closures don't work on the iPhone, as mprotect
is disabled.
You can however retarget existing functions if you have a function pool. See Tim Burks' post about Nu's method pool, see JSCocoa's Burks Pool for another implementation.
To retarget an ObjC pool method, use the method's hidden _cmd
argument (the current selector) and [self class]
. This will tell you which method of which class is being called.
libffi-iphone uses libffi's license.
Problems, questions
Patrick Geiller
parmanoir@gmail.com