Skip to content

Commit 733109d

Browse files
committed
use unsafe blocks in unsafe extern "C" functions
1 parent aaa8fd7 commit 733109d

File tree

1 file changed

+7
-15
lines changed

1 file changed

+7
-15
lines changed

rustecal-pubsub/src/payload_writer.rs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,9 @@ thread_local! {
3333
pub(crate) unsafe extern "C" fn write_full_cb(buffer: *mut c_void, size: usize) -> c_int {
3434
CURRENT_WRITER.with(|cell| {
3535
if let Some(writer_ptr) = *cell.borrow() {
36-
let writer: &mut dyn PayloadWriter = &mut *writer_ptr;
37-
let buf = std::slice::from_raw_parts_mut(buffer as *mut u8, size);
38-
if writer.write_full(buf) {
39-
0
40-
} else {
41-
-1
42-
}
36+
let writer: &mut dyn PayloadWriter = unsafe { &mut *writer_ptr };
37+
let buf = unsafe { std::slice::from_raw_parts_mut(buffer as *mut u8, size) };
38+
if writer.write_full(buf) { 0 } else { -1 }
4339
} else {
4440
-1
4541
}
@@ -50,13 +46,9 @@ pub(crate) unsafe extern "C" fn write_full_cb(buffer: *mut c_void, size: usize)
5046
pub(crate) unsafe extern "C" fn write_mod_cb(buffer: *mut c_void, size: usize) -> c_int {
5147
CURRENT_WRITER.with(|cell| {
5248
if let Some(writer_ptr) = *cell.borrow() {
53-
let writer: &mut dyn PayloadWriter = &mut *writer_ptr;
54-
let buf = std::slice::from_raw_parts_mut(buffer as *mut u8, size);
55-
if writer.write_modified(buf) {
56-
0
57-
} else {
58-
-1
59-
}
49+
let writer: &mut dyn PayloadWriter = unsafe { &mut *writer_ptr };
50+
let buf = unsafe { std::slice::from_raw_parts_mut(buffer as *mut u8, size) };
51+
if writer.write_modified(buf) { 0 } else { -1 }
6052
} else {
6153
-1
6254
}
@@ -67,7 +59,7 @@ pub(crate) unsafe extern "C" fn write_mod_cb(buffer: *mut c_void, size: usize) -
6759
pub(crate) unsafe extern "C" fn get_size_cb() -> usize {
6860
CURRENT_WRITER.with(|cell| {
6961
if let Some(writer_ptr) = *cell.borrow() {
70-
let writer: &mut dyn PayloadWriter = &mut *writer_ptr;
62+
let writer: &mut dyn PayloadWriter = unsafe { &mut *writer_ptr };
7163
writer.get_size()
7264
} else {
7365
0

0 commit comments

Comments
 (0)