Skip to content

Commit be0aea7

Browse files
committed
core: Fix edition 2024 warnings
1 parent 3216d54 commit be0aea7

File tree

19 files changed

+617
-444
lines changed

19 files changed

+617
-444
lines changed

internal/core/callbacks.rs

Lines changed: 33 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ pub(crate) mod ffi {
9494
#[unsafe(no_mangle)]
9595
pub unsafe extern "C" fn slint_callback_init(out: *mut CallbackOpaque) {
9696
assert_eq!(core::mem::size_of::<CallbackOpaque>(), core::mem::size_of::<Callback<()>>());
97-
core::ptr::write(out as *mut Callback<()>, Default::default());
97+
unsafe { core::ptr::write(out as *mut Callback<()>, Default::default()) };
9898
}
9999

100100
/// Emit the callback
@@ -104,11 +104,13 @@ pub(crate) mod ffi {
104104
arg: *const c_void,
105105
ret: *mut c_void,
106106
) {
107-
let sig = &*(sig as *const Callback<c_void>);
108-
if let Some(mut h) = sig.handler.take() {
109-
h(&*arg, &mut *ret);
110-
assert!(sig.handler.take().is_none(), "Callback Handler set while called");
111-
sig.handler.set(Some(h));
107+
unsafe {
108+
let sig = &*(sig as *const Callback<c_void>);
109+
if let Some(mut h) = sig.handler.take() {
110+
h(&*arg, &mut *ret);
111+
assert!(sig.handler.take().is_none(), "Callback Handler set while called");
112+
sig.handler.set(Some(h));
113+
}
112114
}
113115
}
114116

@@ -122,38 +124,41 @@ pub(crate) mod ffi {
122124
user_data: *mut c_void,
123125
drop_user_data: Option<extern "C" fn(*mut c_void)>,
124126
) {
125-
let sig = &mut *(sig as *mut Callback<c_void>);
126-
127-
struct UserData {
128-
user_data: *mut c_void,
129-
drop_user_data: Option<extern "C" fn(*mut c_void)>,
130-
binding: extern "C" fn(user_data: *mut c_void, arg: *const c_void, ret: *mut c_void),
131-
}
127+
unsafe {
128+
let sig = &mut *(sig as *mut Callback<c_void>);
129+
130+
struct UserData {
131+
user_data: *mut c_void,
132+
drop_user_data: Option<extern "C" fn(*mut c_void)>,
133+
binding:
134+
extern "C" fn(user_data: *mut c_void, arg: *const c_void, ret: *mut c_void),
135+
}
132136

133-
impl Drop for UserData {
134-
fn drop(&mut self) {
135-
if let Some(x) = self.drop_user_data {
136-
x(self.user_data)
137+
impl Drop for UserData {
138+
fn drop(&mut self) {
139+
if let Some(x) = self.drop_user_data {
140+
x(self.user_data)
141+
}
137142
}
138143
}
139-
}
140144

141-
impl UserData {
142-
/// Safety: the arguments must be valid pointers
143-
unsafe fn call(&self, arg: *const c_void, ret: *mut c_void) {
144-
(self.binding)(self.user_data, arg, ret)
145+
impl UserData {
146+
/// Safety: the arguments must be valid pointers
147+
unsafe fn call(&self, arg: *const c_void, ret: *mut c_void) {
148+
(self.binding)(self.user_data, arg, ret)
149+
}
145150
}
146-
}
147151

148-
let ud = UserData { user_data, drop_user_data, binding };
149-
sig.handler.set(Some(Box::new(move |a: &(), r: &mut ()| {
150-
ud.call(a as *const c_void, r as *mut c_void)
151-
})));
152+
let ud = UserData { user_data, drop_user_data, binding };
153+
sig.handler.set(Some(Box::new(move |a: &(), r: &mut ()| {
154+
ud.call(a as *const c_void, r as *mut c_void)
155+
})));
156+
}
152157
}
153158

154159
/// Destroy callback
155160
#[unsafe(no_mangle)]
156161
pub unsafe extern "C" fn slint_callback_drop(handle: *mut CallbackOpaque) {
157-
core::ptr::drop_in_place(handle as *mut Callback<()>);
162+
unsafe { core::ptr::drop_in_place(handle as *mut Callback<()>) };
158163
}
159164
}

internal/core/graphics/color.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -581,17 +581,17 @@ pub(crate) mod ffi {
581581

582582
#[unsafe(no_mangle)]
583583
pub unsafe extern "C" fn slint_color_brighter(col: &Color, factor: f32, out: *mut Color) {
584-
core::ptr::write(out, col.brighter(factor))
584+
unsafe { core::ptr::write(out, col.brighter(factor)) }
585585
}
586586

587587
#[unsafe(no_mangle)]
588588
pub unsafe extern "C" fn slint_color_darker(col: &Color, factor: f32, out: *mut Color) {
589-
core::ptr::write(out, col.darker(factor))
589+
unsafe { core::ptr::write(out, col.darker(factor)) }
590590
}
591591

592592
#[unsafe(no_mangle)]
593593
pub unsafe extern "C" fn slint_color_transparentize(col: &Color, factor: f32, out: *mut Color) {
594-
core::ptr::write(out, col.transparentize(factor))
594+
unsafe { core::ptr::write(out, col.transparentize(factor)) }
595595
}
596596

597597
#[unsafe(no_mangle)]
@@ -601,12 +601,12 @@ pub(crate) mod ffi {
601601
factor: f32,
602602
out: *mut Color,
603603
) {
604-
core::ptr::write(out, col1.mix(col2, factor))
604+
unsafe { core::ptr::write(out, col1.mix(col2, factor)) }
605605
}
606606

607607
#[unsafe(no_mangle)]
608608
pub unsafe extern "C" fn slint_color_with_alpha(col: &Color, alpha: f32, out: *mut Color) {
609-
core::ptr::write(out, col.with_alpha(alpha))
609+
unsafe { core::ptr::write(out, col.with_alpha(alpha)) }
610610
}
611611

612612
#[unsafe(no_mangle)]

internal/core/graphics/image.rs

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -873,7 +873,7 @@ impl Image {
873873
texture_id: core::num::NonZeroU32,
874874
size: IntSize,
875875
) -> Self {
876-
BorrowedOpenGLTextureBuilder::new_gl_2d_rgba_texture(texture_id, size).build()
876+
unsafe { BorrowedOpenGLTextureBuilder::new_gl_2d_rgba_texture(texture_id, size).build() }
877877
}
878878

879879
/// Creates a new Image from the specified buffer, which contains SVG raw data.
@@ -1336,10 +1336,13 @@ pub(crate) mod ffi {
13361336
#[cfg(feature = "image-decoders")]
13371337
#[unsafe(no_mangle)]
13381338
pub unsafe extern "C" fn slint_image_load_from_path(path: &SharedString, image: *mut Image) {
1339-
core::ptr::write(
1340-
image,
1341-
Image::load_from_path(std::path::Path::new(path.as_str())).unwrap_or(Image::default()),
1342-
)
1339+
unsafe {
1340+
core::ptr::write(
1341+
image,
1342+
Image::load_from_path(std::path::Path::new(path.as_str()))
1343+
.unwrap_or(Image::default()),
1344+
)
1345+
}
13431346
}
13441347

13451348
#[cfg(feature = "std")]
@@ -1349,7 +1352,7 @@ pub(crate) mod ffi {
13491352
format: Slice<'static, u8>,
13501353
image: *mut Image,
13511354
) {
1352-
core::ptr::write(image, super::load_image_from_embedded_data(data, format));
1355+
unsafe { core::ptr::write(image, super::load_image_from_embedded_data(data, format)) };
13531356
}
13541357

13551358
#[unsafe(no_mangle)]
@@ -1382,7 +1385,7 @@ pub(crate) mod ffi {
13821385
textures: &'static StaticTextures,
13831386
image: *mut Image,
13841387
) {
1385-
core::ptr::write(image, Image::from(ImageInner::StaticTextures(textures)));
1388+
unsafe { core::ptr::write(image, Image::from(ImageInner::StaticTextures(textures))) };
13861389
}
13871390

13881391
#[unsafe(no_mangle)]

internal/core/graphics/path.rs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -402,8 +402,9 @@ pub(crate) mod ffi {
402402
first_element: *const PathElement,
403403
count: usize,
404404
) {
405-
let arr = crate::SharedVector::from(core::slice::from_raw_parts(first_element, count));
406-
core::ptr::write(out as *mut crate::SharedVector<PathElement>, arr);
405+
let arr =
406+
crate::SharedVector::from(unsafe { core::slice::from_raw_parts(first_element, count) });
407+
unsafe { core::ptr::write(out as *mut crate::SharedVector<PathElement>, arr) };
407408
}
408409

409410
#[unsafe(no_mangle)]
@@ -416,13 +417,15 @@ pub(crate) mod ffi {
416417
first_coordinate: *const Point,
417418
coordinate_count: usize,
418419
) {
419-
let events =
420-
crate::SharedVector::from(core::slice::from_raw_parts(first_event, event_count));
421-
core::ptr::write(out_events as *mut crate::SharedVector<PathEvent>, events);
422-
let coordinates = crate::SharedVector::from(core::slice::from_raw_parts(
423-
first_coordinate,
424-
coordinate_count,
425-
));
426-
core::ptr::write(out_coordinates as *mut crate::SharedVector<Point>, coordinates);
420+
let events = crate::SharedVector::from(unsafe {
421+
core::slice::from_raw_parts(first_event, event_count)
422+
});
423+
unsafe { core::ptr::write(out_events as *mut crate::SharedVector<PathEvent>, events) };
424+
let coordinates = crate::SharedVector::from(unsafe {
425+
core::slice::from_raw_parts(first_coordinate, coordinate_count)
426+
});
427+
unsafe {
428+
core::ptr::write(out_coordinates as *mut crate::SharedVector<Point>, coordinates)
429+
};
427430
}
428431
}

internal/core/item_tree.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,8 +1302,10 @@ pub(crate) mod ffi {
13021302
item_tree_rc: &ItemTreeRc,
13031303
window_handle: *const crate::window::ffi::WindowAdapterRcOpaque,
13041304
) {
1305-
let window_adapter = (window_handle as *const WindowAdapterRc).as_ref().cloned();
1306-
super::register_item_tree(item_tree_rc, window_adapter)
1305+
unsafe {
1306+
let window_adapter = (window_handle as *const WindowAdapterRc).as_ref().cloned();
1307+
super::register_item_tree(item_tree_rc, window_adapter)
1308+
}
13071309
}
13081310

13091311
/// Free the backend graphics resources allocated in the item array.
@@ -1313,13 +1315,15 @@ pub(crate) mod ffi {
13131315
item_array: Slice<vtable::VOffset<u8, ItemVTable, vtable::AllowPin>>,
13141316
window_handle: *const crate::window::ffi::WindowAdapterRcOpaque,
13151317
) {
1316-
let window_adapter = &*(window_handle as *const WindowAdapterRc);
1317-
super::unregister_item_tree(
1318-
core::pin::Pin::new_unchecked(&*(component.as_ptr() as *const u8)),
1319-
core::pin::Pin::into_inner(component),
1320-
item_array.as_slice(),
1321-
window_adapter,
1322-
)
1318+
unsafe {
1319+
let window_adapter = &*(window_handle as *const WindowAdapterRc);
1320+
super::unregister_item_tree(
1321+
core::pin::Pin::new_unchecked(&*(component.as_ptr() as *const u8)),
1322+
core::pin::Pin::into_inner(component),
1323+
item_array.as_slice(),
1324+
window_adapter,
1325+
)
1326+
}
13231327
}
13241328

13251329
/// Expose `crate::item_tree::visit_item_tree` to C++

internal/core/items.rs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1592,9 +1592,11 @@ pub unsafe extern "C" fn slint_contextmenu_close(
15921592
self_component: &vtable::VRc<crate::item_tree::ItemTreeVTable>,
15931593
self_index: u32,
15941594
) {
1595-
let window_adapter = &*(window_adapter as *const Rc<dyn WindowAdapter>);
1596-
let self_rc = ItemRc::new(self_component.clone(), self_index);
1597-
s.close(window_adapter, &self_rc);
1595+
unsafe {
1596+
let window_adapter = &*(window_adapter as *const Rc<dyn WindowAdapter>);
1597+
let self_rc = ItemRc::new(self_component.clone(), self_index);
1598+
s.close(window_adapter, &self_rc);
1599+
}
15981600
}
15991601

16001602
#[cfg(feature = "ffi")]
@@ -1605,9 +1607,11 @@ pub unsafe extern "C" fn slint_contextmenu_is_open(
16051607
self_component: &vtable::VRc<crate::item_tree::ItemTreeVTable>,
16061608
self_index: u32,
16071609
) -> bool {
1608-
let window_adapter = &*(window_adapter as *const Rc<dyn WindowAdapter>);
1609-
let self_rc = ItemRc::new(self_component.clone(), self_index);
1610-
s.is_open(window_adapter, &self_rc)
1610+
unsafe {
1611+
let window_adapter = &*(window_adapter as *const Rc<dyn WindowAdapter>);
1612+
let self_rc = ItemRc::new(self_component.clone(), self_index);
1613+
s.is_open(window_adapter, &self_rc)
1614+
}
16111615
}
16121616

16131617
/// The implementation of the `BoxShadow` element

internal/core/items/flickable.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -618,13 +618,15 @@ fn ensure_in_bound(flick: Pin<&Flickable>, p: LogicalPoint, flick_rc: &ItemRc) -
618618
#[cfg(feature = "ffi")]
619619
#[unsafe(no_mangle)]
620620
pub unsafe extern "C" fn slint_flickable_data_init(data: *mut FlickableDataBox) {
621-
core::ptr::write(data, FlickableDataBox::default());
621+
unsafe { core::ptr::write(data, FlickableDataBox::default()) };
622622
}
623623

624624
/// # Safety
625625
/// This must be called using a non-null pointer pointing to an initialized FlickableDataBox
626626
#[cfg(feature = "ffi")]
627627
#[unsafe(no_mangle)]
628628
pub unsafe extern "C" fn slint_flickable_data_free(data: *mut FlickableDataBox) {
629-
core::ptr::drop_in_place(data);
629+
unsafe {
630+
core::ptr::drop_in_place(data);
631+
}
630632
}

internal/core/items/input_items.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -679,7 +679,9 @@ pub unsafe extern "C" fn slint_swipegesturehandler_cancel(
679679
self_component: &vtable::VRc<crate::item_tree::ItemTreeVTable>,
680680
self_index: u32,
681681
) {
682-
let window_adapter = &*(window_adapter as *const Rc<dyn WindowAdapter>);
683-
let self_rc = ItemRc::new(self_component.clone(), self_index);
684-
s.cancel(window_adapter, &self_rc);
682+
unsafe {
683+
let window_adapter = &*(window_adapter as *const Rc<dyn WindowAdapter>);
684+
let self_rc = ItemRc::new(self_component.clone(), self_index);
685+
s.cancel(window_adapter, &self_rc);
686+
}
685687
}

0 commit comments

Comments
 (0)