lws_remove_child_from_any_parent: clear parent pointer and fix failure message
This commit is contained in:
parent
73e12e7b93
commit
db64bfcefa
1 changed files with 18 additions and 14 deletions
|
@ -146,23 +146,27 @@ static void
|
|||
lws_remove_child_from_any_parent(struct lws *wsi)
|
||||
{
|
||||
struct lws **pwsi;
|
||||
int seen = 0;
|
||||
|
||||
if (wsi->parent) {
|
||||
/* detach ourselves from parent's child list */
|
||||
pwsi = &wsi->parent->child_list;
|
||||
while (*pwsi) {
|
||||
if (*pwsi == wsi) {
|
||||
//lwsl_notice("%s: detach %p from parent %p\n",
|
||||
// __func__, wsi, wsi->parent);
|
||||
*pwsi = wsi->sibling_list;
|
||||
break;
|
||||
}
|
||||
pwsi = &(*pwsi)->sibling_list;
|
||||
if (!wsi->parent)
|
||||
return;
|
||||
|
||||
/* detach ourselves from parent's child list */
|
||||
pwsi = &wsi->parent->child_list;
|
||||
while (*pwsi) {
|
||||
if (*pwsi == wsi) {
|
||||
lwsl_info("%s: detach %p from parent %p\n",
|
||||
__func__, wsi, wsi->parent);
|
||||
*pwsi = wsi->sibling_list;
|
||||
seen = 1;
|
||||
break;
|
||||
}
|
||||
if (*pwsi)
|
||||
lwsl_err("%s: failed to detach from parent\n",
|
||||
__func__);
|
||||
pwsi = &(*pwsi)->sibling_list;
|
||||
}
|
||||
if (!seen)
|
||||
lwsl_err("%s: failed to detach from parent\n", __func__);
|
||||
|
||||
wsi->parent = NULL;
|
||||
}
|
||||
|
||||
int
|
||||
|
|
Loading…
Add table
Reference in a new issue