]> Repositorios git - scryer-prolog.git/commitdiff
consistently treat bool as i8
authorSkgland <[email protected]>
Sun, 28 Sep 2025 16:29:20 +0000 (18:29 +0200)
committerBennet Bleßmann <[email protected]>
Sun, 28 Sep 2025 16:29:20 +0000 (18:29 +0200)
src/ffi.rs

index 8fd90c95c6b99120ddf35bda625f8901dce5793d..7bab20b1c4f0557e8810305257057f25f70b9b8a 100644 (file)
@@ -733,7 +733,7 @@ impl ForeignFunctionTable {
         match FfiType::from_atom(&kind) {
             FfiType::Void => Err(FfiError::VoidArgumentType),
             FfiType::Bool => {
-                let val = args.as_int::<u8>()?;
+                let val = args.as_int::<i8>()?;
                 let init = match val {
                     0 => false,
                     1 => true,
@@ -796,8 +796,8 @@ impl ForeignFunctionTable {
 
         match FfiType::from_atom(&kind) {
             FfiType::Void => Err(FfiError::VoidArgumentType),
-            FfiType::Bool | FfiType::U8 => Ok(unsafe { read_int::<u8>(ptr, arena) }),
-            FfiType::I8 => Ok(unsafe { read_int::<i8>(ptr, arena) }),
+            FfiType::U8 => Ok(unsafe { read_int::<u8>(ptr, arena) }),
+            FfiType::Bool | FfiType::I8 => Ok(unsafe { read_int::<i8>(ptr, arena) }),
             FfiType::U16 => Ok(unsafe { read_int::<u16>(ptr, arena) }),
             FfiType::I16 => Ok(unsafe { read_int::<i16>(ptr, arena) }),
             FfiType::U32 => Ok(unsafe { read_int::<u32>(ptr, arena) }),