From: Václav Slavík Date: Wed, 16 Apr 2003 22:33:54 +0000 (+0000) Subject: fixed memory leak X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/e23279e1a7cc9cdd226483e9f0d88b02c92fb83e fixed memory leak git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20243 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/contrib/src/xrc/xml.cpp b/contrib/src/xrc/xml.cpp index dac3341329..b8b8aabec8 100644 --- a/contrib/src/xrc/xml.cpp +++ b/contrib/src/xrc/xml.cpp @@ -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; } diff --git a/src/xrc/xml.cpp b/src/xrc/xml.cpp index dac3341329..b8b8aabec8 100644 --- a/src/xrc/xml.cpp +++ b/src/xrc/xml.cpp @@ -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; }