aboutsummaryrefslogtreecommitdiffstats
path: root/src/grt/grt-stack2.adb
diff options
context:
space:
mode:
Diffstat (limited to 'src/grt/grt-stack2.adb')
-rw-r--r--src/grt/grt-stack2.adb18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/grt/grt-stack2.adb b/src/grt/grt-stack2.adb
index 1ae18be5a..aaf686980 100644
--- a/src/grt/grt-stack2.adb
+++ b/src/grt/grt-stack2.adb
@@ -142,7 +142,8 @@ package body Grt.Stack2 is
return Chunk.Mem (Chunk.First)'Address;
end Allocate;
- function Create return Stack2_Ptr is
+ function Create return Stack2_Ptr
+ is
Res : Stack2_Acc;
Chunk : Chunk_Acc;
begin
@@ -154,9 +155,15 @@ package body Grt.Stack2 is
return To_Addr (Res);
end Create;
- -- May be used to debug.
- procedure Dump_Stack2 (S : Stack2_Ptr);
- pragma Unreferenced (Dump_Stack2);
+ function Is_Empty (S : Stack2_Ptr) return Boolean
+ is
+ S2 : constant Stack2_Acc := To_Acc (S);
+ begin
+ if S2 = null then
+ return True;
+ end if;
+ return S2.Top = 1;
+ end Is_Empty;
procedure Dump_Stack2 (S : Stack2_Ptr)
is
@@ -174,6 +181,9 @@ package body Grt.Stack2 is
Put ("Stack 2 at ");
Put (stdout, Address (S));
New_Line;
+ if S2 = null then
+ return;
+ end if;
Put ("First Chunk at ");
Put (stdout, To_Address (S2.First_Chunk));
Put (", last chunk at ");