diff options
author | Andre Pang <athp@users.sourceforge.net> | 2004-06-22 16:06:38 +0000 |
---|---|---|
committer | Andre Pang <athp@users.sourceforge.net> | 2004-06-22 16:06:38 +0000 |
commit | 8cb829cded07955ade2334f56c260da59b49c1a3 (patch) | |
tree | 13635faabac7adaa369dbe00bc704ece1c9306b6 /src | |
parent | 21617b7377fd55c2cc2f9c9966bb7b9108018772 (diff) | |
download | xine-lib-8cb829cded07955ade2334f56c260da59b49c1a3.tar.gz xine-lib-8cb829cded07955ade2334f56c260da59b49c1a3.tar.bz2 |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/video_out/macosx/video_window.m | 14 |
1 files changed, 13 insertions, 1 deletions
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 |