libpurple/xmlnode.c

changeset 19568
1daa0179da7b
parent 18315
10dbbd7540b8
child 19821
c044ef20e299
child 19890
5acc75657ae0
equal deleted inserted replaced
19565:b6baa14887a8 19568:1daa0179da7b
270 270
271 /* if we're part of a tree, remove ourselves from the tree first */ 271 /* if we're part of a tree, remove ourselves from the tree first */
272 if(NULL != node->parent) { 272 if(NULL != node->parent) {
273 if(node->parent->child == node) { 273 if(node->parent->child == node) {
274 node->parent->child = node->next; 274 node->parent->child = node->next;
275 if (node->parent->lastchild == node)
276 node->parent->lastchild = node->next;
275 } else { 277 } else {
276 xmlnode *prev = node->parent->child; 278 xmlnode *prev = node->parent->child;
277 while(prev && prev->next != node) { 279 while(prev && prev->next != node) {
278 prev = prev->next; 280 prev = prev->next;
279 } 281 }
280 if(prev) { 282 if(prev) {
281 prev->next = node->next; 283 prev->next = node->next;
284 if (node->parent->lastchild == node)
285 node->parent->lastchild = prev;
282 } 286 }
283 } 287 }
284 } 288 }
285 289
286 /* now free our children */ 290 /* now free our children */

mercurial