aboutsummaryrefslogtreecommitdiff
path: root/lib/darwin
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/darwin/substrate-compat.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/lib/darwin/substrate-compat.c b/lib/darwin/substrate-compat.c
index cf44b19..345d53f 100644
--- a/lib/darwin/substrate-compat.c
+++ b/lib/darwin/substrate-compat.c
@@ -46,10 +46,14 @@ void SubHookFunction(void *symbol, void *replace, void **result) {
}
*/
-#ifdef __APPLE__
-/*void SubHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result) __asm__("SubHookMessageEx");
-void SubHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result) {
-
-}*/
+EXPORT
+void SubHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result)
+ __asm__("SubHookMessageEx");
-#endif
+void SubHookMessageEx(Class _class, SEL sel, IMP imp, IMP *result) {
+ int ret = substitute_hook_objc_message(_class, sel, imp, result, NULL);
+ if (ret) {
+ panic("SubHookMessageEx: substitute_hook_objc_message returned %s\n",
+ substitute_strerror(ret));
+ }
+}