Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[mc] Fix free callback for type->members
authorGabriel Corona <gabriel.corona@loria.fr>
Thu, 20 Mar 2014 11:30:04 +0000 (12:30 +0100)
committerGabriel Corona <gabriel.corona@loria.fr>
Thu, 20 Mar 2014 11:47:50 +0000 (12:47 +0100)
Missing one indirection.

src/mc/mc_dwarf.c
src/mc/mc_global.c

index 67eccc4..d82ee7d 100644 (file)
@@ -446,11 +446,15 @@ static void MC_dwarf_fill_member_location(dw_type_t type, dw_type_t member, Dwar
 
 }
 
 
 }
 
+static void dw_type_free_voidp(void *t){
+  dw_type_free((dw_type_t) * (void **) t);
+}
+
 static void MC_dwarf_add_members(mc_object_info_t info, Dwarf_Die* die, Dwarf_Die* unit, dw_type_t type) {
   int res;
   Dwarf_Die child;
   xbt_assert(!type->members);
 static void MC_dwarf_add_members(mc_object_info_t info, Dwarf_Die* die, Dwarf_Die* unit, dw_type_t type) {
   int res;
   Dwarf_Die child;
   xbt_assert(!type->members);
-  type->members = xbt_dynar_new(sizeof(dw_type_t), (void(*)(void*))dw_type_free);
+  type->members = xbt_dynar_new(sizeof(dw_type_t), (void(*)(void*))dw_type_free_voidp);
   for (res=dwarf_child(die, &child); res==0; res=dwarf_siblingof(&child,&child)) {
     int tag = dwarf_tag(&child);
     if (tag==DW_TAG_member || tag==DW_TAG_inheritance) {
   for (res=dwarf_child(die, &child); res==0; res=dwarf_siblingof(&child,&child)) {
     int tag = dwarf_tag(&child);
     if (tag==DW_TAG_member || tag==DW_TAG_inheritance) {
index 6f36ffe..0eeddef 100644 (file)
@@ -170,10 +170,6 @@ void dw_type_free(dw_type_t t){
   xbt_free(t);
 }
 
   xbt_free(t);
 }
 
-static void dw_type_free_voidp(void *t){
-  dw_type_free((dw_type_t) * (void **) t);
-}
-
 void dw_variable_free(dw_variable_t v){
   if(v){
     xbt_free(v->name);
 void dw_variable_free(dw_variable_t v){
   if(v){
     xbt_free(v->name);