Commit 8ede43dcb8331c83389751f6699190da3f3d1d35

Authored by Jürgen Knödlseder
1 parent f00028c2

Avoid memory leak in XML parsing.

Showing 1 changed file with 6 additions and 7 deletions
src/xml/GXml.cpp
... ... @@ -909,8 +909,8 @@ void GXml::process_markup(GXmlNode** current, const std::string& segment)
909 909 // Append comment markup
910 910 case MT_COMMENT:
911 911 {
912   - GXmlComment comment(segment);
913   - (*current)->append(comment);
  912 + // Append comment
  913 + (*current)->append(GXmlComment(segment));
914 914 }
915 915 break;
916 916  
... ... @@ -956,8 +956,8 @@ void GXml::process_markup(GXmlNode** current, const std::string& segment)
956 956 // Processing tag
957 957 case MT_PROCESSING:
958 958 {
959   - GXmlPI pi(segment);
960   - (*current)->append(pi);
  959 + // Append PI
  960 + (*current)->append(GXmlPI(segment));
961 961 }
962 962 break;
963 963  
... ... @@ -989,9 +989,8 @@ void GXml::process_text(GXmlNode** current, const std::string& segment)
989 989 size_t pos = segment.find_first_not_of("\x20\x09\x0d\x0a\x85");
990 990 if (pos != std::string::npos) {
991 991  
992   - // Allocate and append node
993   - GXmlText* node = new GXmlText(segment);
994   - (*current)->append(*node);
  992 + // Append node
  993 + (*current)->append(GXmlText(segment));
995 994  
996 995 } // endif: there was not only whitespace
997 996  
... ...