From a47024fcd7c3489ff1cae3fc4075a20a88bda0c8 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Thu, 25 Apr 2013 14:15:10 +0000 Subject: [PATCH] [RTL] - 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 | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/reactos/lib/rtl/generictable.c b/reactos/lib/rtl/generictable.c index 798ad1e58d7..8dce8d686b4 100644 --- a/reactos/lib/rtl/generictable.c +++ b/reactos/lib/rtl/generictable.c @@ -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--; + } } } -- 2.17.1