On 10.07.2017 12:37, Huw Davies wrote:
On Mon, Jul 10, 2017 at 08:17:26AM +0300, Nikolay Sivov wrote:
On 10.07.2017 7:43, Alistair Leslie-Hughes wrote:
Fixes: https://bugs.winehq.org/show_bug.cgi?id=43302
Signed-off-by: Alistair Leslie-Hughes leslie_alistair@hotmail.com
tools/widl/header.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c index 7b97158..e48b488 100644 --- a/tools/widl/header.c +++ b/tools/widl/header.c @@ -1172,7 +1172,7 @@ static void write_method_proto(FILE *header, const type_t *iface) { const var_t *func = stmt->u.var;
- if (!is_local(func->attrs)) {
- if (is_callas(func->attrs)) { const char *callconv = get_attrp(func->type->attrs, ATTR_CALLCONV); if (!callconv) callconv = "STDMETHODCALLTYPE"; /* proxy prototype */
This is wrong, 'call_as' is used to map different method to be used for remote calls. Midl certainly does not limit prototype generation like that. You mentioned 'odl' attribute on bug report, it's irrelevant too.
Are you sure about this, the patch looks correct to me?
I tested with midl 6.00.0361 and it always emits prototypes, midl 8.01.0622 by default does not, even though both versions are generating interpreted stubs by default. Using local/call_as methods pair forces prototype generation with default flags too, so I guess the patch is correct for midl versions > 6.x.
I now understand why [2/2 is needed. The problem is the build breaks after [1/2], so either the order needs changing or the patches need combining.
Huw.