Skip to content

Commit cfd7fef

Browse files
committed
cairo: Pass a mutable reference when we expect the function to mutate the value
1 parent 7022a50 commit cfd7fef

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

cairo/src/surface.rs

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -78,14 +78,16 @@ impl Surface {
7878
#[doc(alias = "cairo_surface_get_mime_data")]
7979
#[doc(alias = "get_mime_data")]
8080
pub fn mime_data(&self, mime_type: &str) -> Option<Vec<u8>> {
81-
let data_ptr: *mut u8 = ptr::null_mut();
81+
let mut data_ptr: *mut u8 = ptr::null_mut();
8282
let mut length: c_ulong = 0;
83+
// The function actually needs a mutable pointer
84+
#[allow(clippy::unnecessary_mut_passed)]
8385
unsafe {
8486
let mime_type = CString::new(mime_type).unwrap();
8587
ffi::cairo_surface_get_mime_data(
8688
self.to_raw_none(),
8789
mime_type.as_ptr(),
88-
&data_ptr,
90+
&mut data_ptr,
8991
&mut length,
9092
);
9193
if !data_ptr.is_null() && length != 0 {
@@ -99,15 +101,19 @@ impl Surface {
99101
#[doc(alias = "cairo_surface_get_mime_data")]
100102
#[doc(alias = "get_mime_data_raw")]
101103
pub unsafe fn mime_data_raw(&self, mime_type: &str) -> Option<&[u8]> {
102-
let data_ptr: *mut u8 = ptr::null_mut();
104+
let mut data_ptr: *mut u8 = ptr::null_mut();
103105
let mut length: c_ulong = 0;
104106
let mime_type = CString::new(mime_type).unwrap();
105-
ffi::cairo_surface_get_mime_data(
106-
self.to_raw_none(),
107-
mime_type.as_ptr(),
108-
&data_ptr,
109-
&mut length,
110-
);
107+
// The function actually needs a mutable pointer
108+
#[allow(clippy::unnecessary_mut_passed)]
109+
{
110+
ffi::cairo_surface_get_mime_data(
111+
self.to_raw_none(),
112+
mime_type.as_ptr(),
113+
&mut data_ptr,
114+
&mut length,
115+
);
116+
}
111117
if !data_ptr.is_null() && length != 0 {
112118
Some(slice::from_raw_parts(
113119
data_ptr as *const u8,

0 commit comments

Comments
 (0)