Module: wine Branch: master Commit: c1a9dc8ad22a5ca8b977b111850ffc7a914315fb URL: http://source.winehq.org/git/wine.git/?a=commit;h=c1a9dc8ad22a5ca8b977b11185...
Author: Alexandre Julliard julliard@winehq.org Date: Mon Apr 5 21:59:30 2010 +0200
rpcrt4: Always skip the conformance format, even if conformance is not present in the buffer.
Add an identical SkipVariance function to make the code clearer.
---
dlls/rpcrt4/ndr_marshall.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/dlls/rpcrt4/ndr_marshall.c b/dlls/rpcrt4/ndr_marshall.c index 3b5a340..80020ee 100644 --- a/dlls/rpcrt4/ndr_marshall.c +++ b/dlls/rpcrt4/ndr_marshall.c @@ -644,14 +644,16 @@ finish_conf: static inline PFORMAT_STRING SkipConformance(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat) { - if (IsConformanceOrVariancePresent(pFormat)) - { if (pStubMsg->fHasNewCorrDesc) pFormat += 6; else pFormat += 4; - } - return pFormat; + return pFormat; +} + +static inline PFORMAT_STRING SkipVariance(PMIDL_STUB_MESSAGE pStubMsg, PFORMAT_STRING pFormat) +{ + return SkipConformance( pStubMsg, pFormat ); }
/* multiply two numbers together, raising an RPC_S_INVALID_BOUND exception if @@ -1842,7 +1844,7 @@ static inline void array_buffer_size( alignment = pFormat[1] + 1;
pFormat = SkipConformance(pStubMsg, pFormat + 4); - pFormat = SkipConformance(pStubMsg, pFormat); + pFormat = SkipVariance(pStubMsg, pFormat);
SizeVariance(pStubMsg);
@@ -1942,10 +1944,8 @@ static inline void array_write_variance_and_marshall( esize = *(const WORD*)(pFormat+2); alignment = pFormat[1] + 1;
- /* conformance */ pFormat = SkipConformance(pStubMsg, pFormat + 4); - /* variance */ - pFormat = SkipConformance(pStubMsg, pFormat); + pFormat = SkipVariance(pStubMsg, pFormat);
WriteVariance(pStubMsg);