Dmitry Timoshkov
2c501aa750
widl: If a variable doesn't have a name provide an autogenerated one.
...
Otherwise widl crashes while generating a typelib for a structure
with an embedded anonymous union:
typedef struct _s
{
int type;
union
{
int f;
};
} s;
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Dmitry Timoshkov
8d0f8da652
widl: Generate name for a tagless union.
...
Otherwise widl crashes while generating a typelib for
typedef struct _s
{
int type;
union
{
int field;
} u;
} s;
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-17 15:04:59 +01:00
Jacek Caban
26ad9a7ba3
widl: Check dispinterfaces for duplicated methods.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-04 21:30:27 +01:00
Zebediah Figura
56995dd322
widl: Output a registry script for all interfaces written into the typelib.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46005
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 16:22:33 +01:00
Alexandre Julliard
90a543d3d7
widl: Also search the include dir relative to the binary path.
...
Suggested by Kevin Puetz.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-30 11:33:13 +01:00
Rémi Bernon
1491453ea9
widl: Cast freed pointers to void* to fix discarded-array-qualifiers warning.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-12-02 22:02:56 +01:00
Jacek Caban
c15f83a2a3
widl: Use strmake in get_name.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 23:37:06 +01:00
Jacek Caban
d5c745e467
widl: Don't use fixed size buffer in ctl2_encode_string.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 23:36:54 +01:00
Jacek Caban
908c2bec28
widl: Don't use fixed size buffer in ctl2_encode_name.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-08 23:36:50 +01:00
Alexandre Julliard
5f39d36a6c
widl: Add --sysroot and --nostdinc options.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-02 13:55:16 +01:00
Alexandre Julliard
264d8884d5
widl: Add strmake() helper.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-02 13:55:16 +01:00
Zebediah Figura
8746bf094f
widl: Also compute buffer size for non-ref arrays.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47886
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-07 09:59:38 +02:00
Zebediah Figura
dd35baa8e3
widl: Write pointer classes for explicitly declared arrays only if they are top-level parameters.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-10-07 09:59:36 +02:00
Michael Stefaniuc
bbcf44eb97
widl: Add the ARRAY_SIZE() macro.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-26 21:05:44 +02:00
Francois Gouget
2814409990
widl: Fix a variable name in a comment.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-09-02 20:46:58 +02:00
Richard Pospesel
57f697e137
widl: Respect wire-marshal typedefs in type libraries.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47041
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 20:04:10 +02:00
Richard Pospesel
4b1dfa6037
widl: Add the typedef to the type library if the aliasee is an anonymous UDT.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47050
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 20:04:05 +02:00
Zebediah Figura
96e11d51ba
widl: Write public typedefs into the typelib if they are referenced directly.
...
I.e. write "apple_t" into the typelib given the following snippet:
typedef [public] struct { ... } apple_t;
library {
interface IFoo {
HRESULT a(apple_t arg);
}
}
Based on a patch by Richard Pospesel.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 20:04:01 +02:00
Zebediah Figura
4f4763ab6b
widl: Handle encapsulated unions in type libraries.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 20:03:57 +02:00
Zebediah Figura
732f67ed38
widl: Generate a name for the encapsulated union type.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 20:03:52 +02:00
Richard Pospesel
181cafcd52
widl: Fail compilation if an incomplete union or enum is used in a remoted field.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 09:33:57 +02:00
Zebediah Figura
a58e4cc07c
widl: Check for redefinition of named user types.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-21 09:33:55 +02:00
Zebediah Figura
0aa6049c8d
widl: Create exactly one type_t object per named enum type.
...
Based on a patch by Richard Pospesel.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47035
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-20 09:08:57 +02:00
Zebediah Figura
833639bd09
widl: Create exactly one type_t object per named union type.
...
Based on a patch by Richard Pospesel.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-20 09:08:54 +02:00
Zebediah Figura
42321d7a11
widl: Create exactly one type_t object per named structure type.
...
Regardless of whether we are writing a typelib.
Based on a patch by Richard Pospesel.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-20 09:08:51 +02:00
Zebediah Figura
55234f65a8
widl: Track whether the type has been defined yet in the statement_t and var_t structures.
...
Based on a patch by Richard Pospesel.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47149
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-20 09:08:48 +02:00
Zebediah Figura
60d668631f
widl: Don't store the default pointer type in the type_t structure.
...
This fixes type format string generation for the following IDL:
typedef int *intp;
[pointer_default(ref)] interface IRef {
void a(intp *a);
}
[pointer_default(unique)] interface IUnique {
void b(intp *a);
}
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-19 11:29:28 +02:00
Zebediah Figura
5cc3548299
widl: Store the "inline" function specifier inside the decl_spec_t structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-19 11:29:28 +02:00
Richard Pospesel
7e4da76689
widl: Store the "const" type qualifier inside the decl_spec_t structure.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-19 11:29:28 +02:00
Zebediah Figura
df948ccc05
widl: Fix nesting of functions, pointers, and arrays.
...
This is actually broken in MIDL, even as recent as the version shipped with
the Windows 10 SDK, but it makes our code simpler, so there's no reason not
to do it right.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-19 11:29:28 +02:00
Richard Pospesel
f131795b30
widl: Pass a decl_spec_t to type_new_alias().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:33 +02:00
Richard Pospesel
d4dfbb630f
widl: Pass a decl_spec_t to type_new_array().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:29 +02:00
Richard Pospesel
e8b6c05242
widl: Pass a decl_spec_t to write_type_left().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:24 +02:00
Richard Pospesel
aa2bd521d9
widl: Pass a decl_spec_t to write_type_v().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:19 +02:00
Zebediah Figura
d0e10aa372
widl: Store the type for casts and sizeof() expressions as a decl_spec_t.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-16 10:09:13 +02:00
Richard Pospesel
e63df7f7bf
widl: Store the aliasee as a decl_spec_t structure.
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 10:22:40 +02:00
Zebediah Figura
2babcd6c1c
widl: Use the type_type field to track whether the type is an alias.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 10:22:35 +02:00
Zebediah Figura
07c131f0f4
widl: Introduce type_array_{get,set}_ptr_tfsoff().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 10:22:24 +02:00
Zebediah Figura
c5ab9d01be
widl: Use type_iface_get_inherit() in check_async_uuid().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 10:22:19 +02:00
Zebediah Figura
b4fe4ccc96
widl: Introduce type_iface_get_async_iface().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-15 10:22:14 +02:00
Zebediah Figura
8b2a065892
widl: Move the "idx" parameter from struct func_details to var_t.
...
It's not a part of the type; e.g. it doesn't make sense on a function pointer.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 12:16:10 +02:00
Zebediah Figura
a55aa54c42
widl: Use type_function_get_args() in more places.
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 12:16:03 +02:00
Richard Pospesel
ebac6a6ac4
widl: Use type_pointer_get_default_fc() in declare_var().
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 12:15:57 +02:00
Zebediah Figura
c4f5fb383b
widl: Get rid of fix_incomplete().
...
This seems to have been broken since 0f7f7922bab; is_incomplete() will only
return true for non-aliases. It could be fixed by reverting that hunk of
0f7f7922ba
, but we intend rather to change the representation of aliases so
that no "fixing" is needed.
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 12:15:49 +02:00
Richard Pospesel
083032b5ef
widl: Use type_function_get_args() instead of type_get_function_args().
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-14 12:15:37 +02:00
Richard Pospesel
1f59423039
widl: Bump MIDL version to 5.2.202 to avoid RPC_X_WRONG_STUB_VERSION exception in ObjectStublessClient.
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:16 +02:00
Richard Pospesel
76512154f8
widl: Refactor to have pointer type's ref use decl_spec_t rather than type_t.
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:07 +02:00
Richard Pospesel
c7d68454af
widl: Refactor to have array type's element use decl_spec_t rather than type_t.
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:03 +02:00
Richard Pospesel
1ffb6494db
widl: Change struct _var_t's type member to a struct _decl_spec_t.
...
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-08-13 10:21:00 +02:00
Richard Pospesel
28715ce34e
widl: Use FC_CHAR rather than FC_BYTE for boolean typedef to match midl.exe output.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47041
Signed-off-by: Richard Pospesel <richard@torproject.org>
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-20 09:05:52 +02:00