Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285 Signed-off-by: Zebediah Figura z.figura12@gmail.com --- tools/widl/typegen.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index e5fb20c55fb..8cc52d135f4 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -1065,8 +1065,12 @@ static unsigned char get_parameter_fc( const var_t *var, int is_return, unsigned case TGT_USER_TYPE: case TGT_RANGE: case TGT_ARRAY: - *flags |= IsSimpleRef | MustFree; - *typestring_offset = ref->typestring_offset; + *flags |= MustFree; + if (!type_array_is_decl_as_ptr(ref)) + { + *flags |= IsSimpleRef; + *typestring_offset = ref->typestring_offset; + } if (!is_in && is_out) server_size = type_memsize( ref ); break; case TGT_STRING:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285 Signed-off-by: Zebediah Figura z.figura12@gmail.com --- tools/widl/typegen.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 8cc52d135f4..7fd8e4755eb 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -2129,6 +2129,7 @@ static unsigned int write_nonsimple_pointer(FILE *file, const attr_list_t *attrs case TGT_POINTER: case TGT_CTXT_HANDLE: case TGT_CTXT_HANDLE_POINTER: + case TGT_ARRAY: flags |= FC_ALLOCED_ON_STACK; break; case TGT_IFACE_POINTER:
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52991
Your paranoid android.
=== debian9 (build log) ===
Makefile:493: recipe for target 'server_interp_c.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4/tests' failed Makefile:891: recipe for target 'ndr_types_p.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4' failed Task: The win32 build failed
=== debian9 (build log) ===
Makefile:487: recipe for target 'server_interp_c.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4/tests' failed Makefile:872: recipe for target 'ndr_types_p.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4' failed Task: The wow64 build failed
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- tools/widl/typegen.c | 4 ---- 1 file changed, 4 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 7fd8e4755eb..607b4e26b74 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -2948,15 +2948,11 @@ static unsigned int write_array_tfs(FILE *file, const attr_list_t *attrs, type_t unsigned int size; unsigned int start_offset; unsigned char fc; - int pointer_type = get_attrv(attrs, ATTR_POINTERTYPE); unsigned int baseoff = !type_array_is_decl_as_ptr(type) && current_structure ? type_memsize(current_structure) : 0;
- if (!pointer_type) - pointer_type = FC_RP; - if (!is_string_type(attrs, type_array_get_element(type))) write_embedded_types(file, attrs, type_array_get_element(type), name, FALSE, typestring_offset);
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52992
Your paranoid android.
=== debian9 (build log) ===
Makefile:493: recipe for target 'server_interp_c.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4/tests' failed Makefile:891: recipe for target 'ndr_types_p.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4' failed Task: The win32 build failed
=== debian9 (build log) ===
Makefile:487: recipe for target 'server_interp_c.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4/tests' failed Makefile:872: recipe for target 'ndr_types_p.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4' failed Task: The wow64 build failed
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47285 Signed-off-by: Zebediah Figura z.figura12@gmail.com --- tools/widl/typegen.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 607b4e26b74..0d1a2956dcc 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -3604,8 +3604,7 @@ static unsigned int write_type_tfs(FILE *file, int indent, context != TYPE_CONTEXT_CONTAINER_NO_POINTERS) { int ptr_type; - ptr_type = get_pointer_fc(type, attrs, - context == TYPE_CONTEXT_TOPLEVELPARAM); + ptr_type = get_pointer_fc_context(type, attrs, context); if (ptr_type != FC_RP || type_array_is_decl_as_ptr(type)) { unsigned int absoff = type->typestring_offset;
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52993
Your paranoid android.
=== debian9 (build log) ===
Makefile:493: recipe for target 'server_interp_c.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4/tests' failed Makefile:891: recipe for target 'ndr_types_p.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4' failed Task: The win32 build failed
=== debian9 (build log) ===
Makefile:487: recipe for target 'server_interp_c.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4/tests' failed Makefile:872: recipe for target 'ndr_types_p.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4' failed Task: The wow64 build failed
Signed-off-by: Zebediah Figura z.figura12@gmail.com --- tools/widl/parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/widl/parser.y b/tools/widl/parser.y index dd676e9a280..5d910852d10 100644 --- a/tools/widl/parser.y +++ b/tools/widl/parser.y @@ -1632,7 +1632,7 @@ static var_t *declare_var(attr_list_t *attrs, decl_spec_t *decl_spec, const decl else *ptype = type_new_array((*ptype)->name, type_array_get_element(*ptype), FALSE, - 0, dim, NULL, 0); + 0, dim, NULL, FC_RP); } else if (is_ptr(*ptype)) *ptype = type_new_array((*ptype)->name, type_pointer_get_ref(*ptype), TRUE,
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52994
Your paranoid android.
=== debian9 (build log) ===
Makefile:891: recipe for target 'ndr_types_p.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4' failed Makefile:493: recipe for target 'server_interp_c.c' failed Makefile:493: recipe for target 'server_interp_s.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4/tests' failed Task: The win32 build failed
=== debian9 (build log) ===
Makefile:487: recipe for target 'server_interp_c.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4/tests' failed Makefile:872: recipe for target 'ndr_types_p.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4' failed Task: The wow64 build failed
Hi,
While running your changed tests, I think I found new failures. Being a bot and all I'm not very good at pattern recognition, so I might be wrong, but could you please double-check?
Full results can be found at: https://testbot.winehq.org/JobDetails.pl?Key=52990
Your paranoid android.
=== debian9 (build log) ===
Makefile:493: recipe for target 'server_interp_c.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4/tests' failed Makefile:891: recipe for target 'ndr_types_p.c' failed Makefile:8697: recipe for target 'dlls/rpcrt4' failed Task: The win32 build failed
=== debian9 (build log) ===
Makefile:487: recipe for target 'server_interp_c.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4/tests' failed Makefile:872: recipe for target 'ndr_types_p.c' failed Makefile:8436: recipe for target 'dlls/rpcrt4' failed Task: The wow64 build failed