ole32: If an object exposes IExternalConnection then don't take down the stub manager if we have remaining weak refs in a call that would otherwise ignore them.
This commit is contained in:
parent
1864db2faa
commit
5077fc895f
|
@ -440,7 +440,8 @@ ULONG stub_manager_ext_release(struct stub_manager *m, ULONG refs, BOOL tablewea
|
|||
IExternalConnection_ReleaseConnection(m->extern_conn, EXTCONN_STRONG, 0, last_unlock_releases);
|
||||
|
||||
if (rc == 0)
|
||||
stub_manager_int_release(m);
|
||||
if (!(m->extern_conn && last_unlock_releases && m->weakrefs))
|
||||
stub_manager_int_release(m);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
|
|
@ -1125,7 +1125,6 @@ static void test_tableweak_marshal_and_unmarshal_twice(void)
|
|||
* behaviour is altered; the remaining weak ref prevents stub shutdown. */
|
||||
if (with_external_conn)
|
||||
{
|
||||
todo_wine
|
||||
ok_more_than_one_lock();
|
||||
IStream_Seek(pStream, ullZero, STREAM_SEEK_SET, NULL);
|
||||
release_host_object(tid, 0);
|
||||
|
@ -1347,7 +1346,6 @@ static void test_tableweak_and_normal_marshal_and_unmarshal(void)
|
|||
* behaviour is altered; the remaining weak ref prevents stub shutdown. */
|
||||
if (with_external_conn)
|
||||
{
|
||||
todo_wine
|
||||
ok_more_than_one_lock();
|
||||
IStream_Seek(data.pStream1, ullZero, STREAM_SEEK_SET, NULL);
|
||||
release_host_object(tid, 1);
|
||||
|
@ -1397,7 +1395,6 @@ static void test_tableweak_and_normal_marshal_and_releasedata(void)
|
|||
|
||||
if (with_external_conn)
|
||||
{
|
||||
todo_wine
|
||||
ok_more_than_one_lock();
|
||||
IStream_Seek(data.pStream1, ullZero, STREAM_SEEK_SET, NULL);
|
||||
release_host_object(tid, 1);
|
||||
|
|
Loading…
Reference in New Issue