summaryrefslogtreecommitdiff
path: root/svx
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2017-02-28 02:25:30 +0100
committerKatarina Behrens <Katarina.Behrens@cib.de>2017-02-28 08:55:46 +0000
commit52b89c4764b68cd560000cec68678c8234a8a3d5 (patch)
treee35562bb4f64daf33feac9d7f02787d823b38e2d /svx
parentae225329435cb49e61e3c9fc76129aa4e334598a (diff)
mpMediaItem might be nullptr
This fixes at least two crashes reported through the crashreporter: http://crashreport.libreoffice.org/stats/signature/avmedia::MediaItem::getTime() http://crashreport.libreoffice.org/stats/signature/avmedia::MediaItem::getDuration() Change-Id: I92eeca229fa46921317586d0317e9f00309e793b Reviewed-on: https://gerrit.libreoffice.org/34710 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit b5987a4148a10e27fe44ecf5d03e697692e07ca9) Reviewed-on: https://gerrit.libreoffice.org/34712 Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Diffstat (limited to 'svx')
-rw-r--r--svx/source/sidebar/media/MediaPlaybackPanel.cxx18
1 files changed, 12 insertions, 6 deletions
diff --git a/svx/source/sidebar/media/MediaPlaybackPanel.cxx b/svx/source/sidebar/media/MediaPlaybackPanel.cxx
index 46f7645c7a3e..f1e744d0711c 100644
--- a/svx/source/sidebar/media/MediaPlaybackPanel.cxx
+++ b/svx/source/sidebar/media/MediaPlaybackPanel.cxx
@@ -118,10 +118,13 @@ void MediaPlaybackPanel::UpdateToolBoxes(MediaItem aMediaItem)
void MediaPlaybackPanel::Update()
{
- UpdateToolBoxes( *mpMediaItem );
- UpdateTimeSlider( *mpMediaItem );
- UpdateVolumeSlider( *mpMediaItem );
- UpdateTimeField( *mpMediaItem, mpMediaItem->getTime() );
+ if (mpMediaItem)
+ {
+ UpdateToolBoxes( *mpMediaItem );
+ UpdateTimeSlider( *mpMediaItem );
+ UpdateVolumeSlider( *mpMediaItem );
+ UpdateTimeField( *mpMediaItem, mpMediaItem->getTime() );
+ }
}
IMPL_LINK_NOARG( MediaPlaybackPanel, VolumeSlideHdl, Slider*, void)
@@ -135,7 +138,10 @@ IMPL_LINK_NOARG( MediaPlaybackPanel, SeekHdl, Slider*, void)
{
MediaItem aItem(SID_AVMEDIA_TOOLBOX);
aItem.setState( MediaState::Pause );
- aItem.setTime( mpTimeSlider->GetThumbPos() * mpMediaItem->getDuration() / AVMEDIA_TIME_RANGE);
+ double nTime = 0;
+ if (mpMediaItem)
+ nTime = mpTimeSlider->GetThumbPos() * mpMediaItem->getDuration() / AVMEDIA_TIME_RANGE;
+ aItem.setTime(nTime);
mpBindings->GetDispatcher()->ExecuteList(SID_AVMEDIA_TOOLBOX, SfxCallMode::RECORD, { &aItem });
mpBindings->Invalidate(SID_AVMEDIA_TOOLBOX);
}
@@ -154,7 +160,7 @@ IMPL_LINK( MediaPlaybackPanel, PlayToolBoxSelectHdl, ToolBox*, pControl, void)
{
aItem.setState( MediaState::Play );
- if( mpMediaItem->getTime() == mpMediaItem->getDuration() )
+ if( !mpMediaItem || (mpMediaItem->getTime() == mpMediaItem->getDuration() ))
aItem.setTime( 0.0 );
else
aItem.setTime( mpMediaItem->getTime());