[OLE #93] Disconnect IRemUnknown proxy after the others (resend)

Mike Hearn mh at codeweavers.com
Sun Jun 5 12:17:16 CDT 2005


On Sun, 05 Jun 2005 11:32:14 -0500, Robert Shearman wrote:
> The IRemUnknown proxy shouldn't be disconnected at all. Can you try this 
> patch for me?

Yes, that works too. This patch is simpler and equivalent though?

ChangeLog:
Rob Shearman <rob at codeweavers.com>
Don't disconnect proxies flagged with SORFP_NOLIFETIMEMGMT. It makes no 
sense and only causes trouble for proxies that depend on these proxies 
being available.

Index: dlls/ole32/marshal.c
===================================================================
RCS file: /home/wine/wine/dlls/ole32/marshal.c,v
retrieving revision 1.75
diff -u -p -d -r1.75 marshal.c
--- dlls/ole32/marshal.c        23 May 2005 10:27:23 -0000      1.75
+++ dlls/ole32/marshal.c        5 Jun 2005 17:14:48 -0000
@@ -601,6 +601,12 @@ static void proxy_manager_disconnect(str
     TRACE("oxid = %s, oid = %s\n", wine_dbgstr_longlong(This->oxid),
         wine_dbgstr_longlong(This->oid));

+    /* SORFP_NOLIFTIMEMGMT proxies (for IRemUnknown) shouldn't be
+     * disconnected - it won't do anything anyway, except cause
+     * problems for other objects that depend on this proxy always
+     * working */
+    if (This->sorflags & SORFP_NOLIFETIMEMGMT) return;
+
     EnterCriticalSection(&This->cs);

     LIST_FOR_EACH(cursor, &This->interfaces)





More information about the wine-patches mailing list