- xbt_swag_remove(&elem, &(elem.constraint->enabled_element_set));
- xbt_swag_remove(&elem, &(elem.constraint->disabled_element_set));
- xbt_swag_remove(&elem, &(elem.constraint->active_element_set));
- int nelements = xbt_swag_size(&(elem.constraint->enabled_element_set)) +
- xbt_swag_size(&(elem.constraint->disabled_element_set));
+ if (elem.enabled_element_set_hook.is_linked())
+ simgrid::xbt::intrusive_erase(elem.constraint->enabled_element_set, elem);
+ if (elem.disabled_element_set_hook.is_linked())
+ simgrid::xbt::intrusive_erase(elem.constraint->disabled_element_set, elem);
+ if (elem.active_element_set_hook.is_linked())
+ simgrid::xbt::intrusive_erase(elem.constraint->active_element_set, elem);
+ int nelements = elem.constraint->enabled_element_set.size() + elem.constraint->disabled_element_set.size();