store C strings in vars (#747)

This commit is contained in:
Logan McNaughton
2026-04-15 13:10:15 +02:00
committed by GitHub
parent b40ec6940f
commit 20bad48894
2 changed files with 12 additions and 21 deletions
+6 -10
View File
@@ -293,22 +293,18 @@ pub fn get_hardcore() -> bool {
pub fn login_user(username: String, password: String, tx: tokio::sync::oneshot::Sender<bool>) {
unsafe {
let tx_ptr = Box::into_raw(Box::new(tx)) as *mut std::ffi::c_void;
ra_login_user(
std::ffi::CString::new(username).unwrap().as_ptr(),
std::ffi::CString::new(password).unwrap().as_ptr(),
tx_ptr,
)
let c_username = std::ffi::CString::new(username).unwrap();
let c_password = std::ffi::CString::new(password).unwrap();
ra_login_user(c_username.as_ptr(), c_password.as_ptr(), tx_ptr)
};
}
pub fn login_token_user(username: String, token: String, tx: tokio::sync::oneshot::Sender<bool>) {
unsafe {
let tx_ptr = Box::into_raw(Box::new(tx)) as *mut std::ffi::c_void;
ra_login_token_user(
std::ffi::CString::new(username).unwrap().as_ptr(),
std::ffi::CString::new(token).unwrap().as_ptr(),
tx_ptr,
)
let c_username = std::ffi::CString::new(username).unwrap();
let c_token = std::ffi::CString::new(token).unwrap();
ra_login_token_user(c_username.as_ptr(), c_token.as_ptr(), tx_ptr)
};
}
+6 -11
View File
@@ -57,9 +57,10 @@ pub fn init(device: &mut device::Device) {
}
unsafe {
sdl3_sys::everything::SDL_HideCursor();
let hint = std::ffi::CString::new("1").unwrap();
sdl3_sys::everything::SDL_SetHint(
sdl3_sys::everything::SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS,
std::ffi::CString::new("1").unwrap().as_ptr(),
hint.as_ptr(),
);
}
@@ -218,10 +219,8 @@ pub fn check_framebuffers(address: u32, length: u32) {
pub fn onscreen_message(_ui: &ui::Ui, message: &str, long_message: bool) {
unsafe {
rdp_onscreen_message(
std::ffi::CString::new(message).unwrap().as_ptr(),
long_message,
)
let c_message = std::ffi::CString::new(message).unwrap();
rdp_onscreen_message(c_message.as_ptr(), long_message)
};
}
@@ -235,12 +234,8 @@ pub fn draw_text(
let (mut w, mut h) = (0, 0);
sdl3_sys::render::SDL_GetRenderOutputSize(renderer, &mut w, &mut h);
let ttf_text = sdl3_ttf_sys::ttf::TTF_CreateText(
text_engine,
font,
std::ffi::CString::new(text).unwrap().as_ptr(),
0,
);
let c_text = std::ffi::CString::new(text).unwrap();
let ttf_text = sdl3_ttf_sys::ttf::TTF_CreateText(text_engine, font, c_text.as_ptr(), 0);
sdl3_sys::everything::SDL_RenderClear(renderer);
sdl3_ttf_sys::ttf::TTF_DrawRendererText(ttf_text, 20.0, h as f32 / 2.0);