Commit Graph

3080 Commits

Author SHA1 Message Date
Rob Shearman 36c03f6a94 widl: Remove duplicate pointer handling code in get_struct_type.
Only make the structure complex if there is an interface pointer, not
if there is a pointer to a union or complex struct since these are
handled perfectly well by the pointer marshalling code.

Fix the detection of structures with ref-pointers or pointers in 64-bit code.
2008-12-31 12:35:49 +01:00
Rob Shearman c6e7609b01 widl: Don't add NULL pointer checks in generated code for user types. 2008-12-31 12:30:40 +01:00
Alexandre Julliard 6db201080f server: Make the various async I/O parameters client_ptr_t instead of void pointers. 2008-12-30 21:09:41 +01:00
Alexandre Julliard c86ec6445c server: Make a couple of fields smaller in the apc_call_t/apc_result_t structures. 2008-12-30 15:22:45 +01:00
Alexandre Julliard 838803ce24 server: Make the address parameters in inter-process virtual memory calls client_ptr_t.
Add explicit padding fields in the corresponding structures.
2008-12-30 15:05:38 +01:00
Alexandre Julliard 947976f22c server: Store module names as client_ptr_t instead of void pointers. 2008-12-29 17:10:11 +01:00
Alexandre Julliard f2c4e09e80 server: Make module handles always 64-bit. 2008-12-29 16:47:51 +01:00
Alexandre Julliard cb2788efaf server: Add a module_handle_t type to represent client-side module handles. 2008-12-29 16:41:44 +01:00
Rob Shearman 6b955b514d widl: Generate header files from the parse tree instead of using hooks in the parser. 2008-12-29 14:54:34 +01:00
Rob Shearman bf5a9cb61e widl: Write the local stubs file based on the parsed list of statements, rather than using hooks in the parser code. 2008-12-29 14:47:03 +01:00
Rob Shearman 7d7dd182c1 widl: Write the generated file containing IID, DIID, CLSID and LIBID data based on the parsed list of statements instead of using hooks in the parser code. 2008-12-29 14:46:41 +01:00
Rob Shearman 5223d04a7c widl: Write the typelib based on the statement list generated in the typelib_t object instead of using hooks in the parser code. 2008-12-29 14:46:27 +01:00
Rob Shearman 1a71479fbd widl: Create a separate type_t object for each structure declaration or defintion.
Set the details of the structure to the previously defined version if
available, or add it to a list of incomplete types otherwise. Only set
the defined flag when the structure is actually defined in the IDL
file so that the type is written out in the exact order that it is
mentioned in the file.
2008-12-29 14:46:02 +01:00
Rob Shearman efdd020514 widl: Don't create a temporary variable in the t_ident rule.
The identifier doesn't have any properties of a variable and we only
use it for holding the name before it is freed.

Use get_type instead of get_typev in the type_new_* functions and get
rid of get_typev.
2008-12-29 14:45:28 +01:00
Rob Shearman 213f32744f widl: Store the type-specific information in a union in the type_t structure.
Use pointers for the information for structures, enumerations,
functions and interfaces so that we can determine whether or not the
type has been defined yet and to enable more information to be stored.
2008-12-29 14:45:16 +01:00
Rob Shearman 04a22cc412 widl: Hide the details of where arguments, fields, values and cases are stored in the type_t structure for functions, structures, enums and unions. 2008-12-29 14:42:47 +01:00
Rob Shearman fbffe4a229 widl: Follow aliases in check_remoting_fields so that the fields for the type are correctly enumerated. 2008-12-29 14:42:18 +01:00
Vitaliy Margolen 8a0318c0b4 dxdiagn: Add dxdiagn.dll to DxDiag_DirectXFiles container. Create fake dll for it as well. 2008-12-29 11:47:53 +01:00
Rob Shearman 2e0aefc1fd widl: Structures and arrays with pointers should be complex when generating code for 64-bit platforms.
The non-complex variants depend on the wire size of the
structure/array matching the buffer size, but this no longer applies
when pointers are 8 bytes instead of 4.
2008-12-27 20:23:19 +01:00
Alexandre Julliard 01722d6010 winebuild: Generate relay debugging thunks for x86_64. 2008-12-27 19:59:55 +01:00
Alexandre Julliard 913354e75b winebuild: Fix delay load code to preserve stack alignment and save the correct registers. 2008-12-27 19:58:42 +01:00
Alexandre Julliard 8a87aaa9d9 winebuild: Generate the __wine_call_from_32_regs function along with the 16-bit kernel routines. 2008-12-27 19:50:25 +01:00
Alexandre Julliard 53626dbd93 widl: Add support for generating 32-bit and/or 64-bit code for proxies/clients/servers. 2008-12-26 17:22:25 +01:00
Alexandre Julliard b1ab7d88b3 widl: Add --win32/--win64 options to select the type of code generated. 2008-12-26 17:21:12 +01:00
Alexandre Julliard 9ca1382eae widl: Store the size of a pointer in a variable instead of hardcoding the value of the host compiler. 2008-12-26 17:20:53 +01:00
Alexandre Julliard a011f0cd5b widl: Move determination of the exact type of structures and array to the code generation phase.
The exact type can depend on the size of the type in memory, and that
can vary depending on whether we are generating 32-bit or 64-bit code.
2008-12-26 17:16:06 +01:00
Alexandre Julliard a7b3efde0e server: Store the async handle inside the async_data_t structure. 2008-12-26 12:33:21 +01:00
Alexandre Julliard 3cd817b53e server: Make lparam_t always 64-bit. 2008-12-24 19:57:51 +01:00
Dan Kegel c069474e18 tools: Remove bashisms from wineinstall. 2008-12-24 19:57:51 +01:00
Simon C. Ion 7b5cbdb261 winemaker: Correctly process directories containing regexp metacharacters. 2008-12-20 10:59:24 +01:00
Alexandre Julliard a6216ab927 server: Make apc_param_t always 64-bit. 2008-12-17 19:43:40 +01:00
Alexandre Julliard 29d9759156 server: Use mem_size_t instead of file_pos_t for memory mapping sizes. 2008-12-17 19:25:49 +01:00
Alexandre Julliard 401f4b717a server: Make mem_size_t always 64-bit. 2008-12-17 19:25:09 +01:00
Francois Gouget 5e3e05e043 winapi_check: Extend support for '-arch=xxx' in spec files. 2008-12-17 15:29:03 +01:00
Francois Gouget bfa7fded98 wrc: Add a trailing '\n' to some warning and error messages. 2008-12-17 15:27:16 +01:00
Hans Leidekker 0c9b2c3201 wuapi: Register interfaces. 2008-12-17 13:52:42 +01:00
Hans Leidekker 6a204001ce wine.inf: Create fake hal.dll. 2008-12-16 13:59:07 +01:00
Alexandre Julliard ce63574425 winebuild: Generate stub entry points for x86_64. 2008-12-16 12:20:30 +01:00
Alexandre Julliard 34613835a7 widl: Use ULONG_PTR instead of unsigned long for pointer casts in generated code. 2008-12-15 20:08:39 +01:00
Alexandre Julliard f6fa72d770 server: Make async I/O transfer sizes always 32-bit. 2008-12-15 13:30:25 +01:00
Alexandre Julliard dc7f170495 server: Add an apc_param_t type to store APC client-side parameters. 2008-12-15 13:29:38 +01:00
Francois Gouget ea79b297f5 winapi_check: Add support for '-arch=xxx' in spec files. 2008-12-15 12:25:12 +01:00
Alexandre Julliard f12e9a026b winegcc: Fix the file mode check. 2008-12-12 12:01:46 +01:00
Alexandre Julliard f4ec583d0a tools: Keep track of requests sizes and alignments in make_requests. 2008-12-10 17:15:51 +01:00
Alexandre Julliard 37f3691f7f tools: Re-use the file updating routines from make_makefiles in make_requests. 2008-12-10 17:13:30 +01:00
Alexandre Julliard 31282b3f63 server: Define an lparam_t type for message parameters that can hold all sorts of data. 2008-12-10 16:01:50 +01:00
Alexandre Julliard 77cf8034e4 server: Don't use size_t for module sizes, they are limited to 2Gb anyway. 2008-12-09 11:50:05 +01:00
Alexandre Julliard fa616418ad winebuild: Make the cpu flag more generic to allow supporting a given entry point on multiple platforms. 2008-12-08 17:07:50 +01:00
Alexandre Julliard d764107434 server: Make user handles ints instead of pointers. 2008-12-08 16:57:38 +01:00
Alexandre Julliard 014dcb81e8 widl: Use local functions where possible instead of STUB_FORWARDING_FUNCTION in stub vtables. 2008-12-08 16:05:38 +01:00