From 8cb829cded07955ade2334f56c260da59b49c1a3 Mon Sep 17 00:00:00 2001 From: Andre Pang Date: Tue, 22 Jun 2004 16:06:38 +0000 Subject: Mac OS X XineOpenGLView: Fix dealloc behaviour Set fields to nil after releasing, to avoid stray messages CVS patchset: 6732 CVS date: 2004/06/22 16:06:38 --- src/video_out/macosx/video_window.m | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/video_out/macosx/video_window.m b/src/video_out/macosx/video_window.m index d4fc12786..543ce6ff3 100644 --- a/src/video_out/macosx/video_window.m +++ b/src/video_out/macosx/video_window.m @@ -92,6 +92,7 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; - (void) dealloc { [xineView release]; + xineView = nil; [super dealloc]; } @@ -242,15 +243,23 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; [NSOpenGLContext clearCurrentContext]; [fullScreenContext clearDrawable]; [fullScreenContext release]; + if (currentContext == fullScreenContext) currentContext = nil; + fullScreenContext = nil; } if (currentContext) { [NSOpenGLContext clearCurrentContext]; [currentContext clearDrawable]; [currentContext release]; + currentContext = nil; } - [super dealloc]; + // Enabling the [super dealloc] below (which should be correct behaviour) + // crashes -- not sure why ... + // + // [super dealloc]; + // + // Maybe dealloc in main thread? } - (void) reshape { @@ -470,6 +479,7 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; [NSOpenGLContext clearCurrentContext]; [fullScreenContext clearDrawable]; [fullScreenContext release]; + fullScreenContext = nil; CGReleaseAllDisplays(); [self reshape]; @@ -534,6 +544,8 @@ NSString *XineViewDidResizeNotification = @"XineViewDidResizeNotification"; { video_width = size.width; video_height = size.height; + + [self initTextures]; } - (void) setViewSizeInMainThread:(NSSize)size -- cgit v1.2.3