[PATCH 7/7] winegstreamer: Prevent gstreamer from being unloaded

Maarten Lankhorst m.b.lankhorst at gmail.com
Mon Nov 29 03:44:19 CST 2010


---
 dlls/winegstreamer/main.c |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/dlls/winegstreamer/main.c b/dlls/winegstreamer/main.c
index ac9e97b..941f433 100644
--- a/dlls/winegstreamer/main.c
+++ b/dlls/winegstreamer/main.c
@@ -261,6 +261,15 @@ DWORD Gstreamer_init(void) {
             FIXME("Failed to initialize gstreamer: %s\n", err->message);
             g_error_free(err);
         }
+        if (inited) {
+            HINSTANCE newhandle;
+            /* Unloading glib is a bad idea.. it installs atexit handlers,
+             * so never unload the dll after loading */
+            GetModuleHandleExW(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS,
+                               (LPCWSTR)hInst, &newhandle);
+            if (!newhandle)
+                ERR("Could not pin module %p\n", hInst);
+        }
     }
     return inited;
 }
-- 
1.7.1




More information about the wine-patches mailing list