From ee5d0dae7738e0cb480465ae0ecd6e15fd8ed118 Mon Sep 17 00:00:00 2001 From: rexim Date: Sun, 17 Mar 2024 01:59:06 +0700 Subject: Optimize path finding, remove custom queue. --- queue.adb | 43 ------------------------------------------- 1 file changed, 43 deletions(-) delete mode 100644 queue.adb (limited to 'queue.adb') diff --git a/queue.adb b/queue.adb deleted file mode 100644 index 4745ee8..0000000 --- a/queue.adb +++ /dev/null @@ -1,43 +0,0 @@ -with Ada.Unchecked_Deallocation; - -package body Queue is - procedure Delete_Items_Array is new Ada.Unchecked_Deallocation(Items_Array, Items_Array_Access); - - procedure Grow(Q: in out Queue) is - New_Items: constant Items_Array_Access := new Items_Array(0..Q.Items'Length*2-1); - begin - for Offset in Q.Items'Range loop - New_Items(Offset) := Q.Items((Q.Start + Offset) mod Q.Items'Length); - end loop; - Delete_Items_Array(Q.Items); - Q.Items := New_Items; - Q.Start := 0; - end; - - procedure Enqueue(Q: in out Queue; X: Item) is - begin - if Q.Items = null then - Q.Items := new Items_Array(0..INIT_CAPACITY-1); - end if; - - if Q.Count >= Q.Items'Length then - Grow(Q); - end if; - - Q.Items((Q.Start + Q.Count) mod Q.Items'Length) := X; - Q.Count := Q.Count + 1; - end; - - function Dequeue(Q: in out Queue; X: out Item) return Boolean is - begin - if Q.Count <= 0 then - return False; - end if; - - X := Q.Items(Q.Start); - Q.Start := (Q.Start + 1) mod Q.Items'Length; - Q.Count := Q.Count - 1; - - return True; - end; -end Queue; -- cgit v1.2.3