ole32: Exception handling shouldn't be needed around the call to IRpcStubBuffer_Invoke.
It should have its own exception handler to catch any exceptions that are raised.
This commit is contained in:
parent
40986cd729
commit
af6d97ad36
@ -43,9 +43,7 @@
|
|||||||
#include "winerror.h"
|
#include "winerror.h"
|
||||||
#include "winreg.h"
|
#include "winreg.h"
|
||||||
#include "wtypes.h"
|
#include "wtypes.h"
|
||||||
#include "excpt.h"
|
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
#include "wine/exception.h"
|
|
||||||
|
|
||||||
#include "compobj_private.h"
|
#include "compobj_private.h"
|
||||||
|
|
||||||
@ -114,13 +112,6 @@ struct dispatch_params
|
|||||||
HRESULT hr; /* hresult (out) */
|
HRESULT hr; /* hresult (out) */
|
||||||
};
|
};
|
||||||
|
|
||||||
static WINE_EXCEPTION_FILTER(ole_filter)
|
|
||||||
{
|
|
||||||
if (GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION)
|
|
||||||
return EXCEPTION_CONTINUE_SEARCH;
|
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
|
||||||
}
|
|
||||||
|
|
||||||
static HRESULT WINAPI RpcChannelBuffer_QueryInterface(LPRPCCHANNELBUFFER iface, REFIID riid, LPVOID *ppv)
|
static HRESULT WINAPI RpcChannelBuffer_QueryInterface(LPRPCCHANNELBUFFER iface, REFIID riid, LPVOID *ppv)
|
||||||
{
|
{
|
||||||
*ppv = NULL;
|
*ppv = NULL;
|
||||||
@ -510,15 +501,8 @@ HRESULT RPC_CreateServerChannel(IRpcChannelBuffer **chan)
|
|||||||
|
|
||||||
void RPC_ExecuteCall(struct dispatch_params *params)
|
void RPC_ExecuteCall(struct dispatch_params *params)
|
||||||
{
|
{
|
||||||
__TRY
|
params->hr = IRpcStubBuffer_Invoke(params->stub, params->msg, params->chan);
|
||||||
{
|
|
||||||
params->hr = IRpcStubBuffer_Invoke(params->stub, params->msg, params->chan);
|
|
||||||
}
|
|
||||||
__EXCEPT(ole_filter)
|
|
||||||
{
|
|
||||||
params->hr = GetExceptionCode();
|
|
||||||
}
|
|
||||||
__ENDTRY
|
|
||||||
IRpcStubBuffer_Release(params->stub);
|
IRpcStubBuffer_Release(params->stub);
|
||||||
IRpcChannelBuffer_Release(params->chan);
|
IRpcChannelBuffer_Release(params->chan);
|
||||||
if (params->handle) SetEvent(params->handle);
|
if (params->handle) SetEvent(params->handle);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user