X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a559d70856c65f8fd91d6e56c3e98c3828e18db7..892aeafc2a0212b4c3bebcaddd96a42cdd307afd:/contrib/src/xml/xmlres.cpp diff --git a/contrib/src/xml/xmlres.cpp b/contrib/src/xml/xmlres.cpp index 7c204def23..19c6eaf4cf 100644 --- a/contrib/src/xml/xmlres.cpp +++ b/contrib/src/xml/xmlres.cpp @@ -21,6 +21,7 @@ #include "wx/dialog.h" #include "wx/panel.h" +#include "wx/frame.h" #include "wx/wfstream.h" #include "wx/filesys.h" #include "wx/log.h" @@ -254,7 +255,7 @@ void wxXmlResource::UpdateResources() { bool modif; # if wxUSE_FILESYSTEM - wxFSFile *file; + wxFSFile *file = NULL; wxFileSystem fsys; # endif @@ -269,7 +270,7 @@ void wxXmlResource::UpdateResources() modif = file && file->GetModificationTime() > m_Data[i].Time; if (!file) wxLogError(_("Cannot open file '%s'."), m_Data[i].File.c_str()); - delete file; + wxDELETE(file); # else modif = wxDateTime(wxFileModificationTime(m_Data[i].File)) > m_Data[i].Time; # endif @@ -277,11 +278,12 @@ void wxXmlResource::UpdateResources() if (modif) { - wxInputStream *stream; + wxInputStream *stream = NULL; # if wxUSE_FILESYSTEM file = fsys.OpenFile(m_Data[i].File); - stream = file->GetStream(); + if (file) + stream = file->GetStream(); # else stream = new wxFileInputStream(m_Data[i].File); # endif @@ -294,22 +296,23 @@ void wxXmlResource::UpdateResources() if (!stream || !m_Data[i].Doc->Load(*stream)) { wxLogError(_("Cannot load resources from file '%s'."), m_Data[i].File.c_str()); - delete m_Data[i].Doc; - m_Data[i].Doc = NULL; + wxDELETE(m_Data[i].Doc); } else if (m_Data[i].Doc->GetRoot()->GetName() != wxT("resource")) { wxLogError(_("Invalid XML resource '%s': doesn't have root node 'resource'."), m_Data[i].File.c_str()); - delete m_Data[i].Doc; - m_Data[i].Doc = NULL; + wxDELETE(m_Data[i].Doc); } else + { ProcessPlatformProperty(m_Data[i].Doc->GetRoot()); + m_Data[i].Time = file->GetModificationTime(); + } # if wxUSE_FILESYSTEM - delete file; + wxDELETE(file); # else - delete stream; + wxDELETE(stream); # endif } } @@ -560,7 +563,7 @@ wxColour wxXmlResourceHandler::GetColour(const wxString& param) wxString v = GetParamValue(param); unsigned long tmp = 0; - if (v.Length() != 7 || v[0] != wxT('#') || + if (v.Length() != 7 || v[0u] != wxT('#') || wxSscanf(v.c_str(), wxT("#%lX"), &tmp) != 1) { wxLogError(_("XML resource: Incorrect colour specification '%s' for property '%s'."),