Use ManuallyDrop
This commit is contained in:
parent
7130295bb1
commit
5abdb0bd30
|
@ -3,6 +3,7 @@ extern crate regex;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate lazy_static;
|
extern crate lazy_static;
|
||||||
|
|
||||||
|
use std::mem::ManuallyDrop;
|
||||||
use tiny_keccak::Keccak;
|
use tiny_keccak::Keccak;
|
||||||
|
|
||||||
mod rev_complement;
|
mod rev_complement;
|
||||||
|
@ -41,8 +42,8 @@ pub extern "C" fn bench_tiny_keccak(test_data: *const TinyKeccakTestData) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct RevComplementTestData {
|
pub struct RevComplementTestData {
|
||||||
input: Box<[u8]>,
|
input: ManuallyDrop<Box<[u8]>>,
|
||||||
output: Box<[u8]>,
|
output: ManuallyDrop<Box<[u8]>>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[no_mangle]
|
#[no_mangle]
|
||||||
|
@ -52,8 +53,8 @@ pub extern "C" fn prepare_rev_complement(size: usize) -> *mut RevComplementTestD
|
||||||
|
|
||||||
let test_data = Box::new(
|
let test_data = Box::new(
|
||||||
RevComplementTestData {
|
RevComplementTestData {
|
||||||
input: input.into_boxed_slice(),
|
input: ManuallyDrop::new(input.into_boxed_slice()),
|
||||||
output: output.into_boxed_slice(),
|
output: ManuallyDrop::new(output.into_boxed_slice()),
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -85,7 +86,7 @@ pub extern "C" fn bench_rev_complement(test_data: *mut RevComplementTestData) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct RegexReduxTestData {
|
pub struct RegexReduxTestData {
|
||||||
input: Box<[u8]>,
|
input: ManuallyDrop<Box<[u8]>>,
|
||||||
output: Option<usize>,
|
output: Option<usize>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,7 +97,7 @@ pub extern "C" fn prepare_regex_redux(size: usize) -> *mut RegexReduxTestData {
|
||||||
let input = vec![0; size];
|
let input = vec![0; size];
|
||||||
let test_data = Box::new(
|
let test_data = Box::new(
|
||||||
RegexReduxTestData {
|
RegexReduxTestData {
|
||||||
input: input.into_boxed_slice(),
|
input: ManuallyDrop::new(input.into_boxed_slice()),
|
||||||
output: None,
|
output: None,
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
Loading…
Reference in New Issue