diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2015-06-18 09:54:01 +0200 |
---|---|---|
committer | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2016-02-06 09:39:09 -0500 |
commit | 04f029ffad1838263b00d086edbca984459d9ada (patch) | |
tree | 4257e1a194d5219d37cf2bef1c537544f89f9e38 | |
parent | ba4fac9c7543e92001cf8ae81a2a017e4d34aa34 (diff) |
Don't immediately release temporary VclPtr returned from Create
...the only reason this didn't cause any problems is that the VclPtr returned
from Create already had an mnRefCnt > 1, because of activity in the PushButton
ctor.
Change-Id: I1066ff0b507b8a1ebff079f7b914235a7396368d
(cherry picked from commit e5a8d8c065c50316fbdd84424794aecaa634bdb5)
-rw-r--r-- | include/vcl/btndlg.hxx | 2 | ||||
-rw-r--r-- | vcl/source/window/btndlg.cxx | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/include/vcl/btndlg.hxx b/include/vcl/btndlg.hxx index 156a50d416e8..6ae2824bb1e3 100644 --- a/include/vcl/btndlg.hxx +++ b/include/vcl/btndlg.hxx @@ -96,7 +96,7 @@ private: Link<> maClickHdl; SAL_DLLPRIVATE void ImplInitButtonDialogData(); - SAL_DLLPRIVATE PushButton* ImplCreatePushButton( ButtonDialogFlags nBtnFlags ); + SAL_DLLPRIVATE VclPtr<PushButton> ImplCreatePushButton( ButtonDialogFlags nBtnFlags ); SAL_DLLPRIVATE ImplBtnDlgItem* ImplGetItem( sal_uInt16 nId ) const; DECL_DLLPRIVATE_LINK( ImplClickHdl, PushButton* pBtn ); SAL_DLLPRIVATE void ImplPosControls(); diff --git a/vcl/source/window/btndlg.cxx b/vcl/source/window/btndlg.cxx index 102f5ce839bd..6b141fe37bdc 100644 --- a/vcl/source/window/btndlg.cxx +++ b/vcl/source/window/btndlg.cxx @@ -73,9 +73,9 @@ void ButtonDialog::dispose() Dialog::dispose(); } -PushButton* ButtonDialog::ImplCreatePushButton( ButtonDialogFlags nBtnFlags ) +VclPtr<PushButton> ButtonDialog::ImplCreatePushButton( ButtonDialogFlags nBtnFlags ) { - PushButton* pBtn; + VclPtr<PushButton> pBtn; WinBits nStyle = 0; if ( nBtnFlags & ButtonDialogFlags::Default ) |