vlc | branch: master | Felix Paul Kühne <[email protected]> | Mon Jan 21 22:08:39 2013 +0100| [0a86a76fec01fe495ace7894c4ecb6be32b4fef7] | committer: Felix Paul Kühne
vout_macosx: protect vout_display_SendEvent calls to prevent potential crashes > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=0a86a76fec01fe495ace7894c4ecb6be32b4fef7 --- modules/video_output/macosx.m | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m index df71ba9..104479b 100644 --- a/modules/video_output/macosx.m +++ b/modules/video_output/macosx.m @@ -701,9 +701,13 @@ static void OpenglSwap (vlc_gl_t *gl) - (void)mouseDown:(NSEvent *)o_event { - if ([o_event type] == NSLeftMouseDown && !([o_event modifierFlags] & NSControlKeyMask)) { - if ([o_event clickCount] <= 1) - vout_display_SendEventMousePressed (vd, MOUSE_BUTTON_LEFT); + @synchronized (self) { + if (vd) { + if ([o_event type] == NSLeftMouseDown && !([o_event modifierFlags] & NSControlKeyMask)) { + if ([o_event clickCount] <= 1) + vout_display_SendEventMousePressed (vd, MOUSE_BUTTON_LEFT); + } + } } [super mouseDown:o_event]; @@ -711,22 +715,32 @@ static void OpenglSwap (vlc_gl_t *gl) - (void)otherMouseDown:(NSEvent *)o_event { - vout_display_SendEventMousePressed (vd, MOUSE_BUTTON_CENTER); + @synchronized (self) { + if (vd) + vout_display_SendEventMousePressed (vd, MOUSE_BUTTON_CENTER); + } [super otherMouseDown: o_event]; } - (void)mouseUp:(NSEvent *)o_event { - if ([o_event type] == NSLeftMouseUp) - vout_display_SendEventMouseReleased (vd, MOUSE_BUTTON_LEFT); + @synchronized (self) { + if (vd) { + if ([o_event type] == NSLeftMouseUp) + vout_display_SendEventMouseReleased (vd, MOUSE_BUTTON_LEFT); + } + } [super mouseUp: o_event]; } - (void)otherMouseUp:(NSEvent *)o_event { - vout_display_SendEventMouseReleased (vd, MOUSE_BUTTON_CENTER); + @synchronized (self) { + if (vd) + vout_display_SendEventMouseReleased (vd, MOUSE_BUTTON_CENTER); + } [super otherMouseUp: o_event]; } _______________________________________________ vlc-commits mailing list [email protected] http://mailman.videolan.org/listinfo/vlc-commits
