Same for `&[u32]` argv arrays. */
(ptr: *const u32, len: u32)
| 143 | |
| 144 | /* Same for `&[u32]` argv arrays. */ |
| 145 | pub(super) unsafe fn safe_handles<'a>(ptr: *const u32, len: u32) -> &'a [u32] { |
| 146 | if ptr.is_null() || len == 0 { return &[]; } |
| 147 | unsafe { core::slice::from_raw_parts(ptr, len as usize) } |
| 148 | } |
| 149 | |
| 150 | /* Owned UTF-8 string from an FFI `(ptr, len)`; empty on null or invalid UTF-8. */ |
| 151 | pub(super) unsafe fn safe_str_owned(ptr: *const u8, len: u32) -> String { |