# HG changeset patch # User William Welliver # Date 1635387616 14400 # Wed Oct 27 22:20:16 2021 -0400 # Node ID 24fecf560b47d56566a736cbf999fab765072962 # Parent b4cd7bf231ce70f9677378a0f6e18f9b95dde8d5 arm64 has objc_sendMsg only diff --git a/dynamic_class.m b/dynamic_class.m --- a/dynamic_class.m +++ b/dynamic_class.m @@ -5,6 +5,7 @@ #import "OC_Mapping.h" #include "piobjc.h" #include "method_dispatch.h" +#include "proxy-registry.h" #undef THIS #define THIS OBJ2_DYNAMIC_OBJECT(Pike_fp->current_object) @@ -494,7 +495,11 @@ case 'd': case 'f': msgResult = malloc(sizeof(double)); +#if defined(__aarch64__) + ffi_call(cif, FFI_FN(objc_msgSend), msgResult, argumentList); +#else ffi_call(cif, FFI_FN(objc_msgSend_fpret), msgResult, argumentList); +#endif break; @@ -503,7 +508,11 @@ case '(': THREADS_ALLOW(); Pike_error("No, no, no... we've not implemented struct returns yet.\n"); +#if defined(__aarch64__) + ffi_call(cif, FFI_FN(objc_msgSend), msgResult, argumentList); +#else ffi_call(cif, FFI_FN(objc_msgSend_stret), msgResult, argumentList); +#endif THREADS_DISALLOW(); break;