From 08aa11cd8e5319c445cfe63089160ad6402e0c31 Mon Sep 17 00:00:00 2001 From: Mads Marquart Date: Fri, 4 Jun 2021 19:41:11 +0200 Subject: [PATCH] Manually dereference Id See https://github.com/SSheldon/rust-objc/pull/102 --- examples/custom_class.rs | 4 ++-- src/dictionary.rs | 2 +- src/enumerator.rs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/custom_class.rs b/examples/custom_class.rs index 793e0bf..e4524ed 100644 --- a/examples/custom_class.rs +++ b/examples/custom_class.rs @@ -66,12 +66,12 @@ fn main() { obj.set_number(7); println!("Number: {}", unsafe { - let number: u32 = msg_send![obj, number]; + let number: u32 = msg_send![&*obj, number]; number }); unsafe { - let _: () = msg_send![obj, setNumber:12u32]; + let _: () = msg_send![&*obj, setNumber:12u32]; } println!("Number: {}", obj.number()); } diff --git a/src/dictionary.rs b/src/dictionary.rs index 44b96ef..9c0d1f0 100644 --- a/src/dictionary.rs +++ b/src/dictionary.rs @@ -107,7 +107,7 @@ pub trait INSDictionary : INSObject { fn into_values_array(dict: Id) -> Id> { unsafe { - let vals = msg_send![dict, allValues]; + let vals = msg_send![&*dict, allValues]; Id::from_ptr(vals) } } diff --git a/src/enumerator.rs b/src/enumerator.rs index 9f2c081..a5accdb 100644 --- a/src/enumerator.rs +++ b/src/enumerator.rs @@ -25,7 +25,7 @@ impl<'a, T> Iterator for NSEnumerator<'a, T> where T: INSObject { fn next(&mut self) -> Option<&'a T> { unsafe { - let obj: *mut T = msg_send![self.id, nextObject]; + let obj: *mut T = msg_send![&*self.id, nextObject]; if obj.is_null() { None } else { Some(&*obj) } } }