+ void_f_pvoid_t free_f;
+ if (dict->homogeneous) {
+ free_f = dict->free_f;
+ xbt_assert(!free_ctn,
+ "Cannot set an individual free function in homogeneous dicts.");
+ } else {
+ xbt_het_dictelm_t het_element = (xbt_het_dictelm_t)element;
+ free_f = het_element->free_f;
+ het_element->free_f = free_ctn;
+ }
+
+ if (free_f && element->content)
+ free_f(element->content);
+
+ element->content = data;