diff --git a/interface/wx/webview.h b/interface/wx/webview.h index cfbeaa4b49..a1e882a04a 100644 --- a/interface/wx/webview.h +++ b/interface/wx/webview.h @@ -731,7 +731,9 @@ public: wxWebViewHandler(const wxString& scheme); /** - @return A pointer to the file represented by @c uri. + @return A pointer to the file represented by @c uri, or @NULL. The + caller takes ownership of the returned pointer and is responsible for + deleting it. */ virtual wxFSFile* GetFile(const wxString &uri); diff --git a/src/gtk/webview_webkit.cpp b/src/gtk/webview_webkit.cpp index c692e6eec1..afbff0ceee 100644 --- a/src/gtk/webview_webkit.cpp +++ b/src/gtk/webview_webkit.cpp @@ -20,6 +20,7 @@ #include "wx/log.h" #include "wx/private/webview.h" +#include "wx/scopedptr.h" #include @@ -158,7 +159,7 @@ wxgtk_webview_webkit_navigation(WebKitWebView *, if(handler) { webKitCtrl->m_guard = true; - wxFSFile* file = handler->GetFile(wxuri); + wxScopedPtr file(handler->GetFile(wxuri)); if(file) { webKitCtrl->SetPage(*file->GetStream(), wxuri); @@ -385,7 +386,7 @@ wxgtk_webview_webkit_resource_req(WebKitWebView *, if(webKitCtrl->m_vfsurl == uri) return; - wxFSFile* file = handler->GetFile(uri); + wxScopedPtr file(handler->GetFile(uri)); if(file) { //We load the data into a data url to save it being written out again diff --git a/src/gtk/webview_webkit2.cpp b/src/gtk/webview_webkit2.cpp index fc44c15ebc..c2e4dd35d7 100644 --- a/src/gtk/webview_webkit2.cpp +++ b/src/gtk/webview_webkit2.cpp @@ -38,6 +38,7 @@ #include "wx/gtk/private/object.h" #include "wx/gtk/private/variant.h" #include "wx/private/jsscriptwrapper.h" +#include "wx/scopedptr.h" #include #include #include @@ -500,7 +501,7 @@ wxgtk_webview_webkit_uri_scheme_request_cb(WebKitURISchemeRequest *request, { const wxString uri = wxString::FromUTF8(webkit_uri_scheme_request_get_uri(request)); - wxFSFile* file = handler->GetFile(uri); + wxScopedPtr file(handler->GetFile(uri)); if(file) { gint64 length = file->GetStream()->GetLength();