Module: wine Branch: master Commit: 5eb0971be89f843e3523eb77ef084e912133716f URL: http://source.winehq.org/git/wine.git/?a=commit;h=5eb0971be89f843e3523eb77ef...
Author: Hans Leidekker hans@codeweavers.com Date: Tue Oct 25 13:03:22 2016 +0200
webservices: Explicitly pass the offset to read_type_struct_field.
Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/webservices/reader.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c index 169a0e1..9994798 100644 --- a/dlls/webservices/reader.c +++ b/dlls/webservices/reader.c @@ -3921,7 +3921,7 @@ static HRESULT read_type_text( struct reader *reader, const WS_FIELD_DESCRIPTION }
static HRESULT read_type_struct_field( struct reader *reader, const WS_FIELD_DESCRIPTION *desc, - WS_HEAP *heap, char *buf ) + WS_HEAP *heap, char *buf, ULONG offset ) { char *ptr; WS_READ_OPTION option; @@ -3941,7 +3941,7 @@ static HRESULT read_type_struct_field( struct reader *reader, const WS_FIELD_DES else size = sizeof(void *);
- ptr = buf + desc->offset; + ptr = buf + offset; switch (desc->mapping) { case WS_TYPE_ATTRIBUTE_FIELD_MAPPING: @@ -4005,7 +4005,7 @@ static HRESULT read_type_struct( struct reader *reader, WS_TYPE_MAPPING mapping, const WS_STRUCT_DESCRIPTION *desc, WS_READ_OPTION option, WS_HEAP *heap, void *ret, ULONG size ) { - ULONG i; + ULONG i, offset; HRESULT hr; char *buf;
@@ -4038,7 +4038,8 @@ static HRESULT read_type_struct( struct reader *reader, WS_TYPE_MAPPING mapping,
for (i = 0; i < desc->fieldCount; i++) { - if ((hr = read_type_struct_field( reader, desc->fields[i], heap, buf )) != S_OK) + offset = desc->fields[i]->offset; + if ((hr = read_type_struct_field( reader, desc->fields[i], heap, buf, offset )) != S_OK) break; }