[PATCH 1/2] webservices: Implement WS_ANY_ATTRIBUTES_FIELD_MAPPING for the writer.

Hans Leidekker hans at codeweavers.com
Fri Mar 20 10:03:52 CDT 2020


Signed-off-by: Hans Leidekker <hans at codeweavers.com>
---
 dlls/webservices/reader.c       |  3 +++
 dlls/webservices/tests/writer.c | 11 +++++++++--
 dlls/webservices/writer.c       |  3 +++
 3 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/dlls/webservices/reader.c b/dlls/webservices/reader.c
index bf29990923..f1ce93b7d7 100644
--- a/dlls/webservices/reader.c
+++ b/dlls/webservices/reader.c
@@ -6085,6 +6085,9 @@ ULONG get_type_size( WS_TYPE type, const void *desc )
         const WS_UNION_DESCRIPTION *desc_union = desc;
         return desc_union->size;
     }
+    case WS_ANY_ATTRIBUTES_TYPE:
+        return 0;
+
     default:
         ERR( "unhandled type %u\n", type );
         return 0;
diff --git a/dlls/webservices/tests/writer.c b/dlls/webservices/tests/writer.c
index d66c2e4319..e996e4972b 100644
--- a/dlls/webservices/tests/writer.c
+++ b/dlls/webservices/tests/writer.c
@@ -1586,10 +1586,11 @@ static void test_complex_struct_type(void)
     WS_XML_BUFFER *buffer;
     WS_XML_WRITER *writer;
     WS_STRUCT_DESCRIPTION s, s2;
-    WS_FIELD_DESCRIPTION f, f2, *fields[1], *fields2[1];
+    WS_FIELD_DESCRIPTION f, f2, f3, *fields[1], *fields2[2];
     struct services
     {
         const WCHAR *generationtime;
+        BYTE         dummy[12];
     };
     struct officeconfig
     {
@@ -1619,11 +1620,17 @@ static void test_complex_struct_type(void)
     f2.options         = WS_FIELD_OPTIONAL;
     fields2[0] = &f2;
 
+    memset( &f3, 0, sizeof(f3) );
+    f3.mapping  = WS_ANY_ATTRIBUTES_FIELD_MAPPING;
+    f3.type     = WS_ANY_ATTRIBUTES_TYPE;
+    f3.offset   = FIELD_OFFSET(struct services, dummy);
+    fields2[1] = &f3;
+
     memset( &s2, 0, sizeof(s2) );
     s2.size          = sizeof(*test->services);
     s2.alignment     = 4;
     s2.fields        = fields2;
-    s2.fieldCount    = 1;
+    s2.fieldCount    = 2;
     s2.typeLocalName = &str_services;
     s2.typeNs        = &ns;
 
diff --git a/dlls/webservices/writer.c b/dlls/webservices/writer.c
index 53489786cd..989ea0986d 100644
--- a/dlls/webservices/writer.c
+++ b/dlls/webservices/writer.c
@@ -3831,6 +3831,9 @@ static HRESULT write_type_field( struct writer *writer, const WS_FIELD_DESCRIPTI
         }
         break;
 
+    case WS_ANY_ATTRIBUTES_FIELD_MAPPING:
+        return S_OK;
+
     default:
         FIXME( "field mapping %u not supported\n", desc->mapping );
         return E_NOTIMPL;
-- 
2.20.1




More information about the wine-devel mailing list