make glite_jp_attr_cmp() public
authorAleš Křenek <ljocha@ics.muni.cz>
Fri, 15 Jul 2005 11:44:30 +0000 (11:44 +0000)
committerAleš Křenek <ljocha@ics.muni.cz>
Fri, 15 Jul 2005 11:44:30 +0000 (11:44 +0000)
org.glite.jp.common/interface/types.h
org.glite.jp.common/src/attr.c

index 34e46ea..7cf9d98 100644 (file)
@@ -90,6 +90,8 @@ void glite_jp_attrval_free(glite_jp_attrval_t *,int);
 void glite_jp_attr_free(glite_jp_attr_t *,int);
 void glite_jp_attrset_free(glite_jp_attr_t *a,int);
 
+int glite_jp_attr_cmp(const glite_jp_attr_t *,const glite_jp_attr_t *);
+
 void glite_jp_attr_union(const glite_jp_attr_t *, const glite_jp_attr_t *,
         glite_jp_attr_t **);
 
index 3dfa1cd..2838b68 100644 (file)
@@ -18,10 +18,9 @@ void glite_jp_attrval_free(glite_jp_attrval_t *a,int f)
        if (f) free(a);
 }
 
-static int attr_cmp(const void *va,const void *vb)
+int glite_jp_attr_cmp(const glite_jp_attr_t *a,const glite_jp_attr_t *b)
 {
        int     c;
-       const glite_jp_attr_t   *a = va, *b = vb;
 
        if (a->type < b->type) return -1;
        if (a->type > b->type) return 1;
@@ -37,6 +36,11 @@ static int attr_cmp(const void *va,const void *vb)
        }
 }
 
+static int void_attr_cmp(const void *va, const void *vb)
+{
+       return glite_jp_attr_cmp(va,vb);
+}
+
 void glite_jp_attr_union(const glite_jp_attr_t *a, const glite_jp_attr_t *b,
        glite_jp_attr_t **out)
 {
@@ -56,7 +60,7 @@ void glite_jp_attr_union(const glite_jp_attr_t *a, const glite_jp_attr_t *b,
        memcpy(res,a,ac * sizeof *a);
        memcpy(res+ac,b,bc * sizeof *b);
        memset(res+ac+bc,0,sizeof *res);
-       qsort(res,c,sizeof *res,attr_cmp);
+       qsort(res,c,sizeof *res,void_attr_cmp);
 
        for (i=0; i<c; i++) {
                for (j=i+1; !attr_cmp(res+i,res+j); j++);