I am using a tuxedo server to manipulate the incoming XML requests. (parse
the xml, Modify some elements, etc)
For each request, i insert an element and the corresponding value to the
input XML
i pass 1 for number of elements.
int
insert_element_and_text_nodes(DOM_Document doc, char *parent, uint16
no_of_child
ren(=1), domElement_t *elements, char **response)
{
DOM_Node root = doc.getDocumentElement();
DOM_Node parent_node = findNode(root, parent);
if(parent_node== 0)
{
lm_message(LM_NORMAL, GetProgramName(), -1, "saXmlEvtHandler", 1, "%d -
Can
not find the parent node", __LINE__);
*response = SAFaultError(SVC_PARENT_NODE_MISSING, parent,
FaultActor);
return SVC_SUCCESS;
}
bool hasErrors = false;
for(int ii=0; ii<no_of_children; ii++)
{
DOMString el_name = DOMString::transcode((elements+ii)->element_name);
DOMString el_value =
DOMString::transcode((elements+ii)->element_value);
DOM_Node el_node;
try {
DOM_Element elem = (DOM_Element) doc.createElement(el_name); //mem
leak
el_node = parent_node.appendChild(elem);
} catch(const DOM_DOMException& e) {
lm_message(LM_NORMAL, GetProgramName(), -1, "saXmlEvtHandler", 1,
"%d -
Cannot append child element node: %s", __LINE__,
(elements+ii)->element_name);
hasErrors = true;
}
catch(...){
hasErrors = true;
}
if(hasErrors)
{
*response = SAFaultError(SVC_ELEMENT_APPEND_ERROR,
(elements+ii)->element
_name, FaultActor);
return SVC_SUCCESS;
}
try {
DOM_Text value_text = doc.createTextNode(el_value); //mem leak
el_node.appendChild(value_text);
}catch(const DOM_DOMException& e) {
lm_message(LM_NORMAL, GetProgramName(), -1, "saXmlEvtHandler", 1, "%d
- Ca
nnot append child text node %s", __LINE__, (elements+ii)->element_value);
hasErrors = true;
}
catch(...){
hasErrors = true;
}if(hasErrors)
{
*response = SAFaultError(SVC_TEXT_APPEND_ERROR,
(elements+ii)->element_nam
e, FaultActor);
return SVC_SUCCESS;
}
}
return SVC_SUCCESS;
}
When i try to use purify to find out the memory leaks, it shows leaks at the
statement where i create the element (statement in BOLD).
Also it shows leaks where i do the parsing.
Do i have to delete these variables? i believe DOM will take care of doing
it when the variables go out of scope
Can someone help on this?
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]