[ntoskrnl\config]
authorMichael Martin <michael.martin@reactos.org>
Wed, 9 Dec 2009 14:15:11 +0000 (14:15 +0000)
committerMichael Martin <michael.martin@reactos.org>
Wed, 9 Dec 2009 14:15:11 +0000 (14:15 +0000)
- Description of what previous code was doing in commit r44469 was completely incorrect. Source prior to r44469 was only missing parentheses.
- CmpSplitLeaf: Revert back to previous code with correct fix. Fireballs code was correct, and because I found it before him I save myself from a severe lashing.

svn path=/trunk/; revision=44481

reactos/ntoskrnl/config/cmindex.c

index 5b105bd..6cc3b75 100644 (file)
@@ -1289,14 +1289,13 @@ CmpSplitLeaf(IN PHHIVE Hive,
                       LastHalf * EntrySize);
     }
 
-    /* If RootSelect is not the last index */
+    /* Shift the data inside the root key */
     if (RootSelect < (IndexKey->Count - 1))
     {
-        /* Shift indexes to the right */
-        ULONG IndexCount;
-        /* IndexKey->Count will be incremented below */
-        for (IndexCount = IndexKey->Count; IndexCount > RootSelect + 1; IndexCount --)
-             IndexKey->List[IndexCount] = IndexKey->List[IndexCount -1];
+        RtlMoveMemory(&IndexKey->List[RootSelect + 2],
+                      &IndexKey->List[RootSelect + 1],
+                      (IndexKey->Count -
+                      (RootSelect + 1)) * sizeof(HCELL_INDEX));
     }
 
     /* Make sure both old and new computed counts are valid */