From: Ed Page Date: Sun, 16 May 2010 04:35:56 +0000 (-0500) Subject: Fixing segfaults due to accessing seekbar after it is destroyed (plus an assertion) X-Git-Url: http://git.maemo.org/git/?p=watersofshiloah;a=commitdiff_plain;h=b5c8d3f03f31351ff11bf8a60c90735070def2a2 Fixing segfaults due to accessing seekbar after it is destroyed (plus an assertion) --- diff --git a/src/mormonchannel_gtk.py b/src/mormonchannel_gtk.py index 7c570cd..2445f95 100755 --- a/src/mormonchannel_gtk.py +++ b/src/mormonchannel_gtk.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- """ -@bug Fix segfault on closing of window while playing @todo Need to confirm id's are persistent (not just for todos but broken behavior on transition) @todo Track recent @todo Persisted Pause diff --git a/src/windows/conferences.py b/src/windows/conferences.py index 7e1c599..096959d 100644 --- a/src/windows/conferences.py +++ b/src/windows/conferences.py @@ -288,8 +288,10 @@ class ConferenceTalkWindow(windows._base.BasicWindow): @misc_utils.log_exception(_moduleLogger) def _on_player_update_seek(self): + if self._isDestroyed: + return False self._seekbar.set_value(self._player.percent_elapsed * 100) - return True if not self._isDestroyed else False + return True @misc_utils.log_exception(_moduleLogger) def _on_player_state_change(self, player, newState): diff --git a/src/windows/magazines.py b/src/windows/magazines.py index 11c96d5..fa089d6 100644 --- a/src/windows/magazines.py +++ b/src/windows/magazines.py @@ -341,8 +341,10 @@ class MagazineArticleWindow(windows._base.BasicWindow): @misc_utils.log_exception(_moduleLogger) def _on_player_update_seek(self): + if self._isDestroyed: + return False self._seekbar.set_value(self._player.percent_elapsed * 100) - return True if not self._isDestroyed else False + return True @misc_utils.log_exception(_moduleLogger) def _on_player_state_change(self, player, newState): @@ -353,8 +355,9 @@ class MagazineArticleWindow(windows._base.BasicWindow): self._updateSeek.start(seconds=1) else: self._seekbar.hide() - self._updateSeek.cancel() - self._updateSeek = None + if self._updateSeek is not None: + self._updateSeek.cancel() + self._updateSeek = None if not self._presenterNavigation.is_active(): self._set_context(newState) diff --git a/src/windows/scriptures.py b/src/windows/scriptures.py index 5847ad8..587e4e8 100644 --- a/src/windows/scriptures.py +++ b/src/windows/scriptures.py @@ -282,8 +282,10 @@ class ScriptureChapterWindow(windows._base.BasicWindow): @misc_utils.log_exception(_moduleLogger) def _on_player_update_seek(self): + if self._isDestroyed: + return False self._seekbar.set_value(self._player.percent_elapsed * 100) - return True if not self._isDestroyed else False + return True @misc_utils.log_exception(_moduleLogger) def _on_player_state_change(self, player, newState):