diff options
author | Xavier Claessens <xavier.claessens@collabora.com> | 2015-05-20 17:06:42 -0400 |
---|---|---|
committer | Nicolas Dufresne <nicolas.dufresne@collabora.com> | 2015-05-21 14:33:53 -0400 |
commit | e1a827822e0d5f609595fadda42e8e286ae09bd6 (patch) | |
tree | 0cf790de826ac6507a7c2a8fc545a4cf1de6e308 /gst-libs | |
parent | 0acc18c60f6f962cc6553f6047fdb64891bab544 (diff) | |
download | gstreamer-plugins-bad-e1a827822e0d5f609595fadda42e8e286ae09bd6.tar.gz |
gl: win32: Fix leaked GstGLContext
https://bugzilla.gnome.org/show_bug.cgi?id=749601
Diffstat (limited to 'gst-libs')
-rw-r--r-- | gst-libs/gst/gl/win32/gstglwindow_win32.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gst-libs/gst/gl/win32/gstglwindow_win32.c b/gst-libs/gst/gl/win32/gstglwindow_win32.c index 5aa6fd2a7..bc5839460 100644 --- a/gst-libs/gst/gl/win32/gstglwindow_win32.c +++ b/gst-libs/gst/gl/win32/gstglwindow_win32.c @@ -458,6 +458,8 @@ LRESULT CALLBACK window_proc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { GstGLWindowWin32 *window_win32; + LRESULT ret = 0; + if (uMsg == WM_CREATE) { window_win32 = GST_GL_WINDOW_WIN32 (((LPCREATESTRUCT) lParam)->lpCreateParams); @@ -471,7 +473,6 @@ window_proc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) ReleaseDC (hWnd, window_win32->device); SetProp (hWnd, "gl_window", window_win32); - return 0; } else if (GetProp (hWnd, "gl_window")) { GstGLWindow *window; GstGLContext *context; @@ -558,23 +559,26 @@ window_proc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) break; } case WM_ERASEBKGND: - return TRUE; + { + ret = TRUE; + break; + } default: { /* transmit messages to the parrent (ex: mouse/keyboard input) */ HWND parent_id = window_win32->parent_win_id; if (parent_id) PostMessage (parent_id, uMsg, wParam, lParam); - return DefWindowProc (hWnd, uMsg, wParam, lParam); + ret = DefWindowProc (hWnd, uMsg, wParam, lParam); } } gst_object_unref (context); - - return 0; } else { - return DefWindowProc (hWnd, uMsg, wParam, lParam); + ret = DefWindowProc (hWnd, uMsg, wParam, lParam); } + + return ret; } LRESULT FAR PASCAL |