Elizabeth Figura
8bce553331
widl: Propagate attrs to inner pointer types.
...
Some attributes, namely [iid_is], [string], [switch_is], and [switch_type],
apply to the innermost type. That is, when specified on a top-level parameter
like
int func(..., [iid_is(...)] void ****arg);
the innermost pointee ***arg must have an iid type.
At the same time, the pointer type attributes [ref], [unique], [ptr] must *only*
apply to the top-level pointer. Inner pointers have the default pointer type.
In order to implement this, we always pass "attrs" to inner array and pointer
types, and we also pass around an extra parameter "toplevel_attrs" which
signifies whether the passed-in attributes should be applied directly to this
type (having come from a parameter, field, or typedef), or whether they were
inherited from a higher-level pointer.
2024-08-12 12:37:26 +02:00
Elizabeth Figura
f06fe0e424
widl: Ignore strings in is_embedded_complex().
...
Arrays declared as strings go via an embedded complex
(e.g. "[string] char s[64];").
This matches the logic used to decide struct or array FC.
This commit does nothing yet, since we pass NULL attributes, but we need to
change that so that other types are treated correctly (in particular,
void pointers with [iid_is].)
2024-08-12 12:37:25 +02:00
Elizabeth Figura
86a4953a63
widl: Get rid of the write_embedded_types() helper.
...
It's barely doing anything anymore after
06e7eb5c98
.
2024-08-12 12:37:23 +02:00
Elizabeth Figura
57288dd25e
widl: Explicitly check for top-level parameters before adding FC_ALLOCED_ON_STACK.
2024-08-12 12:37:23 +02:00
Alexandre Julliard
4ff919f54d
makedep: Don't add empty cflags to a compile command.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57026
2024-08-05 19:50:29 +02:00
Eric Pouech
9e43076913
include/mscvpdb.h: Use flexible array members for codeview_type with variable.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-07-16 23:17:58 +02:00
Eric Pouech
7d7ce1dc20
include/mscvpdb.h: Use flexible array members for codeview_symbol union.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-07-16 23:17:54 +02:00
Eric Pouech
5db354f952
include/msvcpdb.h: Use flexible array members for codeview_fieldtype union.
...
This will avoid GCC compiler warnings.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-07-16 23:17:49 +02:00
Eric Pouech
49fbd6dac8
winedump: Dump comment streams in minidump.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-07-15 23:55:44 +02:00
Eric Pouech
5712fc1903
winedump: Protect against corrupt minidump files.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-07-15 23:55:44 +02:00
Esme Povirk
07544942e2
mscoree: Update Wine Mono to 9.2.0.
2024-06-26 22:57:21 +02:00
Alexandre Julliard
65880e0c8c
makedep: Generate a compile_commands.json file.
2024-06-26 14:20:47 +02:00
Alexandre Julliard
4303bd4450
makedep: Generate rules for make depend.
2024-06-26 14:20:47 +02:00
Alexandre Julliard
29555a1fea
makedep: Remove the -R option.
2024-06-26 14:20:47 +02:00
Elizabeth Figura
53c70aec87
widl: Respect u and l modifiers in expressions.
2024-06-25 21:55:06 +02:00
Elizabeth Figura
e261f187ad
widl: Use struct integer for the aNUM and aHEXNUM tokens.
2024-06-25 21:55:06 +02:00
Elizabeth Figura
22929dd8af
widl: Store the hexadecimal flag inside of the expr_t union.
2024-06-25 21:55:06 +02:00
Elizabeth Figura
992cafc9ed
widl: Do not allow "lu" as an integer suffix.
...
MIDL does not.
2024-06-25 21:55:06 +02:00
Alexandre Julliard
d9b364f6f5
makefiles: No longer ignore makedep.c.
2024-06-25 21:54:59 +02:00
Alexandre Julliard
6311297c15
tools: Add helper functions to get the standard directories.
2024-06-25 11:33:46 +02:00
Alexandre Julliard
7c0aa6fd8c
makefiles: Generate rules to build makedep.
2024-06-24 17:13:05 +02:00
Alexandre Julliard
0fb9e616bc
makefiles: Hardcode the dll directory.
...
It's Wine-specific anyway.
2024-06-24 15:21:42 +02:00
Alexandre Julliard
f0ee51026b
makefiles: Hardcode the nls directory.
...
It's Wine-specific anyway.
2024-06-24 13:47:08 +02:00
Alexandre Julliard
13159b0767
makefiles: Hardcode the fonts directory.
...
It's Wine-specific anyway.
2024-06-24 13:46:40 +02:00
Alexandre Julliard
58de2dec08
makedep: Add a helper to get a root-relative directory path.
2024-06-24 13:39:49 +02:00
Rémi Bernon
20f4c9af0f
server: Return the desktop object locator in (get|set)_thread_desktop.
2024-06-20 23:03:26 +02:00
Rémi Bernon
fac940dfac
server: Create a global session shared mapping.
2024-06-20 23:03:26 +02:00
Alexandre Julliard
f84734fc3f
makedep: Build and install ARM64EC-only modules.
2024-06-11 10:38:44 +02:00
Tim Clem
b6fb9e5c5c
gitlab: Update configuration for the new Mac runner.
...
Two main changes:
- VM configuration in build.yml for the executor.
- The build-mac script is now architecture-agnostic.
2024-06-05 10:33:01 +02:00
Alexandre Julliard
3f296440f5
winedump: Fix dumping of catchblocks for 32-bit modules.
...
The frame member isn't present on 32-bit.
2024-06-05 10:31:24 +02:00
Rémi Bernon
ee908ad076
widl: Use mangled namespace names in typedef pointer types.
2024-06-03 23:24:59 +02:00
Elizabeth Figura
93d50fd9de
widl: Do not write type definitions for types defined in an imported header.
...
midl does not, and this would result in redefinition errors.
An equivalent (and arguably a bit more declarative) way to do this would be to
keep track in the parser whether a type or typedef statement is actually a
definition or not, and record that information in the statement_t. However, this
would require passing additional information alongside the type_t from each
relevant bison rule, which would thrash a lot of code.
2024-06-03 23:24:59 +02:00
Elizabeth Figura
1db2eaf0b3
widl: Update the type location in define_type().
...
This improves error reporting for the following IDL:
interface apple;
[uuid(12345678-1234-1234-1234-123456654321)]
interface apple {void func(void);}
[uuid(12345678-1234-1234-1234-123456654321)]
interface apple {void func(void);}
Previously widl would report:
test2.idl:19:34: error: type apple already defined at test2.idl:2
This changes it to refer to line 5, where the interface is actually defined.
2024-06-03 23:24:59 +02:00
Elizabeth Figura
1522d7b727
widl: Factor out a define_type() helper.
2024-06-03 23:24:59 +02:00
Elizabeth Figura
da8d81c63d
widl: Invert "declonly".
...
This makes the logic around it a bit simpler, and I find it easier to understand as well.
2024-06-03 23:24:59 +02:00
Elizabeth Figura
9839a0d68d
widl: Allow using UDTs with the keyword even when the identifier is also a typedef.
...
E.g. in cases like
typedef int apple;
struct apple { ... };
allow subsequently using "struct apple" in future expressions.
Note that this already worked for UDT definitions (so the above example by
itself was legal in widl), but any attempt to use the defined type would result
in a syntax error.
2024-06-03 23:24:59 +02:00
Elizabeth Figura
07243c4e12
widl: Assign to the right location variable.
...
yyloc is an internal variable; we want to assign to yylloc here.
This fixes error reporting.
Fixes: 3b12583db0
2024-06-03 23:24:59 +02:00
Eric Pouech
95e6302e82
winedump: Dump Memory64List streams in minidumps.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-31 19:04:26 +02:00
Eric Pouech
ec61ad8b15
winedump: Don't dump twice.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-31 19:04:26 +02:00
Eric Pouech
0327b00d10
winedump: Dump correct handle information for minidump.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-31 19:04:23 +02:00
Alexandre Julliard
02a6ad92ab
winedump: Dump exception data for known exception handlers.
2024-05-30 19:47:37 +02:00
Alexandre Julliard
bb8ef91f46
winedump: Print the export or import name of exception handlers.
2024-05-30 14:38:01 +02:00
Alexandre Julliard
855017063a
winedump: Print exported function names in the exception data.
2024-05-30 13:32:28 +02:00
Jacek Caban
b210a20413
gitlab: Use --enable-werror for Clang builds.
2024-05-24 21:17:57 +02:00
Alexandre Julliard
a03bd94204
winegcc: Don't print a potentially reallocated pointer.
2024-05-24 18:42:22 +02:00
Esme Povirk
d79eab9776
gitlab: Add unzip to build image.
...
I would like to reuse this build image for the Wine Mono CI
process (so that I don't have to separately maintain an image
that can run current Wine), but I need unzip to download and
extract artifacts from Wine's CI process.
2024-05-20 11:56:38 +02:00
Eric Pouech
d45cbca378
winedump: Correctly unmangle qualified pointer to function/method.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-17 19:48:58 +02:00
Eric Pouech
d42b1d56b5
winedump: Don't consider end of list encoding as real data types.
...
This allows while unmangling:
- to avoid considering them as "real" datatypes in other contexts
- to handle better void (which is only supported as single argument
in function args list, while is a fully acceptable datatype
in template args list)
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-17 19:48:58 +02:00
Eric Pouech
3a95341ef6
winedump: Demangle std::nullptr_t datatype.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-16 23:09:05 +02:00
Piotr Caban
bdba9407d9
winedump: Handle empty list in variadic template.
2024-05-14 21:03:58 +02:00
Jacek Caban
ab9201be5c
winebuild: Use .drectve section for exports on ARM64EC.
2024-05-14 21:03:58 +02:00
Alexandre Julliard
6b4ab3be97
widl: Don't generate empty interface registrations.
2024-05-07 22:49:44 +02:00
Alexandre Julliard
e86e6a6f48
winedump: Dump typelib resources in structured format.
2024-05-06 22:20:24 +02:00
Alexandre Julliard
3c2d6128fe
winedump: Dump registry scripts resources as text.
2024-05-05 12:19:16 +02:00
Alexandre Julliard
da387a9b56
nls: Update locale data to CLDR version 45.
2024-05-04 09:56:23 +02:00
Alexandre Julliard
64923f3fee
widl: Default to fully interpreted stubs mode.
2024-05-02 09:22:40 +02:00
Alexandre Julliard
323cff8f63
widl: Fix correlation offset for unencapsulated unions in interpreted mode.
2024-05-01 12:41:37 +02:00
Alexandre Julliard
3e2a999013
makefiles: Support building files for x86-64 architecture on ARM64EC.
...
Based on a patch by Jacek Caban.
2024-04-30 20:36:48 +02:00
Brendan Shanks
563ef82416
widl: Use hardcoded build time in TLB custom data.
...
This makes builds reproducible, and matches the current MIDL behavior
(except that MIDL's string representation will vary with the build machine
timezone).
2024-04-29 17:35:26 +02:00
Paul Gofman
04a2917f6b
ntdll: Store exception reporting flags in server context.
2024-04-26 23:21:57 +02:00
Dmitry Timoshkov
ce6fe5d06e
widl: Fix calculation of the SLTG library block size.
...
This patch fixes a regression in comparison with SLTG generator in wine-staging,
and allows oleview.exe from PSDK correctly load SLTG typelib generated by widl.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-25 21:10:27 +02:00
Dmitry Timoshkov
13e1259754
widl: Add support for function parameter flags to SLTG typelib generator.
...
This makes stdole32.tlb generated by widl have proper [in,out,retval]
parameter flags.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:19 +02:00
Dmitry Timoshkov
202acc52eb
widl: Set the lowest bit in the param name to indicate whether type description follows the name.
...
It looks like the lowest bit in the param name offset actually indicates
whether type description follows the name, and since the name offsets are
always aligned that makes sense.
This makes oleview.exe from PSDK running under Windows7 correctly show mix
of different very complex and relatively simple type descriptions generated
by widl's SLTG generator.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:17 +02:00
Dmitry Timoshkov
918425bbe9
widl: Create library block index right after the CompObj one.
...
Otherwise Wine's oleaut32 refuses to load a typelib.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:14 +02:00
Dmitry Timoshkov
62223ed995
widl: Make automatic dispid generation scheme better match what midl does.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-23 22:14:14 +02:00
Esme Povirk
e00762b961
mscoree: Update Wine Mono to 9.1.0.
2024-04-22 17:46:01 +02:00
Alexandre Julliard
2c2ac005f5
widl: Use x64 calling convention for ARM64EC.
2024-04-18 20:54:24 +02:00
Alexandre Julliard
57b145e468
widl: Clear RobustEarly flag also for data structure conformance.
2024-04-16 21:26:50 +02:00
Alexandre Julliard
235f76594e
widl: Output register parameter assignments on ARM platforms.
2024-04-16 18:39:13 +02:00
Eric Pouech
30a7054879
winedump: Extend dumping of some minidump parts.
...
- extend dump information in misc stream
- dump token, thread name, memory info list streams
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:43 +02:00
Eric Pouech
73b653f514
winedump: Tidy up dumping minidump.
...
- homogenize dir entry
- print all thread id:s and RVA in hex
- improve some indentation
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Eric Pouech
b89102173e
winedump: Support a couple of 'section' options (minidump).
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Eric Pouech
2253504aa5
winedump: Simplify unicode string printing (minidump).
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Eric Pouech
facae70c5e
winedump: Add helpers to print DWORD64 integers.
...
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-04-15 18:15:36 +02:00
Alexandre Julliard
2f532567ff
widl: Don't use a structure for NdrClientCall2 parameters on ARM.
2024-04-15 18:10:44 +02:00
Alexandre Julliard
84509acb16
widl: Correctly align stack parameters on ARM.
2024-04-15 18:10:44 +02:00
Alexandre Julliard
377f9f8de9
widl: Only pass power of 2 structures by value on x86-64.
2024-04-15 18:10:44 +02:00
Alexandre Julliard
9cda4233df
widl: Pass 16-byte structures by value on ARM64.
2024-04-15 18:10:44 +02:00
Jacek Caban
ba50573f91
makedep: Use hybrid ARM64X images for ARM64EC.
2024-04-11 16:29:35 -05:00
Jacek Caban
00198c4084
winegcc: Add -marm64x option for linking ARM64X images.
2024-04-09 12:07:27 -05:00
Jacek Caban
753f405536
winegcc: Pass target and resources as arguments to build_spec_obj.
2024-04-09 12:07:27 -05:00
Jacek Caban
4243befce5
winebuild: Add -marm64x option for generating hybrid ARM64X import libraries.
2024-04-09 12:07:26 -05:00
Dmitry Timoshkov
1d0eb24ce1
widl: Add support for inherited interfaces to SLTG typelib generator.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-09 08:28:46 -05:00
Dmitry Timoshkov
7db6c30aea
widl: Add support for interfaces to SLTG typelib generator.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-09 08:28:46 -05:00
Dmitry Timoshkov
61583ec2cd
widl: Add support for recursive type references to SLTG typelib generator.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-09 08:27:56 -05:00
Dmitry Timoshkov
b8921b414e
widl: In old style typelibs all types are public.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-09 08:27:56 -05:00
Alexandre Julliard
047b7fc293
widl: Map VT_USERDEFINED to VT_I4 for default values in typelibs.
2024-04-04 20:49:43 +02:00
Jacek Caban
a8fc62d1a2
widl: Don't use old typelib format in do_everything mode.
...
Fixes a regression from 0bffa32226
.
2024-04-04 16:03:26 +02:00
Dmitry Timoshkov
1eeebc3190
widl: Add support for VT_USERDEFINED to SLTG typelib generator.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-03 23:03:38 +02:00
Dmitry Timoshkov
9d26c6d75a
widl: Properly align name table entries.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-03 23:03:38 +02:00
Dmitry Timoshkov
f3ca3044fe
widl: Add support for structures.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-03 23:03:38 +02:00
Dmitry Timoshkov
5df4c5f06d
widl: Add more traces.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-03 23:03:38 +02:00
Dmitry Timoshkov
b83410936e
widl: Use generic 'struct sltg_data' for collecting data.
...
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-04-03 23:03:38 +02:00
Alexandre Julliard
a1997507e8
widl: Clear /robust flags when no descriptor is present.
...
For compatibility with midl.
2024-04-03 23:03:36 +02:00
Alexandre Julliard
af058da893
widl: Use padding instead of alignment in structure format strings.
...
For compatibility with midl.
2024-04-03 12:34:39 +02:00
Alexandre Julliard
855eb3afcd
widl: Always pass the top-level attributes to detect interface pointers.
2024-04-03 12:30:59 +02:00
Alexandre Julliard
4f8958eb56
widl: Use the correct type for non-encapsulated union discriminants.
2024-04-02 23:30:10 +02:00
Alexandre Julliard
66bec19434
widl: Output more correct /robust flags.
2024-04-02 23:30:10 +02:00
Alexandre Julliard
4d8ee6bb18
widl: Add /robust flags in correlation descriptors.
2024-04-02 23:30:10 +02:00
Alexandre Julliard
896b4f05ea
widl: Always use new-style format strings in interpreted mode.
2024-04-02 23:30:03 +02:00