[vlc-commits] OSX GUI: prevent pseudo-random crashes on quit

Rafaël Carré git at videolan.org
Thu Feb 16 01:02:57 CET 2012


vlc/vlc-2.0 | branch: master | Rafaël Carré <funman at videolan.org> | Wed Feb 15 14:36:19 2012 -0500| [15476bf1a9f290e1f2337bb982c832b87d98e20e] | committer: Felix Paul Kühne

OSX GUI: prevent pseudo-random crashes on quit

The VLC interface object might not exist at that point
(cherry picked from commit a12214d2927d8d3ba177818356e2985d8156b2b5)

Signed-off-by: Felix Paul Kühne <fkuehne at videolan.org>

> http://git.videolan.org/gitweb.cgi/vlc/vlc-2.0.git/?a=commit;h=15476bf1a9f290e1f2337bb982c832b87d98e20e
---

 modules/gui/macosx/CoreInteraction.m |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/modules/gui/macosx/CoreInteraction.m b/modules/gui/macosx/CoreInteraction.m
index d120ddc..3a7f1be 100644
--- a/modules/gui/macosx/CoreInteraction.m
+++ b/modules/gui/macosx/CoreInteraction.m
@@ -119,6 +119,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)toggleRecord
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     input_thread_t * p_input;
     p_input = pl_CurrentInput( p_intf );
@@ -145,6 +147,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
     float f_rate;
 
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return 0;
 
     input_thread_t * p_input;
     p_input = pl_CurrentInput( p_intf );
@@ -184,6 +188,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (BOOL)isPlaying
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return NO;
 
     input_thread_t * p_input = pl_CurrentInput( p_intf );
 
@@ -223,6 +229,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (int)durationOfCurrentPlaylistItem
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return 0;
 
     input_thread_t * p_input = pl_CurrentInput( p_intf );
     int64_t i_duration = -1;
@@ -238,6 +246,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (NSURL*)URLOfCurrentPlaylistItem
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return nil;
 
     input_thread_t *p_input = pl_CurrentInput( p_intf );
     if (!p_input) return nil;
@@ -266,6 +276,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (NSString*)nameOfCurrentPlaylistItem
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return nil;
 
     input_thread_t *p_input = pl_CurrentInput( p_intf );
     if (!p_input) return nil;
@@ -360,6 +372,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)shuffle
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     vlc_value_t val;
     playlist_t * p_playlist = pl_Get( p_intf );
@@ -391,6 +405,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)repeatAll
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     playlist_t * p_playlist = pl_Get( p_intf );
 
@@ -410,6 +426,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)repeatOne
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     playlist_t * p_playlist = pl_Get( p_intf );
 
@@ -429,6 +447,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)repeatOff
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     playlist_t * p_playlist = pl_Get( p_intf );
 
@@ -448,6 +468,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)volumeUp
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     aout_VolumeUp( pl_Get( p_intf ), 1, NULL );
 }
@@ -455,6 +477,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)volumeDown
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     aout_VolumeDown( pl_Get( p_intf ), 1, NULL );
 }
@@ -462,6 +486,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)mute
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     aout_ToggleMute( pl_Get( p_intf ), NULL );
 }
@@ -469,6 +495,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (BOOL)isMuted
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return NO;
 
     BOOL b_is_muted = NO;
     b_is_muted = aout_IsMuted( VLC_OBJECT(pl_Get( p_intf )) );
@@ -479,6 +507,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (int)volume
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return 0;
 
     audio_volume_t i_volume = aout_VolumeGet( pl_Get( p_intf ) );
 
@@ -488,6 +518,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)setVolume: (int)i_value
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     aout_VolumeSet( pl_Get( p_intf ), i_value );
 }
@@ -508,6 +540,8 @@ static VLCCoreInteraction *_o_sharedInstance = nil;
 - (void)toggleFullscreen
 {
     intf_thread_t *p_intf = VLCIntf;
+    if (!p_intf)
+        return;
 
     var_ToggleBool( pl_Get( p_intf ), "fullscreen" );
 }



More information about the vlc-commits mailing list