a-cbmutr.adb (Insert_Child): Use local variable First to keep track of the initial element's index within...

2014-07-30  Hristian Kirtchev  <kirtchev@adacore.com>

	* a-cbmutr.adb (Insert_Child): Use local variable First to keep
	track of the initial element's index within the tree.

From-SVN: r213235
This commit is contained in:
Hristian Kirtchev 2014-07-30 09:59:29 +00:00 committed by Arnaud Charlet
parent 4716657837
commit ec62224622
2 changed files with 15 additions and 10 deletions

View File

@ -1,3 +1,8 @@
2014-07-30 Hristian Kirtchev <kirtchev@adacore.com>
* a-cbmutr.adb (Insert_Child): Use local variable First to keep
track of the initial element's index within the tree.
2014-07-29 Hristian Kirtchev <kirtchev@adacore.com>
* a-cbmutr.adb (Allocate_Node): Remove the two parameter version.

View File

@ -1498,6 +1498,7 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Count : Count_Type := 1)
is
Nodes : Tree_Node_Array renames Container.Nodes;
First : Count_Type;
Last : Count_Type;
begin
@ -1538,10 +1539,10 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Initialize_Root (Container);
end if;
Allocate_Node (Container, New_Item, Position.Node);
Nodes (Position.Node).Parent := Parent.Node;
Allocate_Node (Container, New_Item, First);
Nodes (First).Parent := Parent.Node;
Last := Position.Node;
Last := First;
for J in Count_Type'(2) .. Count loop
Allocate_Node (Container, New_Item, Nodes (Last).Next);
Nodes (Nodes (Last).Next).Parent := Parent.Node;
@ -1552,14 +1553,14 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Insert_Subtree_List
(Container => Container,
First => Position.Node,
First => First,
Last => Last,
Parent => Parent.Node,
Before => Before.Node);
Container.Count := Container.Count + Count;
Position.Container := Parent.Container;
Position := Cursor'(Parent.Container, First);
end Insert_Child;
procedure Insert_Child
@ -1621,11 +1622,10 @@ package body Ada.Containers.Bounded_Multiway_Trees is
-- initialization, so insert the specified number of possibly
-- initialized elements at the given position.
Allocate_Node (Container, New_Item, Position.Node);
First := Position.Node;
Nodes (Position.Node).Parent := Parent.Node;
Allocate_Node (Container, New_Item, First);
Nodes (First).Parent := Parent.Node;
Last := Position.Node;
Last := First;
for J in Count_Type'(2) .. Count loop
Allocate_Node (Container, New_Item, Nodes (Last).Next);
Nodes (Nodes (Last).Next).Parent := Parent.Node;
@ -1636,7 +1636,7 @@ package body Ada.Containers.Bounded_Multiway_Trees is
Insert_Subtree_List
(Container => Container,
First => Position.Node,
First => First,
Last => Last,
Parent => Parent.Node,
Before => Before.Node);