Move queue and stack includes outside of mozilla namespace.
Test the following for searches:
- Null root returns null.
- Needle is root returns root.
- No needle results in full traversal.
- Needle node in middle returns that needle, and stops traversing.
Test the following for ForEachNode:
- Null root still runs correctly.
- No skips results in traversal of entire tree.
- Root skip results in only changing the root.
- First skips are still included (whether leaf or parent).
--HG--
extra : source : 6d2572c274363c7544c4f96f0016fead098b157e
Extend the tree traversal algorithms in TreeTraversal.h, and use them
instead of manual loops in APZCTreeManager.
- Create function ForEachNode(), which calls a function on each node
of a tree. The function must return a TraversalFlag to indicate
whether the node's children should be visited or skipped.
- Modify DepthFirstSearch() and BreadthFirstSearch() to operate on
pointers that are not (necessarily) const. This makes them more
general.
- Refactor functions in APZCTreeManager: Collect, FlushRepaints,
FlushRepaintsRecursively, FlushPendingRepaint,
FlushPendingRepaintRecursively, UpdateZoomConstraints,
UpdateZoomConstraintsRecursively, ClearTree, FindScrollNode.
--HG--
extra : rebase_source : e7a740a9833ba49b1d41849bb43ce9077d42bc07
extra : source : ef6f195f2259e103f0c1979a5f4ebb5a8601b15d