Src_Pos : Count_Type;
Tgt_Pos : out Count_Type);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
-- Checks invariants of the cursor and its designated container, as a
-- simple way of detecting dangling references (see operation Free for a
-- description of the detection mechanism), returning True if all checks
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = 0 then
return Position.Container = null;
end if;
procedure Set_Next (Node : in out Node_Type; Next : Count_Type);
pragma Inline (Set_Next);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
--------------------------
-- Local Instantiations --
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = 0 then
return Position.Container = null;
end if;
procedure Set_Next (Node : in out Node_Type; Next : Count_Type);
pragma Inline (Set_Next);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
--------------------------
-- Local Instantiations --
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = 0 then
return Position.Container = null;
end if;
Source : in out List;
Position : Node_Access);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
-- Checks invariants of the cursor and its designated container, as a
-- simple way of detecting dangling references (see operation Free for a
-- description of the detection mechanism), returning True if all checks
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = null then
return Position.Container = null;
end if;
Before : Count_Type;
New_Node : Count_Type);
- function Vet (L : List; Position : Cursor) return Boolean;
+ function Vet (L : List; Position : Cursor) return Boolean with Inline;
---------
-- "=" --
function Vet (L : List; Position : Cursor) return Boolean is
N : Node_Array renames L.Nodes;
-
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if L.Length = 0 then
return False;
end if;
procedure Set_Next (Node : in out Node_Type; Next : Count_Type);
pragma Inline (Set_Next);
- function Vet (Container : Map; Position : Cursor) return Boolean;
+ function Vet (Container : Map; Position : Cursor) return Boolean
+ with Inline;
--------------------------
-- Local Instantiations --
function Vet (Container : Map; Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = 0 then
return True;
end if;
procedure Set_Next (Node : in out Node_Type; Next : Count_Type);
pragma Inline (Set_Next);
- function Vet (Container : Set; Position : Cursor) return Boolean;
+ function Vet (Container : Set; Position : Cursor) return Boolean
+ with Inline;
--------------------------
-- Local Instantiations --
function Vet (Container : Set; Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = 0 then
return True;
end if;
Source : in out List;
Position : Node_Access);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
-- Checks invariants of the cursor and its designated container, as a
-- simple way of detecting dangling references (see operation Free for a
-- description of the detection mechanism), returning True if all checks
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = null then
return Position.Container = null;
end if;
procedure Set_Next (Node : Node_Access; Next : Node_Access);
pragma Inline (Set_Next);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
procedure Write_Node
(Stream : not null access Root_Stream_Type'Class;
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = null then
return Position.Container = null;
end if;
procedure Set_Next (Node : Node_Access; Next : Node_Access);
pragma Inline (Set_Next);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
procedure Write_Node
(Stream : not null access Root_Stream_Type'Class;
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = null then
return Position.Container = null;
end if;
procedure Set_Next (Node : Node_Access; Next : Node_Access);
pragma Inline (Set_Next);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
procedure Write_Node
(Stream : not null access Root_Stream_Type'Class;
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = null then
return Position.Container = null;
end if;
procedure Set_Next (Node : Node_Access; Next : Node_Access);
pragma Inline (Set_Next);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
procedure Write_Node
(Stream : not null access Root_Stream_Type'Class;
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = null then
return Position.Container = null;
end if;
function Vet (Tree : Tree_Type; Node : Node_Access) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Node = null then
return True;
end if;
-- procedure Check_Invariant (Tree : Tree_Type);
- function Vet (Tree : Tree_Type; Node : Node_Access) return Boolean;
+ function Vet (Tree : Tree_Type; Node : Node_Access) return Boolean
+ with Inline;
-- Inspects Node to determine (to the extent possible) whether
-- the node is valid; used to detect if the node is dangling.
Before : Count_Type;
New_Node : Count_Type);
- function Vet (Position : Cursor) return Boolean;
+ function Vet (Position : Cursor) return Boolean with Inline;
---------
-- "=" --
function Vet (Position : Cursor) return Boolean is
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Position.Node = 0 then
return Position.Container = null;
end if;
function Vet (Tree : Tree_Type'Class; Index : Count_Type) return Boolean is
Nodes : Nodes_Type renames Tree.Nodes;
Node : Node_Type renames Nodes (Index);
-
begin
+ if not Container_Checks'Enabled then
+ return True;
+ end if;
+
if Parent (Node) = Index
or else Left (Node) = Index
or else Right (Node) = Index
function Max (Tree : Tree_Type'Class; Node : Count_Type) return Count_Type;
-- Returns the largest-valued node of the subtree rooted at Node
- function Vet (Tree : Tree_Type'Class; Index : Count_Type) return Boolean;
+ function Vet (Tree : Tree_Type'Class; Index : Count_Type) return Boolean
+ with Inline;
-- Inspects Node to determine (to the extent possible) whether
-- the node is valid; used to detect if the node is dangling.