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