Commit ca608933 authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

Make proxy shutdown test succeed by releasing the channel on

disconnect.
parent 77502e7e
......@@ -355,6 +355,8 @@ static void proxy_manager_disconnect(struct proxy_manager * This)
{
struct list * cursor;
TRACE("oid = %s\n", wine_dbgstr_longlong(This->oid));
EnterCriticalSection(&This->cs);
LIST_FOR_EACH(cursor, &This->interfaces)
......@@ -366,6 +368,11 @@ static void proxy_manager_disconnect(struct proxy_manager * This)
/* apartment is being destroyed so don't keep a pointer around to it */
This->parent = NULL;
/* FIXME: will this still be necessary if/when we use a real RPC
* channel? */
IRpcChannelBuffer_Release(This->chan);
This->chan = NULL;
LeaveCriticalSection(&This->cs);
}
......@@ -397,7 +404,7 @@ static void proxy_manager_destroy(struct proxy_manager * This)
ifproxy_destroy(ifproxy);
}
IRpcChannelBuffer_Release(This->chan);
if (This->chan) IRpcChannelBuffer_Release(This->chan);
DeleteCriticalSection(&This->cs);
......
......@@ -350,7 +350,7 @@ static void test_marshal_proxy_apartment_shutdown()
CoUninitialize();
todo_wine { ok_no_locks(); }
ok_no_locks();
IUnknown_Release(pProxy);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment