Automatically deallocate Failures in Rust

This commit is contained in:
Richard Feldman 2022-02-03 22:17:50 -05:00
parent 5d60677b5b
commit 9dea0e3a04
No known key found for this signature in database
GPG key ID: 7E4127D1E4241798

View file

@ -68,6 +68,22 @@ macro_rules! run_jit_function {
count: usize,
}
impl Drop for Failures {
fn drop(&mut self) {
use std::alloc::{dealloc, Layout};
use std::mem;
unsafe {
let layout = Layout::from_size_align_unchecked(
mem::size_of::<Failure>(),
mem::align_of::<Failure>(),
);
dealloc(self.failures as *mut u8, layout);
}
}
}
let get_expect_failures: libloading::Symbol<unsafe extern "C" fn() -> Failures> = $lib
.get(bitcode::UTILS_GET_EXPECT_FAILURES.as_bytes())
.ok()