Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
3rd attempt: replace __compar_fn_t by a new function type
authorsuter <suter@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 14 Jun 2010 09:15:20 +0000 (09:15 +0000)
committersuter <suter@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 14 Jun 2010 09:15:20 +0000 (09:15 +0000)
int_f_cpvoid_cpvoid (int foo (const void*, const void *)

It's hard to add stuff in XBT, the gurus are watching you ...

git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@7845 48e7efb5-ca39-0410-a469-dd3cf9ba447f

include/xbt/dynar.h
include/xbt/function_types.h
src/xbt/dynar.c

index 0b881bc..3dc0bd2 100644 (file)
@@ -10,7 +10,6 @@
 #define _XBT_DYNAR_H
 
 #include <string.h> /* memcpy */
-#include <stdlib.h> /* __compar_fn_t */
 
 #include "xbt/misc.h"           /* SG_BEGIN_DECL */
 #include "xbt/function_types.h"
@@ -99,7 +98,7 @@ XBT_PUBLIC(void) xbt_dynar_remove_at(xbt_dynar_t const dynar, const int idx,
 
 XBT_PUBLIC(int) xbt_dynar_search(xbt_dynar_t const dynar, void *elem);
 XBT_PUBLIC(int) xbt_dynar_member(xbt_dynar_t const dynar, void *elem);
-XBT_PUBLIC(void) xbt_dynar_sort(xbt_dynar_t const dynar, __compar_fn_t);
+XBT_PUBLIC(void) xbt_dynar_sort(xbt_dynar_t const dynar, int_f_cpvoid_cpvoid_t compar_fn);
 
 /** @} */
 /** @defgroup XBT_dynar_perl Perl-like use of dynars
index 9bf172f..201bdb7 100644 (file)
@@ -23,6 +23,7 @@ typedef void (*void_f_int_pvoid_t) (int,void *);
      typedef int (*int_f_void_t) (void);
 
      typedef int (*int_f_pvoid_pvoid_t) (void *, void *);
+     typedef int (*int_f_cpvoid_cpvoid_t) (const void *, const void *);
 
      typedef int (*xbt_main_func_t) (int argc, char *argv[]);
 
index 446f26d..14c1df7 100644 (file)
@@ -692,7 +692,7 @@ XBT_INLINE void xbt_dynar_cursor_unlock(xbt_dynar_t dynar)
  * Remark: if the elements stored in the dynar are structures, the compar_fn
  * function has to retrieve the field to sort first.
  */
-XBT_INLINE void xbt_dynar_sort(xbt_dynar_t dynar, __compar_fn_t compar_fn){
+XBT_INLINE void xbt_dynar_sort(xbt_dynar_t dynar, int_f_cpvoid_cpvoid_t compar_fn){
 
        _dynar_lock(dynar);