diff --git a/src/dc_lot.rs b/src/dc_lot.rs index 8ca1e05ec..87ef926a1 100644 --- a/src/dc_lot.rs +++ b/src/dc_lot.rs @@ -6,8 +6,6 @@ use crate::dc_tools::*; use crate::stock::StockMessage; use crate::types::*; use crate::x::*; -use std::ffi::CString; -use std::ptr; /* * Structure behind dc_lot_t */ #[derive(Copy, Clone)] @@ -171,14 +169,15 @@ pub unsafe fn dc_lot_fill( } } - let msgtext_c = (*msg) - .text - .as_ref() - .map(|s| CString::yolo(String::as_str(s))); - let msgtext_ptr = msgtext_c.map_or(ptr::null(), |s| s.as_ptr()); + let message_text = (*msg).text.as_ref().unwrap(); - (*lot).text2 = - dc_msg_get_summarytext_by_raw((*msg).type_0, msgtext_ptr, &mut (*msg).param, 160, context); + (*lot).text2 = dc_msg_get_summarytext_by_raw( + (*msg).type_0, + message_text.strdup(), + &mut (*msg).param, + 160, + context, + ); (*lot).timestamp = dc_msg_get_timestamp(msg); (*lot).state = (*msg).state;