logo       
Google Custom Search
    AddThis Social Bookmark Button
-->

xmlAddChild() vs. xmlAddChildList(): msg#00178

Subject: xmlAddChild() vs. xmlAddChildList()
Hi, 

Suppose I have a number of children-nodes attached to a parent. Suppose I take 
one of these children-nodes and add it to another parent. I would expect the 
behaviour of xmlAddChild() and xmlAddChildList() to differ in this respect, 
such that xmlAddChild ONLY adds this particular child, and xmlAddChildList adds 
this particular child and all other nodes attached to this child via 'next'. 

But it doesn't. Look at the next gdb()-output:


Breakpoint 1, updateRecord (main=0x8051d00, new=0x8059240, PR=3)
    at onixmerge.c:293
293           child = xmlAddChild (main, new);
(gdb) print *new  
$1 = {_private = 0x0, type = XML_ELEMENT_NODE, name = 0x8054e40 "UPC", 
  children = 0x8059280, last = 0x8059280, parent = 0x8059040, 
  next = 0x80592c0, prev = 0x8059200, doc = 0x8053380, ns = 0x0, 
  content = 0x0, properties = 0x0, nsDef = 0x0}
(gdb) until
295     }
(gdb) print *child
$2 = {_private = 0x0, type = XML_ELEMENT_NODE, name = 0x8054e40 "UPC", 
  children = 0x8059280, last = 0x8059280, parent = 0x8051d00, 
  next = 0x80592c0, prev = 0x805ddc0, doc = 0x8053300, ns = 0x0, 
  content = 0x0, properties = 0x0, nsDef = 0x0}
(gdb) 


AddChild() in line 293 takes 'new', which has a node attached to it via 'next' 
(address = 0x80592c0). After the AddChild()-node, the 'next' is left intact, 
although the parent and prev have (correctly) changed. 

Is my understanding of the difference between AddChild() and AddChildList() 
wrong, or not? Bug or feature?

Kind regards from sunny Amsterdam,

Roelant.


<Prev in Thread] Current Thread [Next in Thread>