]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed memory leak
authorVáclav Slavík <vslavik@fastmail.fm>
Wed, 16 Apr 2003 22:33:54 +0000 (22:33 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Wed, 16 Apr 2003 22:33:54 +0000 (22:33 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

contrib/src/xrc/xml.cpp
src/xrc/xml.cpp

index dac33413295b718ab4c630cca6386f973169c11d..b8b8aabec897b1b0158c9a5e1fb87f69eb6aa616 100644 (file)
@@ -531,6 +531,7 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
     XML_SetDefaultHandler(parser, DefaultHnd);
     XML_SetUnknownEncodingHandler(parser, UnknownEncodingHnd, NULL);
 
+    bool ok = true;
     do
     {
         size_t len = stream.Read(buf, BUFSIZE).LastRead();
@@ -540,13 +541,17 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
             wxLogError(_("XML parsing error: '%s' at line %d"),
                        XML_ErrorString(XML_GetErrorCode(parser)),
                        XML_GetCurrentLineNumber(parser));
-          return FALSE;
+            ok = false;
+            break;
         }
     } while (!done);
 
-    SetVersion(ctx.version);
-    SetFileEncoding(ctx.encoding);
-    SetRoot(ctx.root);
+    if (ok)
+    {
+        SetVersion(ctx.version);
+        SetFileEncoding(ctx.encoding);
+        SetRoot(ctx.root);
+    }
 
     XML_ParserFree(parser);
 #if !wxUSE_UNICODE
@@ -554,7 +559,7 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
         delete ctx.conv;
 #endif
 
-    return TRUE;
+    return ok;
 
 }
 
index dac33413295b718ab4c630cca6386f973169c11d..b8b8aabec897b1b0158c9a5e1fb87f69eb6aa616 100644 (file)
@@ -531,6 +531,7 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
     XML_SetDefaultHandler(parser, DefaultHnd);
     XML_SetUnknownEncodingHandler(parser, UnknownEncodingHnd, NULL);
 
+    bool ok = true;
     do
     {
         size_t len = stream.Read(buf, BUFSIZE).LastRead();
@@ -540,13 +541,17 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
             wxLogError(_("XML parsing error: '%s' at line %d"),
                        XML_ErrorString(XML_GetErrorCode(parser)),
                        XML_GetCurrentLineNumber(parser));
-          return FALSE;
+            ok = false;
+            break;
         }
     } while (!done);
 
-    SetVersion(ctx.version);
-    SetFileEncoding(ctx.encoding);
-    SetRoot(ctx.root);
+    if (ok)
+    {
+        SetVersion(ctx.version);
+        SetFileEncoding(ctx.encoding);
+        SetRoot(ctx.root);
+    }
 
     XML_ParserFree(parser);
 #if !wxUSE_UNICODE
@@ -554,7 +559,7 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding)
         delete ctx.conv;
 #endif
 
-    return TRUE;
+    return ok;
 
 }