diff options
author | Jan Holesovsky <kendy@suse.cz> | 2013-01-17 10:40:06 +0100 |
---|---|---|
committer | Noel Power <noel.power@suse.com> | 2013-01-17 16:53:10 +0000 |
commit | 718802ca9c5fc01c34e1e4f4ee57ffae0ea30b7b (patch) | |
tree | e3f3b673da8ec94151bb5c5c763664a8799a2322 | |
parent | b951f2f22940356db382704cc513b2b6d42b26d2 (diff) |
Personas: Fix one more potential crash.
Change-Id: Ib7aca26c34aa8484e8c71873805ca8e8812526a7
Reviewed-on: https://gerrit.libreoffice.org/1739
Reviewed-by: Noel Power <noel.power@suse.com>
Tested-by: Noel Power <noel.power@suse.com>
-rw-r--r-- | vcl/source/control/ctrl.cxx | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/vcl/source/control/ctrl.cxx b/vcl/source/control/ctrl.cxx index e89e5c952587..bfa45d4061d5 100644 --- a/vcl/source/control/ctrl.cxx +++ b/vcl/source/control/ctrl.cxx @@ -444,16 +444,17 @@ void Control::DataChanged( const DataChangedEvent& rDCEvt) (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_STYLE) ) { - AllSettings aSettings = GetSettings(); - StyleSettings aStyleSettings = aSettings.GetStyleSettings(); - sal_uLong nOldOptions = rDCEvt.GetOldSettings()->GetStyleSettings().GetOptions(); - sal_uLong nNewOptions = aStyleSettings.GetOptions(); + const AllSettings* pOldSettings = rDCEvt.GetOldSettings(); - if ( !(nNewOptions & STYLE_OPTION_MONO) && ( nOldOptions & STYLE_OPTION_MONO ) ) + AllSettings aSettings = GetSettings(); + StyleSettings aStyleSettings = aSettings.GetStyleSettings(); + sal_uLong nNewOptions = aStyleSettings.GetOptions(); + + if ( pOldSettings && !(nNewOptions & STYLE_OPTION_MONO) && ( pOldSettings->GetStyleSettings().GetOptions() & STYLE_OPTION_MONO ) ) { nNewOptions |= STYLE_OPTION_MONO; aStyleSettings.SetOptions( nNewOptions ); - aStyleSettings.SetMonoColor( rDCEvt.GetOldSettings()->GetStyleSettings().GetMonoColor() ); + aStyleSettings.SetMonoColor( pOldSettings->GetStyleSettings().GetMonoColor() ); aSettings.SetStyleSettings( aStyleSettings ); SetSettings( aSettings ); } |