diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-02-06 23:13:02 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-02-06 23:13:02 -0500 |
commit | bc0a4438500a9962f6e326c376ebaaec1a230932 (patch) | |
tree | 3216749b40a1938902ede51aaf6b953089b2caeb /src/bcachefs.rs | |
parent | 168126a41e1d2d43104988d113603fcc13d020e0 (diff) |
kill dependency on char signedness
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'src/bcachefs.rs')
-rw-r--r-- | src/bcachefs.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/bcachefs.rs b/src/bcachefs.rs index 7aad517e..ef38a66b 100644 --- a/src/bcachefs.rs +++ b/src/bcachefs.rs @@ -21,6 +21,10 @@ impl std::fmt::Display for ErrnoError { impl std::error::Error for ErrnoError {} +fn to_mut<T>(p: *const T) -> *mut T { + p as *mut T +} + fn handle_c_command(args: Vec<String>, symlink_cmd: Option<&str>) -> i32 { let mut argv: Vec<_> = args.clone(); @@ -35,8 +39,8 @@ fn handle_c_command(args: Vec<String>, symlink_cmd: Option<&str>) -> i32 { .iter() .map(|s| CString::new(s.as_str()).unwrap()) .collect(); - let argv: Vec<_> = argv.iter().map(|s| s.as_ptr()).collect(); - let argv = argv.as_ptr() as *mut *mut i8; + let mut argv: Vec<_> = argv.iter().map(|s| to_mut(s.as_ptr())).collect(); + let argv = argv.as_mut_ptr(); // The C functions will mutate argv. It shouldn't be used after this block. unsafe { |