2010-05-13 Rodrigo Kumpera <rkumpera@novell.com>
authorRodrigo Kumpera <kumpera@gmail.com>
Thu, 13 May 2010 22:06:44 +0000 (22:06 -0000)
committerRodrigo Kumpera <kumpera@gmail.com>
Thu, 13 May 2010 22:06:44 +0000 (22:06 -0000)
* mono-ptr-array.h: Add mono_ptr_array_sort.

* reflection.c (mono_image_build_metadata): Replace that ugly
qsort call with mono_ptr_array_sort.

svn path=/trunk/mono/; revision=157328

mono/metadata/ChangeLog
mono/metadata/mono-ptr-array.h
mono/metadata/reflection.c

index 0d3b598a5f2a5c5eb7347def456605b1b82f15e4..319f5c4c79027788c3b2f6d5e02b2039e7b7de6f 100644 (file)
@@ -1,3 +1,10 @@
+2010-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
+
+       * mono-ptr-array.h: Add mono_ptr_array_sort.
+
+       * reflection.c (mono_image_build_metadata): Replace that ugly
+       qsort call with mono_ptr_array_sort.
+
 2010-05-13  Mark Probst  <mark.probst@gmail.com>
 
        * sgen-gc.c: Switch to the copying major collector, because
index 55d58570434a347fbc08ad91f196ed136ac4c9c9..ecc0e42696cb053a28ced1cabc0a3f9aaecafd21 100644 (file)
@@ -49,6 +49,10 @@ typedef struct {
        ((ARRAY).data [(ARRAY).size++] = VALUE); \
 } while (0)
 
+#define mono_ptr_array_sort(ARRAY, COMPARE_FUNC) do { \
+       qsort ((ARRAY).data, (ARRAY).size, sizeof (gpointer), (COMPARE_FUNC)); \
+} while (0)
+
 #define mono_ptr_array_set(ARRAY, IDX, VALUE) do { \
        ((ARRAY).data [(IDX)] = VALUE); \
 } while (0)
index 4abd1b608b60fe1a9d14929a516c45a0cd469925..501553553ee112e1e1bfc91221297ca3ed255b8a 100644 (file)
@@ -4601,8 +4601,7 @@ mono_image_build_metadata (MonoReflectionModuleBuilder *moduleb)
                        collect_types (&types, type);
                }
 
-       qsort (&mono_ptr_array_get(types, 0), mono_ptr_array_size (types), sizeof (gpointer), compare_types_by_table_idx);
-       //g_ptr_array_sort (types, (GCompareFunc)compare_types_by_table_idx);
+       mono_ptr_array_sort (types, compare_types_by_table_idx);
        table = &assembly->tables [MONO_TABLE_TYPEDEF];
        table->rows += mono_ptr_array_size (types);
        alloc_table (table, table->rows);