int counter_offset; /* for a variable array we need the offset of the count variable */
unsigned char type; /* EET_T_XXX */
unsigned char group_type; /* EET_G_XXX */
+ Eina_Bool subtype_free : 1;
};
struct _Eet_Data_Encode_Hash_Info
_eet_descriptor_hash_free(edd);
if (edd->elements.set)
- free(edd->elements.set);
+ {
+ int i;
+ for (i = 0; i < edd->elements.num; i++)
+ {
+ if (edd->elements.set[i].subtype_free)
+ eet_data_descriptor_free(edd->elements.set[i].subtype);
+ }
+ free(edd->elements.set);
+ }
free(edd);
}
ede = &(edd->elements.set[edd->elements.num - 1]);
ede->name = name;
ede->directory_name_ptr = NULL;
+ ede->subtype_free = EINA_FALSE;
/*
* We do a special case when we do list,hash or whatever group of simple type.
/* 0, */ NULL,
NULL);
type = EET_T_UNKNOW;
+ ede->subtype_free = EINA_TRUE;
}
ede->type = type;