summaryrefslogtreecommitdiff
path: root/TAO
diff options
context:
space:
mode:
authorarvindk <arvindk@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-06-10 22:29:04 +0000
committerarvindk <arvindk@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-06-10 22:29:04 +0000
commitef70ab4af51ce351ae820300b1a2cea1a8bcdc1f (patch)
treef69e5268bde71aba495b71d1e5708d47c36e7cbc /TAO
parent0ad620059890e6743b3d08756dae84c21a195633 (diff)
downloadATCD-ef70ab4af51ce351ae820300b1a2cea1a8bcdc1f.tar.gz
Thu Jun 10 17:27:35 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
Diffstat (limited to 'TAO')
-rw-r--r--TAO/CIAO/ChangeLog6
-rw-r--r--TAO/CIAO/DnC/Config_Handlers/Utils.cpp30
2 files changed, 22 insertions, 14 deletions
diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog
index 676c7a09c95..606db50351f 100644
--- a/TAO/CIAO/ChangeLog
+++ b/TAO/CIAO/ChangeLog
@@ -1,3 +1,9 @@
+Thu Jun 10 17:27:35 2004 Arvind S. Krishna <arvindk@dre.vanderbilt.edu>
+
+ * DnC/Config_Handlers/Utils.cpp:
+
+ Fixed some memory leaks as well!!
+
Thu Jun 10 17:26:25 2004 Jaiganesh B <jai@dre.vanderbilt.edu>
* DnC/Config_Handlers/Process_Element.cpp:
diff --git a/TAO/CIAO/DnC/Config_Handlers/Utils.cpp b/TAO/CIAO/DnC/Config_Handlers/Utils.cpp
index 13f57da2b9a..e57762a8bb8 100644
--- a/TAO/CIAO/DnC/Config_Handlers/Utils.cpp
+++ b/TAO/CIAO/DnC/Config_Handlers/Utils.cpp
@@ -4,6 +4,7 @@
#include "ace/OS_NS_stdlib.h"
#include "ace/Log_Msg.h"
#include "ace/SString.h"
+#include "ace/Auto_Ptr.h"
#include "XercesString.h"
#include <xercesc/util/XMLURL.hpp>
@@ -33,8 +34,8 @@ CORBA::Short
CIAO::Config_Handler::Utils::parse_short (DOMNodeIterator * iter)
{
char *temp (Config_Handler::Utils::parse_string (iter));
+ auto_ptr<char> cleanup_char (temp);
CORBA::Short ret_val = ACE_OS::atoi (temp);
- XMLString::release (&temp);
return ret_val;
}
@@ -42,8 +43,8 @@ CORBA::ULong
CIAO::Config_Handler::Utils::parse_ulong (DOMNodeIterator * iter)
{
char *temp (Config_Handler::Utils::parse_string (iter));
+ auto_ptr<char> cleanup_char (temp);
CORBA::ULong ret_val = ACE_OS::strtoul (temp, 0, 10);
- XMLString::release (&temp);
return ret_val;
}
@@ -51,8 +52,8 @@ CORBA::Long
CIAO::Config_Handler::Utils::parse_long (DOMNodeIterator * iter)
{
char *temp (Config_Handler::Utils::parse_string (iter));
+ auto_ptr<char> cleanup_char (temp);
CORBA::ULong ret_val = ACE_OS::strtol (temp, 0, 10);
- XMLString::release (&temp);
return ret_val;
}
@@ -60,8 +61,8 @@ CORBA::Double
CIAO::Config_Handler::Utils::parse_double (DOMNodeIterator * iter)
{
char *temp (Config_Handler::Utils::parse_string (iter));
+ auto_ptr<char> cleanup_char (temp);
CORBA::Double ret_val = ACE_OS::strtod (temp, 0);
- XMLString::release (&temp);
return ret_val;
}
@@ -86,25 +87,25 @@ CIAO::Config_Handler::Utils::parse_bool (DOMNodeIterator * iter)
return 0;
}
-CORBA::Char
+CORBA::Char
CIAO::Config_Handler::Utils::parse_char (DOMNodeIterator * iter)
{
DOMText * text = ACE_reinterpret_cast (DOMText *, iter->nextNode ());
- char * temp_string = XMLString::transcode (text->getNodeValue ());
+ char * temp_string = XMLString::transcode (text->getNodeValue ());
+ auto_ptr<char> cleanup_char (temp_string);
- // Should be non-null
+ // Should be non-null
ACE_ASSERT (temp_string != 0);
- // Return the first character in the node as char value
+ // Return the first character in the node as char value
char ret_char = temp_string [0];
- XMLString::release (&temp_string);
return ret_char;
}
CORBA::Octet
CIAO::Config_Handler::Utils::parse_octet (DOMNodeIterator * iter)
{
- return Utils::parse_char (iter);
+ return Utils::parse_char (iter);
}
DOMDocument *
@@ -117,9 +118,11 @@ CIAO::Config_Handler::Utils::create_document (const char * url)
DOMImplementation* impl
= DOMImplementationRegistry::getDOMImplementation(gLS);
+ auto_ptr<DOMImplementation> cleanup_impl (impl);
DOMBuilder* parser =
((DOMImplementationLS*)impl)->createDOMBuilder(DOMImplementationLS::MODE_SYNCHRONOUS, 0);
+ auto_ptr<DOMBuilder> cleanup_parser (parser);
// Discard comment nodes in the document
parser->setFeature (XMLUni::fgDOMComments, false);
@@ -157,13 +160,12 @@ CIAO::Config_Handler::Utils::create_document (const char * url)
DOMDocument* doc = parser->parseURI (url);
- ACE_TString root_node_name;
- root_node_name = XMLString::transcode (doc->getDocumentElement ()->getNodeName ());
+ auto_ptr<DOMDocument> cleanup_doc (doc);
return doc;
}
-DOMNodeIterator *
+DOMNodeIterator *
CIAO::Config_Handler::Utils::parse_href_tag (XMLURL url, DOMDocument * doc)
{
const char * document_path = 0;
@@ -180,7 +182,7 @@ CIAO::Config_Handler::Utils::parse_href_tag (XMLURL url, DOMDocument * doc)
document_path = path.c_str ();
}
- DOMDocument* href_doc =
+ DOMDocument* href_doc =
CIAO::Config_Handler::Utils::create_document (document_path);
DOMDocumentTraversal* traverse (href_doc);
DOMNode* root = (href_doc->getDocumentElement ());