Update dependencies and fix breaking changes in libffi-sys and arcu

This commit is contained in:
bakaq
2025-05-13 19:53:13 -03:00
parent a42a88a2c9
commit ca173873af
4 changed files with 345 additions and 267 deletions

594
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -38,7 +38,7 @@ to-syn-value_derive = "0.1.1"
walkdir = "2" walkdir = "2"
[dependencies] [dependencies]
arcu = { version = "0.1.1", features = ["thread_local_counter"] } arcu = { version = "0.1.2", features = ["thread_local_counter"] }
base64 = "0.22.1" base64 = "0.22.1"
bit-set = "0.8.0" bit-set = "0.8.0"
bitvec = "1" bitvec = "1"

View File

@@ -86,6 +86,10 @@ pub struct F64Table {
update: Mutex<()>, update: Mutex<()>,
} }
// TODO: Actually prove this, as it's probably unsound right now
unsafe impl Send for F64Table {}
unsafe impl Sync for F64Table {}
#[inline(always)] #[inline(always)]
pub fn lookup_float( pub fn lookup_float(
offset: F64Offset, offset: F64Offset,

View File

@@ -53,13 +53,23 @@ pub struct ForeignFunctionTable {
structs: HashMap<String, StructImpl>, structs: HashMap<String, StructImpl>,
} }
#[derive(Debug, Clone)] #[derive(Clone)]
struct StructImpl { struct StructImpl {
ffi_type: ffi_type, ffi_type: ffi_type,
fields: Vec<*mut ffi_type>, fields: Vec<*mut ffi_type>,
atom_fields: Vec<Atom>, atom_fields: Vec<Atom>,
} }
impl std::fmt::Debug for StructImpl {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
f.debug_struct("StructImpl")
.field("ffi_type", &&"<???>")
.field("fields", &self.fields)
.field("atom_fields", &self.atom_fields)
.finish()
}
}
struct PointerArgs { struct PointerArgs {
pointers: Vec<*mut c_void>, pointers: Vec<*mut c_void>,
_memory: Vec<Box<dyn Any>>, _memory: Vec<Box<dyn Any>>,