]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't make wxQsort() extern "C" nor use any special convention for it.
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 27 Oct 2011 21:10:48 +0000 (21:10 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 27 Oct 2011 21:10:48 +0000 (21:10 +0000)
It doesn't make sense to require passing C functions to wxQsort() that we
define in a C++ library. We also don't need any special calling convention
here.

Notice that the only existing uses of wxQsort() inside wxWidgets itself were
not actually extern "C" and one of them didn't even use the correct calling
convention.

Also avoid using non-wx-prefixed CMPFUNCDATA identifier in a public header,
rename it to wxSortCallback instead.

Finally make wxQsort() documentation slightly more useful.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69566 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/utils.h
include/wx/vector.h
interface/wx/utils.h
src/common/utilscmn.cpp

index b539373de9217c8d101425cc4b0b9db37b5960eb..9d254ca589e0e2d235e25355095fb86622905e75 100644 (file)
@@ -588,14 +588,14 @@ WXDLLIMPEXP_BASE bool wxGetDiskSpace(const wxString& path,
 
 
 
-extern "C"
-{
-typedef int (wxCMPFUNC_CONV *CMPFUNCDATA)(const void* pItem1, const void* pItem2, const void* user_data);
-}
+typedef int (*wxSortCallback)(const void* pItem1,
+                              const void* pItem2,
+                              const void* user_data);
 
 
-WXDLLIMPEXP_BASE void wxQsort(void *const pbase, size_t total_elems,
-                              size_t size, CMPFUNCDATA cmp, const void* user_data);
+WXDLLIMPEXP_BASE void wxQsort(void* pbase, size_t total_elems,
+                              size_t size, wxSortCallback cmp,
+                              const void* user_data);
 
 
 #if wxUSE_GUI // GUI only things from now on
index 8cf76d9ff61804d6b2b656d8237379fff705d57e..e95d4103ef11c1d65c92ed76381cb0bad4764ec2 100644 (file)
@@ -457,7 +457,7 @@ namespace wxPrivate
 template<typename T>
 struct wxVectorComparator
 {
-    static int wxCMPFUNC_CONV
+    static int
     Compare(const void* pitem1, const void* pitem2, const void* )
     {
         const T& item1 = *reinterpret_cast<const T*>(pitem1);
index 120ed37cc3a119f8c7af7602a04f5e4ffe0249dc..fc02d7594f94a8a978a7e7b5fb3a6d558d22ae89 100644 (file)
@@ -496,19 +496,19 @@ void wxPostDelete(wxObject* object);
 
     @header{wx/utils.h}
 */
-extern "C"
-{
-typedef int (wxCMPFUNC_CONV *CMPFUNCDATA)(const void* pItem1, const void* pItem2, const void* user_data);
-}
+typedef int (*wxSortCallback)(const void* pItem1, const void* pItem2, const void* user_data);
 
 /**
-    Function for performing a qsort operation including a user data
-    parameter.
+    Function implementing quick sort algorithm.
+
+    This function sorts @a total_elems objects of size @a size located at @a
+    pbase. It uses @a cmp function for comparing them and passes @a user_data
+    pointer to the comparison function each time it's called.
 
     @header{wx/utils.h}
 */
-void wxQsort(void *const pbase, size_t total_elems,
-             size_t size, CMPFUNCDATA cmp, const void* user_data);
+void wxQsort(void* pbase, size_t total_elems,
+             size_t size, wxSortCallback cmp, const void* user_data);
 
 
 /**
index 17b6eb5879c2191e20e90a96d9c1fea88ef84f68..389c87769bf41cca07422112a4d6cd5f452907c4 100644 (file)
@@ -815,7 +815,7 @@ typedef struct
       stack size is needed (actually O(1) in this case)!  */
 
 void wxQsort(void *const pbase, size_t total_elems,
-                             size_t size, CMPFUNCDATA cmp, const void* user_data)
+             size_t size, wxSortCallback cmp, const void* user_data)
 {
   register char *base_ptr = (char *) pbase;
   const size_t max_thresh = MAX_THRESH * size;