rpcrt4: Complex types should be dereferenced an extra time in the old format stubless code.

This commit is contained in:
Robert Shearman 2006-08-09 18:16:21 +01:00 committed by Alexandre Julliard
parent 64828b7520
commit e26bcb7fb2
1 changed files with 6 additions and 6 deletions

View File

@ -898,17 +898,17 @@ LONG_PTR WINAPIV NdrClientCall2(PMIDL_STUB_DESC pStubDesc, PFORMAT_STRING pForma
case PROXY_CALCSIZE: case PROXY_CALCSIZE:
if (pParam->param_direction == RPC_FC_IN_PARAM || if (pParam->param_direction == RPC_FC_IN_PARAM ||
pParam->param_direction & RPC_FC_IN_OUT_PARAM) pParam->param_direction & RPC_FC_IN_OUT_PARAM)
call_buffer_sizer(&stubMsg, pArg, pTypeFormat); call_buffer_sizer(&stubMsg, *(unsigned char **)pArg, pTypeFormat);
break; break;
case PROXY_MARSHAL: case PROXY_MARSHAL:
if (pParam->param_direction == RPC_FC_IN_PARAM || if (pParam->param_direction == RPC_FC_IN_PARAM ||
pParam->param_direction & RPC_FC_IN_OUT_PARAM) pParam->param_direction & RPC_FC_IN_OUT_PARAM)
call_marshaller(&stubMsg, pArg, pTypeFormat); call_marshaller(&stubMsg, *(unsigned char **)pArg, pTypeFormat);
break; break;
case PROXY_UNMARSHAL: case PROXY_UNMARSHAL:
if (pParam->param_direction == RPC_FC_IN_OUT_PARAM || if (pParam->param_direction == RPC_FC_IN_OUT_PARAM ||
pParam->param_direction == RPC_FC_OUT_PARAM) pParam->param_direction == RPC_FC_OUT_PARAM)
call_unmarshaller(&stubMsg, &pArg, pTypeFormat, 0); call_unmarshaller(&stubMsg, (unsigned char **)pArg, pTypeFormat, 0);
else if (pParam->param_direction == RPC_FC_RETURN_PARAM) else if (pParam->param_direction == RPC_FC_RETURN_PARAM)
call_unmarshaller(&stubMsg, (unsigned char **)&RetVal, pTypeFormat, 0); call_unmarshaller(&stubMsg, (unsigned char **)&RetVal, pTypeFormat, 0);
break; break;
@ -1483,18 +1483,18 @@ long WINAPI NdrStubCall2(
if (pParam->param_direction == RPC_FC_OUT_PARAM || if (pParam->param_direction == RPC_FC_OUT_PARAM ||
pParam->param_direction == RPC_FC_IN_OUT_PARAM || pParam->param_direction == RPC_FC_IN_OUT_PARAM ||
pParam->param_direction == RPC_FC_RETURN_PARAM) pParam->param_direction == RPC_FC_RETURN_PARAM)
call_marshaller(&stubMsg, pArg, pTypeFormat); call_marshaller(&stubMsg, *(unsigned char **)pArg, pTypeFormat);
break; break;
case STUBLESS_UNMARSHAL: case STUBLESS_UNMARSHAL:
if (pParam->param_direction == RPC_FC_IN_OUT_PARAM || if (pParam->param_direction == RPC_FC_IN_OUT_PARAM ||
pParam->param_direction == RPC_FC_IN_PARAM) pParam->param_direction == RPC_FC_IN_PARAM)
call_unmarshaller(&stubMsg, &pArg, pTypeFormat, 0); call_unmarshaller(&stubMsg, (unsigned char **)pArg, pTypeFormat, 0);
break; break;
case STUBLESS_CALCSIZE: case STUBLESS_CALCSIZE:
if (pParam->param_direction == RPC_FC_OUT_PARAM || if (pParam->param_direction == RPC_FC_OUT_PARAM ||
pParam->param_direction == RPC_FC_IN_OUT_PARAM || pParam->param_direction == RPC_FC_IN_OUT_PARAM ||
pParam->param_direction == RPC_FC_RETURN_PARAM) pParam->param_direction == RPC_FC_RETURN_PARAM)
call_buffer_sizer(&stubMsg, pArg, pTypeFormat); call_buffer_sizer(&stubMsg, *(unsigned char **)pArg, pTypeFormat);
break; break;
default: default:
RpcRaiseException(RPC_S_INTERNAL_ERROR); RpcRaiseException(RPC_S_INTERNAL_ERROR);