@@ -172,10 +172,23 @@ mod imp {
172
172
173
173
extern {
174
174
fn sel_registerName ( name : * const libc:: c_uchar ) -> Sel ;
175
- fn objc_msgSend ( obj : NsId , sel : Sel , ...) -> NsId ;
176
175
fn objc_getClass ( class_name : * const libc:: c_uchar ) -> NsId ;
177
176
}
178
177
178
+ #[ cfg( target_arch="aarch64" ) ]
179
+ extern {
180
+ fn objc_msgSend ( obj : NsId , sel : Sel ) -> NsId ;
181
+ #[ link_name="objc_msgSend" ]
182
+ fn objc_msgSend_ul ( obj : NsId , sel : Sel , i : libc:: c_ulong ) -> NsId ;
183
+ }
184
+
185
+ #[ cfg( not( target_arch="aarch64" ) ) ]
186
+ extern {
187
+ fn objc_msgSend ( obj : NsId , sel : Sel , ...) -> NsId ;
188
+ #[ link_name="objc_msgSend" ]
189
+ fn objc_msgSend_ul ( obj : NsId , sel : Sel , ...) -> NsId ;
190
+ }
191
+
179
192
#[ link( name = "Foundation" , kind = "framework" ) ]
180
193
#[ link( name = "objc" ) ]
181
194
#[ cfg( not( cargobuild) ) ]
@@ -199,7 +212,7 @@ mod imp {
199
212
200
213
let cnt: usize = mem:: transmute ( objc_msgSend ( args, count_sel) ) ;
201
214
for i in 0 ..cnt {
202
- let tmp = objc_msgSend ( args, object_at_sel, i) ;
215
+ let tmp = objc_msgSend_ul ( args, object_at_sel, i as libc :: c_ulong ) ;
203
216
let utf_c_str: * const libc:: c_char =
204
217
mem:: transmute ( objc_msgSend ( tmp, utf8_sel) ) ;
205
218
let bytes = CStr :: from_ptr ( utf_c_str) . to_bytes ( ) ;
0 commit comments