Replaced a comment about lock status with a proper assertion, and added a
comment to explain the representation invariant for the lock status.
Tested on x86_64-pc-linux-gnu, committed on trunk
2011-08-31 Matthew Heaney <[email protected]>
* a-rbtgbo.adb (Clear_Tree): Assert representation invariant for lock
status.
Index: a-rbtgbo.adb
===================================================================
--- a-rbtgbo.adb (revision 178368)
+++ a-rbtgbo.adb (working copy)
@@ -59,15 +59,16 @@
"attempt to tamper with cursors (container is busy)";
end if;
+ -- The lock status (which monitors "element tampering") always implies
+ -- that the busy status (which monitors "cursor tampering") is set too;
+ -- this is a representation invariant. Thus if the busy bit is not set,
+ -- then the lock bit must not be set either.
+ pragma Assert (Tree.Lock = 0);
+
Tree.First := 0;
Tree.Last := 0;
Tree.Root := 0;
Tree.Length := 0;
-
- -- Why are the following commented out with no explanation ???
- -- Tree.Busy
- -- Tree.Lock
-
Tree.Free := -1;
end Clear_Tree;