pa_sink_input_assert_ref(i);
pa_assert_se(s = i->userdata);
- pa_hashmap_remove(s->userdata->by_origin, s->sdp_info.origin);
- session_free(s);
+ pa_hashmap_remove_and_free(s->userdata->by_origin, s->sdp_info.origin);
}
/* Called from IO context */
return;
if (goodbye) {
-
- if ((s = pa_hashmap_remove(u->by_origin, info.origin)))
- session_free(s);
-
+ pa_hashmap_remove_and_free(u->by_origin, info.origin);
pa_sdp_info_destroy(&info);
} else {
k = pa_atomic_load(&s->timestamp);
- if (k + DEATH_TIMEOUT < now.tv_sec) {
- pa_hashmap_remove(u->by_origin, s->sdp_info.origin);
- session_free(s);
- }
+ if (k + DEATH_TIMEOUT < now.tv_sec)
+ pa_hashmap_remove_and_free(u->by_origin, s->sdp_info.origin);
}
/* Restart timer */