From 6a8fb6bdeaa474cf8d965b4dc211de47f71ce5c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Tue, 30 Sep 2003 18:36:05 +0000 Subject: [PATCH] XML code fixes (patch #815196) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@24012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/xml/xml.cpp | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/xml/xml.cpp b/src/xml/xml.cpp index 056cc19565..ab40593bed 100644 --- a/src/xml/xml.cpp +++ b/src/xml/xml.cpp @@ -543,8 +543,10 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding) done = (len < BUFSIZE); if (!XML_Parse(parser, buf, len, done)) { + wxString error(XML_ErrorString(XML_GetErrorCode(parser)), + *wxConvCurrent); wxLogError(_("XML parsing error: '%s' at line %d"), - XML_ErrorString(XML_GetErrorCode(parser)), + error.c_str(), XML_GetCurrentLineNumber(parser)); ok = false; break; @@ -553,10 +555,16 @@ bool wxXmlDocument::Load(wxInputStream& stream, const wxString& encoding) if (ok) { - SetVersion(ctx.version); - SetFileEncoding(ctx.encoding); + if (!ctx.version.IsEmpty()) + SetVersion(ctx.version); + if (!ctx.encoding.IsEmpty()) + SetFileEncoding(ctx.encoding); SetRoot(ctx.root); } + else + { + delete ctx.root; + } XML_ParserFree(parser); #if !wxUSE_UNICODE @@ -580,13 +588,7 @@ inline static void OutputString(wxOutputStream& stream, const wxString& str, { if (str.IsEmpty()) return; #if wxUSE_UNICODE - const wxWX2MBbuf buf(str.mb_str( -#ifdef __MWERKS__ - *(convFile ? convFile : &wxConvUTF8) -#else - convFile ? *convFile : wxConvUTF8 -#endif - )); + const wxWX2MBbuf buf(str.mb_str(*(convFile ? convFile : &wxConvUTF8))); stream.Write((const char*)buf, strlen((const char*)buf)); #else if ( convFile == NULL )