- hmap_init(&new_rmps);
- for (i = 0; i < s->n_remote_mpids; i++) {
- uint16_t mpid = s->remote_mpids[i];
-
- if (!cfm_is_valid_mpid(mpid)
- || lookup_remote_mp(&new_rmps, mpid)) {
- continue;
- }
-
- if ((rmp = lookup_remote_mp(&cfm->remote_mps, mpid))) {
- hmap_remove(&cfm->remote_mps, &rmp->node);
- } else {
- rmp = xzalloc(sizeof *rmp);
- rmp->mpid = mpid;
- }
-
- hmap_insert(&new_rmps, &rmp->node, hash_mpid(mpid));
- }
-
- hmap_swap(&new_rmps, &cfm->remote_mps);
- HMAP_FOR_EACH_SAFE (rmp, rmp_next, node, &new_rmps) {
- hmap_remove(&new_rmps, &rmp->node);
- free(rmp);
- }
- hmap_destroy(&new_rmps);
-