static void btconn_free(struct btconn *conn) { while (conn->l2conns) { struct l2conn *l2conn = conn->l2conns; conn->l2conns = l2conn->next; l2conn_free(l2conn); } while (conn->cid_hooks) { struct cid_hook *hook = conn->cid_hooks; conn->cid_hooks = hook->next; free(hook); } free(conn); }
static void btconn_free(struct btconn *conn) { if (conn->smp_data) smp_conn_del(conn->smp_data); while (conn->l2conns) { struct l2conn *l2conn = conn->l2conns; conn->l2conns = l2conn->next; l2conn_free(l2conn); } while (conn->cid_hooks) { struct cid_hook *hook = conn->cid_hooks; conn->cid_hooks = hook->next; free(hook); } free(conn); }