summaryrefslogtreecommitdiff
path: root/gst-libs/gst
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2015-05-20 17:06:42 -0400
committerNicolas Dufresne <nicolas.dufresne@collabora.com>2015-05-21 14:33:53 -0400
commite1a827822e0d5f609595fadda42e8e286ae09bd6 (patch)
tree0cf790de826ac6507a7c2a8fc545a4cf1de6e308 /gst-libs/gst
parent0acc18c60f6f962cc6553f6047fdb64891bab544 (diff)
downloadgstreamer-plugins-bad-e1a827822e0d5f609595fadda42e8e286ae09bd6.tar.gz
gl: win32: Fix leaked GstGLContext
https://bugzilla.gnome.org/show_bug.cgi?id=749601
Diffstat (limited to 'gst-libs/gst')
-rw-r--r--gst-libs/gst/gl/win32/gstglwindow_win32.c16
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