widl: Fixup the defaultvalue(BSTR) expression type like midl does.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
7365f557b6
commit
b53c5b30b2
|
@ -35,6 +35,7 @@
|
|||
#include "header.h"
|
||||
#include "expr.h"
|
||||
#include "typetree.h"
|
||||
#include "typelib.h"
|
||||
|
||||
static int indentation = 0;
|
||||
static int is_object_interface = 0;
|
||||
|
@ -1009,6 +1010,16 @@ void write_args(FILE *h, const var_list_t *args, const char *name, int method, i
|
|||
/* Output default value only if all following arguments also have default value. */
|
||||
LIST_FOR_EACH_ENTRY_REV( tail_arg, args, const var_t, entry ) {
|
||||
if(tail_arg == arg) {
|
||||
expr_t bstr;
|
||||
|
||||
/* Fixup the expression type for a BSTR like midl does. */
|
||||
if (get_type_vt(arg->type) == VT_BSTR && expr->type == EXPR_STRLIT)
|
||||
{
|
||||
bstr = *expr;
|
||||
bstr.type = EXPR_WSTRLIT;
|
||||
expr = &bstr;
|
||||
}
|
||||
|
||||
fprintf(h, " = ");
|
||||
write_expr( h, expr, 0, 1, NULL, NULL, "" );
|
||||
break;
|
||||
|
|
Loading…
Reference in New Issue