Make TimingGuard a little safer
This commit is contained in:
parent
a28b98650f
commit
0335dc131f
1 changed files with 5 additions and 3 deletions
|
|
@ -73,12 +73,14 @@ impl Drop for TimingGuard {
|
|||
|
||||
impl cranelift_codegen::timing::Profiler for MeasuremeProfiler {
|
||||
fn start_pass(&self, pass: cranelift_codegen::timing::Pass) -> Box<dyn std::any::Any> {
|
||||
let mut timing_guard =
|
||||
TimingGuard { profiler: std::mem::ManuallyDrop::new(self.0.clone()), inner: None };
|
||||
let mut timing_guard = Box::new(TimingGuard {
|
||||
profiler: std::mem::ManuallyDrop::new(self.0.clone()),
|
||||
inner: None,
|
||||
});
|
||||
timing_guard.inner = Some(
|
||||
unsafe { &*(&*timing_guard.profiler as &SelfProfilerRef as *const SelfProfilerRef) }
|
||||
.generic_activity(pass.description()),
|
||||
);
|
||||
Box::new(timing_guard)
|
||||
timing_guard
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue