2
0
Эх сурвалжийг харах

* added PtrList to the names of the current sort algorithm callback functions and
types, to indicate they sort a list of pointers

git-svn-id: trunk@41170 -

nickysn 6 жил өмнө
parent
commit
25f6da7066

+ 15 - 15
rtl/inc/sortbase.pp

@@ -22,24 +22,24 @@ interface
 
 type
   TListSortComparer_NoContext = function(Item1, Item2: Pointer): Integer;
-  TListSorter_NoContext = procedure(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_NoContext);
+  TPtrListSorter_NoContext = procedure(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_NoContext);
 
   TListSortComparer_Context = function(Item1, Item2, Context: Pointer): Integer;
-  TListSorter_Context = procedure(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_Context; Context: Pointer);
+  TPtrListSorter_Context = procedure(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_Context; Context: Pointer);
 
   PSortingAlgorithm = ^TSortingAlgorithm;
   TSortingAlgorithm = record
-    ListSorter_NoContextComparer: TListSorter_NoContext;
-    ListSorter_ContextComparer: TListSorter_Context;
+    PtrListSorter_NoContextComparer: TPtrListSorter_NoContext;
+    PtrListSorter_ContextComparer: TPtrListSorter_Context;
   end;
 
-procedure QuickSort_NoContext(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_NoContext);
-procedure QuickSort_Context(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_Context; Context: Pointer);
+procedure QuickSort_PtrList_NoContext(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_NoContext);
+procedure QuickSort_PtrList_Context(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_Context; Context: Pointer);
 
 const
   QuickSort: TSortingAlgorithm = (
-    ListSorter_NoContextComparer: @QuickSort_NoContext;
-    ListSorter_ContextComparer: @QuickSort_Context
+    PtrListSorter_NoContextComparer: @QuickSort_PtrList_NoContext;
+    PtrListSorter_ContextComparer: @QuickSort_PtrList_Context
   );
 
 var
@@ -47,8 +47,8 @@ var
 
 implementation
 
-Procedure QuickSort_NoContext(FList: PPointer; L, R : Longint;
-                              Compare: TListSortComparer_NoContext);
+Procedure QuickSort_PtrList_NoContext(FList: PPointer; L, R : Longint;
+                                      Compare: TListSortComparer_NoContext);
 var
   I, J : Longint;
   P, Q : Pointer;
@@ -77,26 +77,26 @@ begin
    if J - L < R - I then
    begin
      if L < J then
-       QuickSort_NoContext(FList, L, J, Compare);
+       QuickSort_PtrList_NoContext(FList, L, J, Compare);
      L := I;
    end
    else
    begin
      if I < R then
-       QuickSort_NoContext(FList, I, R, Compare);
+       QuickSort_PtrList_NoContext(FList, I, R, Compare);
      R := J;
    end;
  until L >= R;
 end;
 
-procedure QuickSort_NoContext(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_NoContext);
+procedure QuickSort_PtrList_NoContext(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_NoContext);
 begin
   if not Assigned(ItemPtrs) or (ItemCount < 2) then
     exit;
-  QuickSort_NoContext(ItemPtrs, 0, ItemCount - 1, Comparer);
+  QuickSort_PtrList_NoContext(ItemPtrs, 0, ItemCount - 1, Comparer);
 end;
 
-procedure QuickSort_Context(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_Context; Context: Pointer);
+procedure QuickSort_PtrList_Context(ItemPtrs: PPointer; ItemCount: PtrUInt; Comparer: TListSortComparer_Context; Context: Pointer);
 
   Procedure QuickSort(L, R : Longint);
   var

+ 1 - 1
rtl/objpas/classes/lists.inc

@@ -308,7 +308,7 @@ end;
 
 procedure TFPList.Sort(Compare: TListSortCompare; SortingAlgorithm: PSortingAlgorithm);
 begin
-  SortingAlgorithm^.ListSorter_NoContextComparer(PPointer(FList), FCount, Compare);
+  SortingAlgorithm^.PtrListSorter_NoContextComparer(PPointer(FList), FCount, Compare);
 end;