[RTL]
authorAleksey Bragin <aleksey@reactos.org>
Thu, 25 Apr 2013 14:15:10 +0000 (14:15 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Thu, 25 Apr 2013 14:15:10 +0000 (14:15 +0000)
- Apply similar fixes as in 58848 to RtlGetElementGenericTable (no need to make too fancy predecrements if they work incorrectly in this case when do/while loops were unnecessary at all).

svn path=/trunk/; revision=58850

reactos/lib/rtl/generictable.c

index 798ad1e..8dce8d6 100644 (file)
@@ -451,21 +451,23 @@ RtlGetElementGenericTable(IN PRTL_GENERIC_TABLE Table,
         {
             /* Do the search backwards, since this takes less iterations */
             DeltaDown = OrderedElement - NextI;
-            do
+            while (DeltaDown)
             {
                 /* Get next node */
                 OrderedNode = OrderedNode->Blink;
-            } while (--DeltaDown);
+                DeltaDown--;
+            }
         }
         else
         {
             /* Follow the list directly instead */
             OrderedNode = &Table->InsertOrderList;
-            do
+            while (NextI)
             {
                 /* Get next node */
                 OrderedNode = OrderedNode->Flink;
-            } while (--NextI);
+                NextI--;
+            }
         }
     }
     else
@@ -478,21 +480,23 @@ RtlGetElementGenericTable(IN PRTL_GENERIC_TABLE Table,
         if (DeltaUp <= DeltaDown)
         {
             /* Do the search forwards, since this takes less iterations */
-            do
+            while (DeltaUp)
             {
                 /* Get next node */
                 OrderedNode = OrderedNode->Blink;
-            } while (--DeltaUp);
+                DeltaUp--;
+            }
         }
         else
         {
             /* Do the search downwards, since this takes less iterations */
             OrderedNode = &Table->InsertOrderList;
-            do
+            while (DeltaDown)
             {
                 /* Get next node */
                 OrderedNode = OrderedNode->Blink;
-            } while (--DeltaDown);
+                DeltaDown--;
+            }
         }
     }