diff options
author | Maxim Monastirsky <momonasmon@gmail.com> | 2018-01-20 19:51:34 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2018-01-23 21:27:09 +0100 |
commit | 4e00b175e2c222bc320ec16caa90aa1bd2c1b7a7 (patch) | |
tree | 03285cc21d9603c47d2a9b26d26444a75bcef952 /vcl/source | |
parent | 30f07eb1d412fd53da70f350322034aae5b9c561 (diff) |
tdf#115023 Check mpControlData for nullptr
Control::ImplClearLayoutData happens to be called post
dispose, but Control::dispose already destroyed
mpControlData. So put back the nullptr check that was
removed in e8b49f09074fe184374bee5062715357427ae044
("new loplugin: useuniqueptr: vcl").
(But IMHO it's odd that we even try to send lose focus
events to disposing windows. So maybe it would make sense
to replace the "! pOldFocusWindow->IsDisposed()" check
inside Window::ImplGrabFocus with "isDisposed()" which
comes from VclReferenceBase, and set much earlier?)
Change-Id: Iddaf7e05d6cb56c28a34884876770753fcf7179e
Reviewed-on: https://gerrit.libreoffice.org/48246
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Maxim Monastirsky <momonasmon@gmail.com>
(cherry picked from commit 2a2b37202a735b34da914c03b2f6e1495f833b51)
Reviewed-on: https://gerrit.libreoffice.org/48251
Reviewed-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/control/ctrl.cxx | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx index b62c90563d46..5f3d23901b0a 100644 --- a/vcl/source/control/ctrl.cxx +++ b/vcl/source/control/ctrl.cxx @@ -328,7 +328,8 @@ void Control::SetLayoutDataParent( const Control* pParent ) const void Control::ImplClearLayoutData() const { - mpControlData->mpLayoutData.reset(); + if (mpControlData) + mpControlData->mpLayoutData.reset(); } void Control::ImplDrawFrame( OutputDevice* pDev, tools::Rectangle& rRect ) |