]> Repositorios git - scryer-prolog.git/commitdiff
Revert "Remove unnecessary "unsafe" block to fix compiler warning"
authorAleksy Grabowski <[email protected]>
Fri, 6 Sep 2024 08:26:17 +0000 (10:26 +0200)
committerAleksy Grabowski <[email protected]>
Fri, 6 Sep 2024 08:26:17 +0000 (10:26 +0200)
This reverts commit 7af93f153240b7ddb2023ea1a24d42db802e747a.

src/ffi.rs

index 2895009b013c4722176fa175b4d409412798942d..a3e933800adda8fb89fda716aa9a68db1cefa4d5 100644 (file)
@@ -89,25 +89,27 @@ impl ForeignFunctionTable {
     }
 
     fn map_type_ffi(&mut self, source: &Atom) -> *mut ffi_type {
-        match source {
-            atom!("sint64") => addr_of_mut!(types::sint64),
-            atom!("sint32") => addr_of_mut!(types::sint32),
-            atom!("sint16") => addr_of_mut!(types::sint16),
-            atom!("sint8") => addr_of_mut!(types::sint8),
-            atom!("uint64") => addr_of_mut!(types::uint64),
-            atom!("uint32") => addr_of_mut!(types::uint32),
-            atom!("uint16") => addr_of_mut!(types::uint16),
-            atom!("uint8") => addr_of_mut!(types::uint8),
-            atom!("bool") => addr_of_mut!(types::sint8),
-            atom!("void") => addr_of_mut!(types::void),
-            atom!("cstr") => addr_of_mut!(types::pointer),
-            atom!("ptr") => addr_of_mut!(types::pointer),
-            atom!("f32") => addr_of_mut!(types::float),
-            atom!("f64") => addr_of_mut!(types::double),
-            struct_name => match self.structs.get_mut(&*struct_name.as_str()) {
-                Some(ref mut struct_type) => &mut struct_type.ffi_type,
-                None => unreachable!(),
-            },
+        unsafe {
+            match source {
+                atom!("sint64") => addr_of_mut!(types::sint64),
+                atom!("sint32") => addr_of_mut!(types::sint32),
+                atom!("sint16") => addr_of_mut!(types::sint16),
+                atom!("sint8") => addr_of_mut!(types::sint8),
+                atom!("uint64") => addr_of_mut!(types::uint64),
+                atom!("uint32") => addr_of_mut!(types::uint32),
+                atom!("uint16") => addr_of_mut!(types::uint16),
+                atom!("uint8") => addr_of_mut!(types::uint8),
+                atom!("bool") => addr_of_mut!(types::sint8),
+                atom!("void") => addr_of_mut!(types::void),
+                atom!("cstr") => addr_of_mut!(types::pointer),
+                atom!("ptr") => addr_of_mut!(types::pointer),
+                atom!("f32") => addr_of_mut!(types::float),
+                atom!("f64") => addr_of_mut!(types::double),
+                struct_name => match self.structs.get_mut(&*struct_name.as_str()) {
+                    Some(ref mut struct_type) => &mut struct_type.ffi_type,
+                    None => unreachable!(),
+                },
+            }
         }
     }