Style: use NonNull
This commit is contained in:
23
src/lib.rs
23
src/lib.rs
@@ -1,10 +1,10 @@
|
|||||||
use std::{
|
use std::{
|
||||||
cmp::{max, min},
|
cmp::{max, min},
|
||||||
ffi::{CStr, OsStr, c_void},
|
ffi::{CStr, OsStr, c_void},
|
||||||
fs, iter,
|
fs,
|
||||||
mem::MaybeUninit,
|
|
||||||
os::unix::ffi::OsStrExt,
|
os::unix::ffi::OsStrExt,
|
||||||
path::Path,
|
path::Path,
|
||||||
|
ptr::NonNull,
|
||||||
slice,
|
slice,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -260,10 +260,13 @@ unsafe extern "C" fn page_get_text(
|
|||||||
rect: zathura_rectangle_s,
|
rect: zathura_rectangle_s,
|
||||||
res: *mut ZathuraResult,
|
res: *mut ZathuraResult,
|
||||||
) -> *mut i8 {
|
) -> *mut i8 {
|
||||||
let res = if res.is_null() {
|
let res = if let Some(mut r) = NonNull::new(res) {
|
||||||
&mut ZathuraResult::OK
|
unsafe {
|
||||||
|
r.write(ZathuraResult::Unknown);
|
||||||
|
r.as_mut()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
unsafe { &mut *(res as *mut MaybeUninit<ZathuraResult>) }.write(ZathuraResult::Unknown)
|
&mut ZathuraResult::OK
|
||||||
};
|
};
|
||||||
let typst_page: &Page = unsafe { &*(data as *mut _) };
|
let typst_page: &Page = unsafe { &*(data as *mut _) };
|
||||||
|
|
||||||
@@ -299,10 +302,13 @@ unsafe extern "C" fn page_get_selection(
|
|||||||
rect: zathura_rectangle_s,
|
rect: zathura_rectangle_s,
|
||||||
res: *mut ZathuraResult,
|
res: *mut ZathuraResult,
|
||||||
) -> *mut girara_list_t {
|
) -> *mut girara_list_t {
|
||||||
let res = if res.is_null() {
|
let res = if let Some(mut r) = NonNull::new(res) {
|
||||||
&mut ZathuraResult::OK
|
unsafe {
|
||||||
|
r.write(ZathuraResult::Unknown);
|
||||||
|
r.as_mut()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
unsafe { &mut *(res as *mut MaybeUninit<ZathuraResult>) }.write(ZathuraResult::Unknown)
|
&mut ZathuraResult::OK
|
||||||
};
|
};
|
||||||
let typst_page: &Page = unsafe { &*(data as *mut _) };
|
let typst_page: &Page = unsafe { &*(data as *mut _) };
|
||||||
|
|
||||||
@@ -345,6 +351,5 @@ unsafe extern "C" fn page_get_selection(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: render warnings
|
// TODO: render warnings
|
||||||
// TODO: PDF as attachment
|
|
||||||
// TODO: link/... handling
|
// TODO: link/... handling
|
||||||
// TODO: better caching
|
// TODO: better caching
|
||||||
|
|||||||
Reference in New Issue
Block a user