aboutsummaryrefslogtreecommitdiffstats
path: root/meta-agl/recipes-sota/rvi-sota-client/files/dbus-rs/0001-Cast-correctly-c_char-raw-pointers-for-ARM.patch
blob: 2d3dbedca2b93e50708a6c9ca4f23c0259272264 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
From 768202d3223813e71848758ecafcfeab276d9101 Mon Sep 17 00:00:00 2001
From: Leon Anavi <leon.anavi@konsulko.com>
Date: Sat, 12 Mar 2016 17:52:02 +0200
Subject: [PATCH] Cast correctly c_char raw pointers for ARM

Fix the build of crate dbus-rs (version 0.1.2) for ARM
with correct casts of c_char raw pointers.

Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
 src/lib.rs     | 18 +++++++++---------
 src/message.rs | 10 +++++-----
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs
index aac9c0f..8134dc4 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -60,7 +60,7 @@ unsafe impl Send for Error {}
 
 fn c_str_to_slice(c: & *const libc::c_char) -> Option<&str> {
     if *c == ptr::null() { None }
-    else { std::str::from_utf8( unsafe { CStr::from_ptr(*c).to_bytes() }).ok() }
+    else { std::str::from_utf8( unsafe { CStr::from_ptr(*c as *const _).to_bytes() }).ok() }
 }
 
 fn to_c_str(n: &str) -> CString { CString::new(n.as_bytes()).unwrap() }
@@ -72,7 +72,7 @@ impl Error {
         let m = to_c_str(&message.replace("%","%%"));
         let mut e = Error::empty();
 
-        unsafe { ffi::dbus_set_error(e.get_mut(), n.as_ptr(), m.as_ptr()) };
+        unsafe { ffi::dbus_set_error(e.get_mut(), n.as_ptr()  as *const _, m.as_ptr()  as *const _) };
         e
     }
 
@@ -272,21 +272,21 @@ impl Connection {
         };
         let r = unsafe {
             let user_data: *mut libc::c_void = std::mem::transmute(&*self.i);
-            ffi::dbus_connection_try_register_object_path(self.conn(), p.as_ptr(), &vtable, user_data, e.get_mut())
+            ffi::dbus_connection_try_register_object_path(self.conn(), p.as_ptr() as *const _, &vtable, user_data, e.get_mut())
         };
         if r == 0 { Err(e) } else { Ok(()) }
     }
 
     pub fn unregister_object_path(&self, path: &str) {
         let p = to_c_str(path);
-        let r = unsafe { ffi::dbus_connection_unregister_object_path(self.conn(), p.as_ptr()) };
+        let r = unsafe { ffi::dbus_connection_unregister_object_path(self.conn(), p.as_ptr() as *const _) };
         if r == 0 { panic!("Out of memory"); }
     }
 
     pub fn list_registered_object_paths(&self, path: &str) -> Vec<String> {
         let p = to_c_str(path);
         let mut clist: *mut *mut libc::c_char = ptr::null_mut();
-        let r = unsafe { ffi::dbus_connection_list_registered(self.conn(), p.as_ptr(), &mut clist) };
+        let r = unsafe { ffi::dbus_connection_list_registered(self.conn(), p.as_ptr() as *const _, &mut clist) };
         if r == 0 { panic!("Out of memory"); }
         let mut v = Vec::new();
         let mut i = 0;
@@ -306,28 +306,28 @@ impl Connection {
     pub fn register_name(&self, name: &str, flags: u32) -> Result<RequestNameReply, Error> {
         let mut e = Error::empty();
         let n = to_c_str(name);
-        let r = unsafe { ffi::dbus_bus_request_name(self.conn(), n.as_ptr(), flags, e.get_mut()) };
+        let r = unsafe { ffi::dbus_bus_request_name(self.conn(), n.as_ptr() as *const _, flags, e.get_mut()) };
         if r == -1 { Err(e) } else { Ok(unsafe { std::mem::transmute(r) }) }
     }
 
     pub fn release_name(&self, name: &str) -> Result<ReleaseNameReply, Error> {
         let mut e = Error::empty();
         let n = to_c_str(name);
-        let r = unsafe { ffi::dbus_bus_release_name(self.conn(), n.as_ptr(), e.get_mut()) };
+        let r = unsafe { ffi::dbus_bus_release_name(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
         if r == -1 { Err(e) } else { Ok(unsafe { std::mem::transmute(r) }) }
     }
 
     pub fn add_match(&self, rule: &str) -> Result<(), Error> {
         let mut e = Error::empty();
         let n = to_c_str(rule);
-        unsafe { ffi::dbus_bus_add_match(self.conn(), n.as_ptr(), e.get_mut()) };
+        unsafe { ffi::dbus_bus_add_match(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
         if e.name().is_some() { Err(e) } else { Ok(()) }
     }
 
     pub fn remove_match(&self, rule: &str) -> Result<(), Error> {
         let mut e = Error::empty();
         let n = to_c_str(rule);
-        unsafe { ffi::dbus_bus_remove_match(self.conn(), n.as_ptr(), e.get_mut()) };
+        unsafe { ffi::dbus_bus_remove_match(self.conn(), n.as_ptr() as *const _, e.get_mut()) };
         if e.name().is_some() { Err(e) } else { Ok(()) }
     }
 
diff --git a/src/message.rs b/src/message.rs
index 23871f8..e3dd021 100644
--- a/src/message.rs
+++ b/src/message.rs
@@ -126,7 +126,7 @@ fn iter_append_array(i: &mut ffi::DBusMessageIter, a: &[MessageItem], t: TypeSig
     let mut subiter = new_dbus_message_iter();
     let atype = to_c_str(&t);
 
-    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_ARRAY, atype.as_ptr(), &mut subiter) } != 0);
+    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_ARRAY, atype.as_ptr() as *const _, &mut subiter) } != 0);
     for item in a.iter() {
 //        assert!(item.type_sig() == t);
         item.iter_append(&mut subiter);
@@ -148,7 +148,7 @@ fn iter_append_struct(i: &mut ffi::DBusMessageIter, a: &[MessageItem]) {
 fn iter_append_variant(i: &mut ffi::DBusMessageIter, a: &MessageItem) {
     let mut subiter = new_dbus_message_iter();
     let atype = to_c_str(&format!("{}", a.array_type() as u8 as char));
-    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_VARIANT, atype.as_ptr(), &mut subiter) } != 0);
+    assert!(unsafe { ffi::dbus_message_iter_open_container(i, ffi::DBUS_TYPE_VARIANT, atype.as_ptr()  as *const _, &mut subiter) } != 0);
     a.iter_append(&mut subiter);
     assert!(unsafe { ffi::dbus_message_iter_close_container(i, &mut subiter) } != 0);
 }
@@ -481,7 +481,7 @@ impl Message {
         init_dbus();
         let (d, p, i, m) = (to_c_str(destination), to_c_str(path), to_c_str(iface), to_c_str(method));
         let ptr = unsafe {
-            ffi::dbus_message_new_method_call(d.as_ptr(), p.as_ptr(), i.as_ptr(), m.as_ptr())
+            ffi::dbus_message_new_method_call(d.as_ptr() as *const _, p.as_ptr() as *const _, i.as_ptr() as *const _, m.as_ptr() as *const _)
         };
         if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
     }
@@ -490,7 +490,7 @@ impl Message {
         init_dbus();
         let (p, i, m) = (to_c_str(path), to_c_str(iface), to_c_str(method));
         let ptr = unsafe {
-            ffi::dbus_message_new_signal(p.as_ptr(), i.as_ptr(), m.as_ptr())
+            ffi::dbus_message_new_signal(p.as_ptr() as *const _, i.as_ptr() as *const _, m.as_ptr() as *const _)
         };
         if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
     }
@@ -502,7 +502,7 @@ impl Message {
 
     pub fn new_error(m: &Message, error_name: &str, error_message: &str) -> Option<Message> {
         let (en, em) = (to_c_str(error_name), to_c_str(error_message));
-        let ptr = unsafe { ffi::dbus_message_new_error(m.msg, en.as_ptr(), em.as_ptr()) };
+        let ptr = unsafe { ffi::dbus_message_new_error(m.msg, en.as_ptr() as *const _, em.as_ptr() as *const _) };
         if ptr == ptr::null_mut() { None } else { Some(Message { msg: ptr} ) }
     }
 
-- 
2.1.4