From 8a43cad2ef51b227d80be6e20f37b14c2a0dbde4 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Thu, 2 May 2013 21:12:55 +0200 Subject: [PATCH] BPlusTree: Fix fCurrentKey in backward TreeIterator traversal. When reaching the next node the current key should be set to the next valid index within that node (0 for forward and NumKeys() - 1 for backward). This did not cause any harm as BFS uses forward traversal only. --- src/add-ons/kernel/file_systems/bfs/BPlusTree.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/bfs/BPlusTree.cpp b/src/add-ons/kernel/file_systems/bfs/BPlusTree.cpp index 33efc3fbc0..ba82408f47 100644 --- a/src/add-ons/kernel/file_systems/bfs/BPlusTree.cpp +++ b/src/add-ons/kernel/file_systems/bfs/BPlusTree.cpp @@ -2715,7 +2715,7 @@ TreeIterator::Traverse(int8 direction, void* key, uint16* keyLength, RETURN_ERROR(B_ERROR); // reset current key - fCurrentKey = forward ? 0 : node->NumKeys(); + fCurrentKey = forward ? 0 : node->NumKeys() - 1; } else { // there are no nodes left, so turn back to the last key fCurrentNodeOffset = savedNodeOffset;