From: Bennet Bleßmann Date: Mon, 17 Feb 2025 19:19:36 +0000 (+0100) Subject: don't panic on unexpected/invalid value X-Git-Tag: v0.10.0~29^2~8 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=f738b42e497b7088365d0c3b76108fc7fa0f313c;p=scryer-prolog.git don't panic on unexpected/invalid value --- diff --git a/src/ffi.rs b/src/ffi.rs index 0b4a6757..1629a7b4 100644 --- a/src/ffi.rs +++ b/src/ffi.rs @@ -292,6 +292,7 @@ impl ForeignFunctionTable { let field = &struct_type.fields[i]; unsafe { + #[allow(clippy::wildcard_in_or_patterns)] match (*field.as_raw_ptr()).type_ as u32 { libffi::raw::FFI_TYPE_UINT8 => try_write_int!(u8), libffi::raw::FFI_TYPE_SINT8 => try_write_int!(i8), @@ -322,9 +323,11 @@ impl ForeignFunctionTable { ); field_ptr = field_ptr.add(struct_size); } - _ => { - unreachable!() - } + libffi::raw::FFI_TYPE_VOID + | libffi::raw::FFI_TYPE_INT + | libffi::raw::FFI_TYPE_LONGDOUBLE + | libffi::raw::FFI_TYPE_COMPLEX + | _ => return Err(FFIError::InvalidFFIType), } } }