From 79eb089e2a46c7a0b3f0eab457015af059544832 Mon Sep 17 00:00:00 2001 From: Per Lindgren <per.lindgren@ltu.se> Date: Thu, 1 Apr 2021 23:55:19 +0200 Subject: [PATCH] single struct --- src/main.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main.rs b/src/main.rs index 1bf52ae..fb3a7bd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -76,11 +76,16 @@ where for (index, value) in free.iter_mut().enumerate() { *value = index + 1; } + *unsafe { self.init.get_mut_unchecked() } = true; + println!("init : free {:?}", unsafe { self.free.get_mut_unchecked() }); } fn dealloc(&self, index: usize) { unsafe { + if !*self.init.get_mut_unchecked() { + panic!(); + } self.free.get_mut_unchecked()[index] = *self.head.get_mut_unchecked(); *self.head.get_mut_unchecked() = index; } @@ -89,6 +94,9 @@ where fn alloc(&'static self) -> Result<Box<T, S>, ()> { unsafe { + if !*self.init.get_mut_unchecked() { + panic!(); + } let index = *self.head.get_mut_unchecked(); println!("index {}", self.head.get_mut_unchecked()); println!("head {}", self.head.get_mut_unchecked()); -- GitLab