Rob Shearman : urlmon:
Fix a reference count leak that would keep the module alive when it
shouldn 't.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Apr 2 06:23:02 CDT 2007
Module: wine
Branch: master
Commit: fd8868bac453bf4f25aa40ceca66ce1e3d36f509
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fd8868bac453bf4f25aa40ceca66ce1e3d36f509
Author: Rob Shearman <rob at codeweavers.com>
Date: Sun Apr 1 13:43:39 2007 +0100
urlmon: Fix a reference count leak that would keep the module alive when it shouldn't.
---
dlls/urlmon/urlmon_main.c | 8 ++++++++
1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/dlls/urlmon/urlmon_main.c b/dlls/urlmon/urlmon_main.c
index 3d29feb..0f12011 100644
--- a/dlls/urlmon/urlmon_main.c
+++ b/dlls/urlmon/urlmon_main.c
@@ -220,11 +220,19 @@ static void init_session(BOOL init)
for(i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++) {
if(object_creation[i].protocol) {
if(init)
+ {
IInternetSession_RegisterNameSpace(session, object_creation[i].cf,
object_creation[i].clsid, object_creation[i].protocol, 0, NULL, 0);
+ /* make sure that the AddRef on the class factory doesn't keep us loaded */
+ URLMON_UnlockModule();
+ }
else
+ {
+ /* make sure that the Release on the class factory doesn't unload us */
+ URLMON_LockModule();
IInternetSession_UnregisterNameSpace(session, object_creation[i].cf,
object_creation[i].protocol);
+ }
}
}
More information about the wine-cvs
mailing list