- if (filter != nullptr){
- //check if we already register this pair (we only need one direction)
- char aux1[INSTR_DEFAULT_STR_SIZE];
- char aux2[INSTR_DEFAULT_STR_SIZE];
- snprintf(aux1, INSTR_DEFAULT_STR_SIZE, "%s%s", src->name_, dst->name_);
- snprintf(aux2, INSTR_DEFAULT_STR_SIZE, "%s%s", dst->name_, src->name_);
- if (xbt_dict_get_or_null (filter, aux1)){
- XBT_DEBUG(" linkContainers: already registered %s <-> %s (1)", src->name_, dst->name_);
- return;
- }
- if (xbt_dict_get_or_null (filter, aux2)){
- XBT_DEBUG(" linkContainers: already registered %s <-> %s (2)", dst->name_, src->name_);
- return;
- }
-
- //ok, not found, register it
- xbt_dict_set (filter, aux1, xbt_strdup ("1"), nullptr);
- xbt_dict_set (filter, aux2, xbt_strdup ("1"), nullptr);
+ // check if we already register this pair (we only need one direction)
+ std::string aux1 = std::string(src->name_) + dst->name_;
+ std::string aux2 = std::string(dst->name_) + src->name_;
+ if (filter->find(aux1) != filter->end()) {
+ XBT_DEBUG(" linkContainers: already registered %s <-> %s (1)", src->name_, dst->name_);
+ return;