No changes, just use wxScopedPtr instead of explicit "delete".

Use wxScopedPtr in wxGenericFileDirButton to ensure that the dialog created by
it is always destroyed, even if an exception is thrown while showing the
dialog or while processing the event we generate after showing it.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70042 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2011-12-18 12:27:04 +00:00
parent 7f98bdd6a5
commit b9bb74e9fc

View File

@@ -28,6 +28,8 @@
#include "wx/filepicker.h" #include "wx/filepicker.h"
#include "wx/scopedptr.h"
// ============================================================================ // ============================================================================
// implementation // implementation
@@ -92,18 +94,16 @@ bool wxGenericFileDirButton::Create(wxWindow *parent,
void wxGenericFileDirButton::OnButtonClick(wxCommandEvent& WXUNUSED(ev)) void wxGenericFileDirButton::OnButtonClick(wxCommandEvent& WXUNUSED(ev))
{ {
wxDialog *p = CreateDialog(); wxScopedPtr<wxDialog> p(CreateDialog());
if (p->ShowModal() == wxID_OK) if (p->ShowModal() == wxID_OK)
{ {
// save updated path in m_path // save updated path in m_path
UpdatePathFromDialog(p); UpdatePathFromDialog(p.get());
// fire an event // fire an event
wxFileDirPickerEvent event(GetEventType(), this, GetId(), m_path); wxFileDirPickerEvent event(GetEventType(), this, GetId(), m_path);
GetEventHandler()->ProcessEvent(event); GetEventHandler()->ProcessEvent(event);
} }
wxDELETE(p);
} }
#endif // wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL #endif // wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL