Jacek Caban
ed50ce5efe
widl: Allow shadowing imported types with typedef.
2013-02-26 18:18:31 +01:00
Piotr Caban
3d9454bc8f
widl: Make it possible to set typelib resource id with id attribute.
2013-01-18 13:29:09 +01:00
André Hentschel
3ea316638d
widl: Add ARM64 support.
2013-01-16 12:37:44 +01:00
Austin English
ecfb6539f6
widl: add_interface_typeinfo should not return a value.
2012-12-20 12:01:08 +01:00
Austin English
554a2ccb11
widl: write_array_element_type shouldn't return a value.
2012-12-20 12:01:02 +01:00
Alexandre Julliard
50835b4151
widl: Fix a typo in the man page.
2012-12-10 11:27:33 +01:00
Alexandre Julliard
756d33ddae
widl: Print large enum constants in hex.
2012-11-23 18:06:07 +01:00
Jacek Caban
4d323d176c
widl: Ignore -app_config option.
2012-11-07 13:55:48 +01:00
Jacek Caban
218b1951db
widl: Define PROXY_DELEGATION in dlldata.c when needed.
2012-11-01 15:42:33 +01:00
Thomas Faber
52607ba66b
widl: Use 'class' for coclass typedefs in C++.
2012-10-15 13:31:08 +02:00
Jacek Caban
430c3d0be2
widl: Fixed fwrite error handling.
2012-10-08 12:54:56 +02:00
Jacek Caban
da0f33370a
widl: Alloc big enough buffer in dup_basename to handle registration suffix.
2012-10-08 12:54:55 +02:00
Jacek Caban
5cb75c525f
widl: Fail with error on an attempt to inherit interface from itself.
2012-08-29 11:46:24 +02:00
Michael Stefaniuc
2c97f3fcb5
widl: Avoid FALSE:TRUE conditional expressions.
2012-08-15 12:15:13 +02:00
Nikolay Sivov
65f4184936
widl: Don't output method macro if name duplicates another method name.
2012-07-30 17:57:49 +02:00
Nikolay Sivov
0bc5e7a62a
widl: Protect from duplicated method names in C-style vtable struct.
2012-07-30 17:57:49 +02:00
Nikolay Sivov
d54e9603b5
widl: Emit default argument values for cpp methods.
2012-07-26 13:40:44 +02:00
Jacek Caban
6b34eea6fc
widl: Added an extension that uses inline functions instead of macros for C interface calls.
2012-07-26 12:17:25 +02:00
Jacek Caban
80d3055869
widl: Add IDL installation directory to include path.
2012-07-23 12:55:02 +02:00
Jacek Caban
42e77c849f
widl: Added --help command line option.
2012-06-08 19:35:16 +02:00
Jacek Caban
76693d52c7
widl: Added support for nameless structs and unions.
2012-05-14 10:29:40 +02:00
Jacek Caban
718adc91fc
widl: Make headers guards compatible with midl.
2012-03-08 19:22:45 +01:00
Jacek Caban
af2eba24b7
widl: Removed unused idfile_token.
2012-03-08 18:56:13 +01:00
Alexandre Julliard
42e583f1f6
widl: We no longer need to avoid windows.h in generated headers.
2012-01-20 15:59:02 +01:00
Alexandre Julliard
bf0c37d56a
widl: Zero-initialize [out] structures and unions that contain pointers.
2011-12-13 18:59:15 +01:00
Andrew Talbot
7f27eb6a45
widl: Avoid right-shift of negative values.
2011-11-23 09:13:04 +01:00
Jacek Caban
c7602d51b3
widl: Define __REQUIRED_RPCNDR_H_VERSION__ in generated headers.
2011-09-22 19:51:49 +02:00
Alexandre Julliard
977e15b762
widl: Store the type format offset for function parameters in the variable object.
2011-09-19 12:56:25 +02:00
Alexandre Julliard
e2a92702ed
widl: Pass variables around instead of types for function parameters.
2011-09-19 11:54:42 +02:00
Alexandre Julliard
c31948a775
widl: Make the function return value a variable.
2011-09-17 16:09:47 +02:00
Alexandre Julliard
05ff9dfeb1
widl: Include string formats in the element description for complex arrays.
2011-09-16 21:08:54 +02:00
Bernhard Loos
00ab883644
widl: Also create proxies/stubs for interfaces marked with oleautomation.
2011-09-06 15:42:28 +02:00
Alexandre Julliard
8e15db40a8
widl: Don't output stubs for interfaces included in a typelib.
2011-09-06 15:42:16 +02:00
Alexandre Julliard
4ff0faa67c
widl: Generate a registration script along with the typelib when creating a resource file.
2011-08-02 20:47:48 +02:00
Alexandre Julliard
b568287eef
widl: Add support for generating typelibs directly in resource format.
2011-08-01 21:38:56 +02:00
Alexandre Julliard
36e73eb3fb
widl: Add helper functions for outputting resource files.
2011-08-01 21:38:14 +02:00
Alexandre Julliard
0359b30b1b
widl: Only register interfaces when the factory buffer is known.
2011-08-01 17:20:46 +02:00
Alexandre Julliard
ca22457d7b
widl: Don't set base types to 0 on proxy entry.
2011-07-27 16:16:14 +02:00
Alexandre Julliard
0d76bb7ec3
widl: Clear out more types of parameters in the proxy error handlers.
2011-07-27 16:04:24 +02:00
Alexandre Julliard
82f33d3f6b
widl: Check for mismatched types in ?: expressions.
2011-07-25 10:43:09 +02:00
Jacek Caban
2b7c6a9599
widl: Produce __uuidof-compatible headers.
2011-07-14 21:51:36 +02:00
Alexandre Julliard
9df500d45d
widl: Support LANG_NEUTRAL as a valid lcid in typelibs.
2011-07-08 17:34:41 +02:00
Jacek Caban
f8c517978b
widl: Use proper calling convention attributes.
2011-07-07 17:32:12 +02:00
Marcus Meissner
28e92027b1
widl: Decrease is_object_interface after usage.
2011-07-06 17:01:32 +02:00
Jacek Caban
9afec542e0
widl: Generate class forward declaration for coclasses.
2011-07-06 16:58:49 +02:00
Jacek Caban
63d5462ced
widl: Insert standard windows.h and ole2.h includes to generated headers.
2011-06-27 13:30:57 -05:00
Alexandre Julliard
809810eb28
widl: Use NdrPointerFree instead of freeing by hand where possible.
2011-06-20 19:32:04 +02:00
Alexandre Julliard
c173399d62
widl: Move the pointer check functionality to typegen.c.
2011-06-14 12:55:39 +02:00
Alexandre Julliard
fa2b886d1d
widl: Also check array pointers for null ref pointers.
2011-06-14 12:55:22 +02:00
Alexandre Julliard
c70ef62958
widl: Make output unique pointers into object pointers in object interfaces.
2011-06-14 12:24:00 +02:00
Alexandre Julliard
bcca410733
widl: Allow unsized in,out string parameters.
2011-06-14 12:23:32 +02:00
Alexandre Julliard
351c6ca5e4
widl: If possible, use the interface name as prefix for the expr eval functions.
2011-06-13 23:59:04 +02:00
Alexandre Julliard
7a0ce4c864
widl: Include the parent interfaces in the proxy thunk table too.
2011-06-13 23:16:36 +02:00
Alexandre Julliard
5881069601
widl: Use delegation when inheriting from a local interface.
2011-06-13 22:16:05 +02:00
Alexandre Julliard
799000ea3a
widl: Include the parent interfaces in the proc format string offsets for proxies.
2011-06-13 21:58:33 +02:00
Alexandre Julliard
0cba5b06f5
widl: Use the local function as proxy entry for callas interpreted functions.
2011-06-13 21:17:52 +02:00
Alexandre Julliard
e620869d5f
widl: Output the list of rundown routines in server files.
2011-06-13 20:31:42 +02:00
Alexandre Julliard
717f2bebd8
widl: Use the context handle description instead of the pointer for arguments that are pointer to handles.
2011-06-13 20:09:47 +02:00
Alexandre Julliard
717bd66440
widl: Default to the cdecl calling convention in client/server functions.
2011-06-13 11:53:28 +02:00
Alexandre Julliard
49c31e3bf8
makefiles: Use the generic install flags for the tools directories.
2011-06-12 12:47:48 +02:00
Alexandre Julliard
3a709fa5bb
widl: Fix a typo in updating the type format offset for strings.
2011-06-09 13:18:58 +02:00
Alexandre Julliard
211ed7be48
widl: Fix packing of parameter structures for arguments larger than a pointer.
2011-06-09 12:08:48 +02:00
Alexandre Julliard
59171bd9f5
widl: Pass a structure containing the parameters to NdrClientCall instead of accessing the stack.
2011-06-09 12:08:48 +02:00
Alexandre Julliard
9f99d74a20
widl: Add a helper function for generating a stub that uses NdrClientCall.
2011-06-09 12:08:48 +02:00
Alexandre Julliard
350c93a164
widl: Don't require inline stubs for functions that are never generated.
2011-06-08 14:12:16 +02:00
Alexandre Julliard
3147545541
widl: Don't allow floating point parameters for interpreted functions.
2011-06-08 14:06:22 +02:00
Alexandre Julliard
36ee028f49
widl: Don't generate old-style interpreted stubs on 64-bit.
2011-06-08 12:14:47 +02:00
Alexandre Julliard
e4a0483529
widl: Set a correct fpu parameter mask on 64-bit.
2011-06-08 11:51:27 +02:00
Alexandre Julliard
d9cd0d8cac
widl: In 64-bit mode, pass all arguments to NdrClientCall instead of a pointer to the first one.
2011-06-08 11:34:46 +02:00
Jacek Caban
674ab49fa2
widl: Don't duplicate optarg and optind declarations in sources.
2011-06-07 14:18:34 +02:00
Alexandre Julliard
609602cb38
widl: Add support for generating new-style interpreted stubs for proxies.
2011-06-07 14:18:15 +02:00
Alexandre Julliard
01b44d1317
widl: Generate thunks for callas functions using interpreted stubs.
2011-06-07 12:11:50 +02:00
Alexandre Julliard
39b15066b0
widl: Add support for generating new-style interpreted stubs for servers.
2011-06-06 21:49:22 +02:00
Alexandre Julliard
e95d5a8e3c
widl: Add support for generating new-style interpreted stubs for clients.
2011-06-06 21:49:22 +02:00
Alexandre Julliard
b724138bd9
widl: Add support for new-style interpreted stubs in the proc format strings.
2011-06-06 21:49:22 +02:00
Alexandre Julliard
e644c2cd03
widl: Add support for generating old-style interpreted stubs for servers.
2011-06-03 12:27:54 +02:00
Alexandre Julliard
9c4d01f329
widl: Add support for generating old-style interpreted stubs for clients.
2011-06-03 12:27:14 +02:00
Alexandre Julliard
33ba9731a3
widl: Add support for generating old-style interpreted stubs for proxies.
2011-06-03 12:27:00 +02:00
Alexandre Julliard
4fe88648cb
widl: Always use signed types in parameter formats.
...
Native marshaller doesn't support the unsigned ones.
2011-06-03 12:26:31 +02:00
Alexandre Julliard
9128dea410
widl: Use the pointer offset for arrays declared as pointer in the proc format strings of interpreted functions.
2011-06-02 16:22:43 +02:00
Alexandre Julliard
11416a20c9
widl: Generate function headers in the proc format string for interpreted functions.
2011-06-02 16:22:43 +02:00
Alexandre Julliard
6ae510050b
widl: Add a -O option to specify stub style.
2011-06-02 16:22:42 +02:00
Alexandre Julliard
2db27725bf
widl: Don't allow unions passed by value or floating point returns for interpreted functions.
2011-06-02 16:21:52 +02:00
Alexandre Julliard
82d3ea86cf
widl: Always update the type format offset in write_type_tfs and not in callers.
2011-06-02 14:42:13 +02:00
Alexandre Julliard
5e67dcd10f
widl: Fix representation of context handles in the format string.
2011-06-02 14:41:55 +02:00
Alexandre Julliard
0f8b64a57b
widl: Add a more generic way of determining the type of handle for a function.
2011-05-31 18:32:58 +02:00
Alexandre Julliard
21cbdaa1eb
widl: Support using custom handle types with the implicit_handle attribute.
2011-05-31 18:32:58 +02:00
Alexandre Julliard
968c8688c4
widl: Array dimensions have to be constants.
2011-05-28 13:39:18 +02:00
Alexandre Julliard
0486140c3d
widl: Don't output callback conformances for non-interpreted functions.
...
The Windows marshaller calls the callback with an invalid stack.
2011-05-28 13:38:25 +02:00
Alexandre Julliard
93dd252116
widl: Output a list of binding routines in client files.
2011-05-27 12:07:29 +02:00
Alexandre Julliard
c2406be6d4
widl: Add support for top-level conformances.
2011-05-26 21:58:59 +02:00
Alexandre Julliard
d8059aee3a
widl: Move the check for already processed types into the type-specific functions.
...
Fixed a couple of instances where types were printed redundantly or
incorrectly reused.
2011-05-26 19:45:00 +02:00
Alexandre Julliard
52cb5b20f7
widl: Set the correct stack size for parameters in the proc format string.
2011-05-25 20:32:12 +02:00
Alexandre Julliard
56e65b4534
widl: Allow using fixed size arrays as strings.
2011-05-25 19:34:26 +02:00
Alexandre Julliard
96a5def678
widl: Also compute buffer size for non-ref pointers.
2011-05-25 00:22:40 +02:00
Alexandre Julliard
8f156e266e
widl: Return the buffer size of the object pointed by a ref pointer for all types.
2011-05-25 00:07:15 +02:00
Alexandre Julliard
2099d94001
widl: Call marshalling routines directly also for user-marshalled types accessed through a ref pointer.
2011-05-24 23:10:54 +02:00
Alexandre Julliard
bf9d2904dc
widl: Don't call the buffer sizer routine when the size is known already.
2011-05-24 22:47:07 +02:00
Alexandre Julliard
050f6f38d5
widl: Only return a buffer size for fixed-size arrays.
2011-05-24 22:30:39 +02:00
Marcus Meissner
37046546af
oleaut32: Fixed offset calculation (Coverity).
2011-05-09 10:50:27 +02:00
Marcus Meissner
0222ad7326
widl: Mark up a FALLTHROUGH case (Coverity).
2011-03-31 12:50:47 +02:00
Huw Davies
09dd285d8c
widl: Initialise [out] only conformant arrays.
...
This isn't strictly what midl does, however VB relies on the array in
IEnumVARIANT_Next() being zero initialised. Native uses stubless
proxies, where the initialisation is performed in NdrStubCall2().
2011-03-03 17:47:14 +01:00
Huw Davies
d8d963a9c3
widl: Don't dereference if the referenced type is a user type.
2011-02-03 16:24:55 +01:00
Huw Davies
5ae2b0f219
widl: Initialise [out] only parameters if they are user types or interface pointers.
2011-02-02 18:13:34 +01:00
Henri Verbeet
7421bb0b61
widl: Support forward type declarations.
2011-01-28 11:59:04 +01:00
Alexandre Julliard
56425e3767
widl: Don't generate proxies for oleautomation interfaces.
2011-01-19 17:43:01 +01:00
Alexandre Julliard
90c7acf845
widl: Allow specifying a class version outside of a typelib too.
2010-12-23 12:50:58 +01:00
Alexandre Julliard
fc3114ca80
widl: Don't free the input file name since it's stored in various places in the location info.
2010-12-23 12:50:52 +01:00
Alexandre Julliard
e5f65edfc9
widl: Allow specifying a version for a coclass independently of its typelib version.
2010-12-22 15:51:29 +01:00
Alexandre Julliard
875c1b8739
widl: Register the PSFactoryBuffer class as factory if it's defined in the idl file.
2010-12-17 14:58:47 +01:00
Alexandre Julliard
f3f5230b92
widl: Don't create the CurVer key if the ProgId is already version-independent.
2010-12-09 22:42:30 +01:00
Alexandre Julliard
cb246ca7a7
widl: Support encoding the DECIMAL type in typelibs.
2010-12-09 00:05:28 +01:00
Alexandre Julliard
8c78994866
widl: Signal an error when trying to output an undefined interface into a typelib.
2010-12-08 20:32:08 +01:00
Alexandre Julliard
2dc85894a7
widl: Improve registration of coclasses contained in typelibs.
2010-12-08 16:10:44 +01:00
Alexandre Julliard
15ccabc9a8
makefiles: Add common rules for installing the main man page.
2010-12-05 16:17:58 +01:00
Alexandre Julliard
2f5c578dba
widl: Output registration information also for IUnknown.
2010-12-03 19:29:49 +01:00
Alexandre Julliard
2bf6305ad6
widl: Don't force removal of progids since "CLSID" is also a progid.
2010-12-03 18:09:13 +01:00
Alexandre Julliard
b3ebd5a8c5
widl: Use the class name as default description for a progid.
2010-12-03 14:28:28 +01:00
Alexandre Julliard
335282f564
widl: Generate keys for coclasses in the registration resources.
2010-12-02 13:15:14 +01:00
Alexandre Julliard
3991b05746
widl: Add progid, threading and vi_progid attributes for coclasses.
...
This is a Wine extension, modelled after the corresponding attributes
supported by Visual C++.
2010-12-02 13:14:50 +01:00
Alexandre Julliard
ce3abe8c0c
widl: Add support for generating a .rgs registration script for the defined interfaces.
2010-11-27 13:29:13 +01:00
Alexandre Julliard
233814c21e
widl: Add a general -o option instead of having a different output name option for each file type.
2010-11-27 13:28:16 +01:00
Alexandre Julliard
5d3b4fb6cb
widl: Use the output buffer functions to write typelibs.
2010-11-27 11:54:51 +01:00
Alexandre Julliard
00dda6f687
widl: Copy the output buffer management functions from winebuild.
2010-11-27 11:42:09 +01:00
André Hentschel
d4dc2a3a4f
widl: Fix for typelib generation when unaligned access to memory is not allowed.
2010-11-15 13:20:05 +01:00
Amine Khaldi
c9dcef156e
widl: Do not define MIDL_user_allocate and MIDL_user_free as it's already in the psdk.
2010-10-27 12:02:41 +02:00
Alexandre Julliard
3593b65935
widl: Output a format string table and server info structure for servers.
2010-10-22 20:49:45 +02:00
Alexandre Julliard
9551524308
widl: Output a format string table and server info structure for stubs.
2010-10-22 20:23:56 +02:00
Alexandre Julliard
4c41dd5fca
widl: Duplicate the exception handling code between 32-bit and 64-bit.
2010-10-22 19:44:00 +02:00
Alexandre Julliard
575485c6e7
widl: Duplicate all the proxy data tables between 32-bit and 64-bit.
2010-10-22 19:41:07 +02:00
Alexandre Julliard
a638c663b5
widl: Add a separate function to write the proc format string for a function.
2010-10-21 21:36:45 +02:00
Alexandre Julliard
63d5217fd6
widl: Output some comments for proc format strings.
2010-10-21 21:36:45 +02:00
Alexandre Julliard
226e963429
widl: Use get_size_procformatstring_func() for clients too instead of duplicating the code.
2010-10-21 21:35:21 +02:00
Alexandre Julliard
2debb114e3
widl: Add support for some more typelib flags based on the added attributes.
2010-10-21 21:34:33 +02:00
Alexandre Julliard
537773fbf4
widl: Add some more attribute keywords.
2010-10-21 21:23:36 +02:00
Gerald Pfeifer
17ee7300f8
widl: Avoid duplicate assignments in resolve_expression.
2010-09-21 20:16:15 +02:00
Alexandre Julliard
81b8ee863e
makefiles: Add a standard header for all makefiles to replace the common variable initializations.
2010-09-19 12:36:48 +02:00
Austin English
b94bc5604a
widl: Fix compiler warnings on clang.
2010-09-18 13:23:29 +02:00
Alexandre Julliard
d3c4106d6f
widl: Fix declaration order in generated headers.
2010-09-06 17:06:59 +02:00
Jacek Caban
06f3b94584
widl: Define _WIN32 by default.
2010-09-01 14:01:04 +02:00
Alexandre Julliard
c6668089a4
widl: Set the default calling convention at header generation time, not at parsing time.
2010-08-27 13:52:09 +02:00
Alexandre Julliard
7d2869457f
widl: Fix parsing of function calling conventions.
2010-08-27 13:49:56 +02:00
André Hentschel
4bd8d384c4
widl: Add support for amd64-mingw32msvc platform.
2010-05-28 12:31:13 +02:00
Gerald Pfeifer
194fd8744a
widl: Simplify write_struct_tfs and remove an unused variable.
2010-05-03 15:40:58 +02:00
Gerald Pfeifer
ea6590af16
widl: Remove variable size which is not really used from print_phase_basetype.
2010-04-26 06:59:22 -05:00
Alexandre Julliard
1707c1c5cb
widl: Alignment for complex arrays and structs is the buffer alignment, not the memory one.
2010-04-05 20:07:22 +02:00
Alexandre Julliard
cb6a225481
widl: Add a type_memsize_and_alignment function to make it explicit where the alignment is truly needed.
2010-04-05 20:06:22 +02:00
Alexandre Julliard
4d55592540
widl: Move temp file management from wpp to widl.
2010-03-30 15:34:12 +02:00
Alexandre Julliard
a83563aa40
widl: Long constants must be 32-bit on all platforms.
2010-03-26 11:42:28 +01:00
Rob Shearman
0d88ba9e01
widl: Check whether an expression is a constant one before assuming it is a toplevel conformance when writing conformance or variance descriptors.
2010-03-23 17:29:12 +01:00
Rob Shearman
c65d16e9d5
widl: Make use of string_of_type in write_conf_or_var_desc.
...
This allows the code to not have to track the operator type twice.
2010-03-23 17:29:05 +01:00
Rob Shearman
5e0030b4cb
widl: Remove the current_func variable.
...
It's only set, never read from.
2010-03-23 17:28:59 +01:00
Rob Shearman
8a8fff6415
widl: Return a pointer to the correct part of the string from the lexer for WSTRQUOTE tokens.
2010-03-23 17:28:54 +01:00
Rob Shearman
b544014b8e
widl: Fix the calculation of casted integer constant expressions.
2010-03-23 17:28:50 +01:00
Rob Shearman
979bdf28b6
widl: Remove func_t type.
...
It was just a simple indirection to get to a var_t, so just replace
all uses of it with the latter.
2010-03-23 17:28:22 +01:00
Rob Shearman
a3f649f730
widl: Issue an error if an out parameter is a conformant string.
2010-03-23 17:28:14 +01:00
Rob Shearman
361a39fff3
widl: Issue an error if a context handle variable is declared outside of a function.
2010-03-23 17:28:02 +01:00
Rob Shearman
50534b87d0
widl: Fix crash when trying to declare a fixed size array with a size_is attribute.
...
In this case type_array_get_conformance will return NULL. The code
here is actually replacing an existing array with an EXPR_VOID
conformance with the specified conformance, so issue an error if
type_array_get_conformance returns NULL or the conformance has already
been defined.
2010-03-23 17:27:58 +01:00
Rob Shearman
096b3cd090
widl: Fix writing of MaxCount expressions for conformant strings declared using array form.
2010-03-23 17:27:33 +01:00
Rob Shearman
0ec617e01d
widl: Convert assign_stub_out_args to using typegen_detect_type and fix the non-conformant array case.
2010-03-23 17:27:04 +01:00
Rob Shearman
f6b53be0d9
widl: Don't pre-calculate buffer size for arrays that aren't treated as reference pointers.
2010-03-23 17:26:22 +01:00
Alexandre Julliard
fbef7217b9
makefiles: Remove the no longer needed explicit dependencies for bison files.
2010-03-16 13:28:24 +01:00
Alexandre Julliard
bef5645eb1
makefiles: Remove the no longer needed explicit separators for dependencies.
2010-03-16 13:28:19 +01:00
Rob Shearman
eb4100e91c
widl: Remove a FIXME comment in write_function_stubs.
...
Clean valgrind runs of tested types and comparison with MIDL-generated
code suggests that the existing code written in the finally block for
client code is sufficient.
2010-03-16 11:41:30 +01:00
Rob Shearman
fd96c54641
widl: Simplify write_parameter_conf_or_var_exprs by making use of typegen_detect_type.
...
Remove the difficult manual walking of the alias tree and make the
code easier to read and less likely to break if a new type is added.
2010-03-16 11:41:21 +01:00
Rob Shearman
82ab9443b8
widl: Clean up array case in write_remoting_arg.
...
Use a switch statement instead of multiple if statements and
explicitly write out the fixed array cases.
2010-03-16 11:41:14 +01:00
Rob Shearman
0e6ad1fa85
widl: Remove some FIXME comments and replace them with comments explaining why the current behaviour is correct.
2010-03-16 11:40:20 +01:00
Rob Shearman
9aad144755
widl: Fix the writing of expressions in un-typedef'd structures by using write_type_left to write out the type, which adds the "struct ..." if necessary.
...
Also improve the type comparison code to not crash on unnamed
structures (although further changes need to be made to fix the output
in this case) and make it more efficient by first doing a comparison
on the values of the type pointers.
2010-03-16 11:40:10 +01:00
Rob Shearman
df853f8ed2
widl: error_status_t isn't an allowed conformance type.
...
The FC code requires more than 4 bits to represent it and the
correlation descriptor and union formats only allow 4 bits to
represent the type referred to.
2010-03-16 11:36:41 +01:00
Rob Shearman
5b533c1845
widl: Pass current_structure into write_conf_or_var_desc in write_ip_tfs.
...
This allows write_conf_or_var_desc to have the context enabling it to
write out an appropriate correlation descriptor when iid_is is used
from within a structure.
2010-03-16 11:36:36 +01:00
Rob Shearman
1d1d49b6ab
widl: Use typegen_detect_type to determine which types should be written for the pointer description in write_struct_tfs.
...
Otherwise extra pointers for user types could be written.
2010-03-16 11:36:12 +01:00
Rob Shearman
06e7eb5c98
widl: Merge write_typeformatstring_var and write_embedded_types into one function, write_type_tfs.
2010-03-16 11:36:05 +01:00
Rob Shearman
2fd6be54be
widl: Don't use the return value of write_embedded_types to determine whether a type contains pointers or not.
...
It isn't correct in all situations, so type_has_pointer has to be used
anyway so using the return value of write_embedded_types just clutters
the code.
2010-03-16 11:35:36 +01:00
Rob Shearman
484fe1cff3
widl: Write pointers in write_typeformatstring_var using write_pointer_tfs.
...
Avoid duplicating the pointer writing code.
2010-03-16 11:33:12 +01:00
Rob Shearman
7a69fcabac
widl: Simplify write_typeformatstring_var.
...
The check for whether a pointer is the last one is redundant since
typegen_detect_type does a stricter check on the ref type. Replace one
other instance of last_ptr with a more readable equivalent.
2010-03-16 11:33:04 +01:00
Rob Shearman
08126d7483
widl: Make write_pointer_tfs more readable.
...
Change write_pointer_tfs to rely on the detected type of the type to
determine when to write a simple pointer rather than relying on
typestring_offset not being set anywhere else.
2010-03-16 11:32:58 +01:00
Rob Shearman
5d985a8028
widl: Remove some unused functions, definitions and types.
2010-03-16 11:32:53 +01:00
Gerald Pfeifer
844e22093e
widl: Avoid two warnings.
2010-03-01 14:28:49 +01:00
Alexandre Julliard
9644d1dcd7
makefiles: Generate a general catch-all dependency on .tab.h files to replace the manually maintained ones.
2010-02-08 20:58:00 +01:00
Rob Shearman
39b3a57b3d
widl: Fix symbol was not declared and using plain integer as NULL pointer sparse warnings.
2010-01-22 12:17:56 +01:00
Rob Shearman
d9b83e8bb2
widl: Add support for character constants in expressions.
2010-01-19 12:43:31 +01:00
Paul Vriens
caaf027e55
widl: Fix size parameter for xrealloc (Coccinelle).
2010-01-11 11:34:32 -06:00
Rob Shearman
6ed98b16a1
widl: Detect interfaces that inherit from another interface as objects.
2009-11-29 16:37:07 +01:00
Alexandre Julliard
98de3950b1
widl: Use INT64 instead of __int64 in generated headers.
2009-11-21 14:31:46 +01:00
Nicolas Le Cam
ca38b8b951
widl: Don't generate memset calls with zero length parameter.
2009-11-19 11:35:50 +01:00
Francois Gouget
61d0d121d0
widl: Add a trailing '\n' to an error_loc() call.
2009-11-16 12:43:06 +01:00
Rob Shearman
8e750b0ef6
widl: Include range types in constant BufferLength calculation for server function.
2009-11-12 14:18:18 +01:00
Rob Shearman
0228008bb8
widl: Allow pointers, type-qualifiers and other more complicated constructions in sizeof and cast expressions.
2009-11-09 20:42:57 +01:00
Rob Shearman
97d5f3401d
widl: Add support for varargs functions.
2009-11-09 20:42:27 +01:00
Rob Shearman
cdec0fe485
widl: Add support for bit-fields in non-remote structures.
2009-11-09 20:42:00 +01:00
Rob Shearman
4339f9edfb
widl: Implement __int3264 keyword.
2009-11-09 20:36:19 +01:00
Rob Shearman
4383d47ef4
widl: Rename set_type to declare_var.
...
Make it return the var_t object rather than making the callers dig it
out, and make it take the attributes list so that callers don't have
to set it.
2009-11-09 20:35:56 +01:00
Rob Shearman
3885dd778a
widl: Check for [string] attribute being applied when the elements are ranged.
...
The range will not be verified in and misconception could turn into a
security problem.
Move [string] attribute validation from reg_typedefs to set_type.
2009-11-09 20:35:13 +01:00
Rob Shearman
2b3659f326
widl: Implement [range] attribute.
2009-11-09 20:34:17 +01:00
Rob Shearman
c367624534
widl: Enhance the IDL grammar to support unnamed arguments to functions.
2009-11-09 20:34:11 +01:00
Rob Shearman
d59ff2007d
Revert "widl: A structure that contains an embedded interface ptr in an array is a BOGUS_STRUCT.".
...
This reverts commit e4e21193c0
.
The IDBProperties test shows that this special case is not needed to
for these types to be marshalled correctly.
2009-11-09 20:33:12 +01:00
Huw Davies
ab32b3df4d
widl: Add support for parsing the annotation attribute.
2009-10-26 14:05:29 +01:00
Alexandre Julliard
d527ca3382
widl: Fix the prototype of generated exception filters.
2009-10-22 13:04:09 +02:00
Alexandre Julliard
c77d49b4c3
widl: Write a proper type description for pointer array elements.
2009-10-16 20:56:41 +02:00
Alexandre Julliard
8cc12dc339
widl: Arrays of pointers are always complex on 64-bit.
2009-10-16 20:56:15 +02:00
Alexandre Julliard
942ec30a4d
widl: Use write_pointer_description_offsets() to output no_repeat descriptors for consistency.
2009-10-16 15:32:22 +02:00
Alexandre Julliard
916461d926
widl: Output a pointer description for arrays declared as pointers.
2009-10-16 15:32:05 +02:00
Alexandre Julliard
a4e22d4928
tools: Build all the tools with -D__WINESRC__.
2009-10-05 14:55:25 +02:00
André Hentschel
1d0365da95
widl: Add ARM support.
2009-09-28 13:31:32 +02:00
Henri Verbeet
a7b0a1cd4a
widl: Generate proper prototypes for function declarations without arguments.
2009-09-09 12:06:51 +02:00
Huw Davies
b524c55021
widl: Add separate --win32-align and --win64-align options.
2009-08-25 14:56:57 +02:00
Huw Davies
a376b86dfe
widl: The alignment written for USER_MARSHAL types is the wire-type alignment.
2009-08-21 15:08:49 +02:00
Huw Davies
e4e21193c0
widl: A structure that contains an embedded interface ptr in an array is a BOGUS_STRUCT.
2009-08-21 14:27:59 +02:00
Huw Davies
bbb3a85c51
widl: Add a structure packing command line option.
2009-08-17 16:48:10 +02:00
Huw Davies
69091ef569
widl: Store the pointer description in the type rather than base type so that it gets re-written when the type is re-written.
2009-08-04 13:50:07 +02:00
Alexandre Julliard
f21eab1101
widl: Take into account the alignment of conformant arrays to pad a structure.
2009-07-13 09:23:06 +02:00
Alexandre Julliard
d375d25d65
widl: An ENUM16 is 32-bit wide in memory.
2009-07-03 13:06:14 +02:00
Alexandre Julliard
f6d2b49145
widl: Take into account structure field alignment when computing offsets.
2009-07-03 13:05:52 +02:00
Alexandre Julliard
064775c9a0
widl: Struct alignment should be the largest alignment of all the struct members.
2009-07-03 13:05:52 +02:00
Alexandre Julliard
fc7681a8ce
widl: Skip the existing correlation descriptor on unencapsulated unions when generating a different one.
2009-07-03 13:05:52 +02:00
Alexandre Julliard
c152b4e7d1
include: Add a target address for unwinding for platforms that need it.
2009-06-18 15:17:26 +02:00
Huw Davies
a6181cb3b2
tools/widl: Fix behaviour when both lcid and retval arguments are present.
2009-06-17 17:23:21 +02:00
Huw Davies
7857219ac1
widl: Fix typelib lcid fields to match those produced by midl.
2009-06-09 17:01:15 +02:00
Alexandre Julliard
d88f9e3cd9
widl: Don't make the proxy virtual tables const if they use delegation.
2009-06-09 17:01:07 +02:00
Huw Davies
81b2c9eb85
widl: Add support for the lcid parameter attribute.
2009-06-08 15:39:14 +02:00
Marcus Meissner
6a9e096da9
widl: ifdef some not always present LANG_*.
2009-06-08 13:19:06 +02:00
Alexandre Julliard
f914b57277
widl: Add support for standard target options to allow building the right typelib kind when cross-compiling.
2009-05-21 16:17:50 +02:00
Alexandre Julliard
b3a0833972
widl: Add support for writing 64-bit format typelibs.
2009-05-21 16:17:50 +02:00
Rob Shearman
0a8e3c39a1
widl: Include the version number in the __WIDL__ preprocessor definition.
2009-03-26 16:10:41 +01:00
Rob Shearman
d38cc9acbc
widl: Initialise ref pointers to basic and enum types to 0 in generated server code.
...
Previously it was only done for pointers.
2009-03-23 14:23:19 +01:00
Rob Shearman
48a5db074b
widl: Output correct code for freeing of conformant-sized and non-conformant strings.
...
_StubMsg.pfnFree should be used instead of NdrPointerFree for
conformant-sized strings since the buffer will have been allocated
using NdrAllocate.
Non-conformant strings do not need any freeing since they use a buffer
that is allocated on the stack.
2009-03-23 14:22:41 +01:00
Rob Shearman
12b23fa220
widl: Check the attributes applied to function declarations.
2009-03-23 14:22:23 +01:00
Michael Stefaniuc
efbb4ebf3e
widl: Output "LONG" instead of "long" for a 32bit integer.
...
long is always 32bit in IDL files but that's not true in C.
2009-03-13 11:15:21 +01:00
Rob Shearman
8cdda26897
widl: Returned pointers should default to being unique, not reference.
2009-03-11 10:29:20 +01:00
Rob Shearman
728a738a82
widl: Move type_basic_get_fc to typegen.c and rename it to get_basic_fc.
...
Move to using type_basic_get_type in other files where appropriate.
2009-03-09 12:14:35 +01:00
Rob Shearman
630b48941f
widl: Fix a memory leak in the server/stub code when unmarshalling pointers to strings at the top level.
...
It is necessary for the first pointer to have an offset to a second
pointer instead of directly to the string type, since the second
pointer frees the memory for the string.
2009-03-09 12:13:53 +01:00
Rob Shearman
f170f9b5d5
widl: Output server code for freeing returned types.
2009-03-09 12:12:57 +01:00
Rob Shearman
23673ca373
widl: Determine pointer fc at generation time instead of at parse time.
...
Avoid changing the details of a pointer once created.
Properly determine the pointer type for arrays.
2009-03-09 12:09:39 +01:00
Rob Shearman
f8e36ab4ab
widl: Consolidate non-simple pointer writing into one function.
2009-03-09 12:08:57 +01:00
Rob Shearman
a8238dd142
widl: Pass var attrs into write_no_repeat_pointer_descriptions and use them for the string check.
2009-03-05 18:39:02 +01:00
Rob Shearman
9d878f220b
widl: Add coclass and module types to the global namespace.
2009-03-05 18:39:02 +01:00
Rob Shearman
13c3967522
widl: Move type_new_enum, type_new_struct, type_new_encapsulated_union and type_new_unencapsulated_union to typetree.c.
2009-03-05 18:39:02 +01:00
Rob Shearman
7c711d0736
widl: Allow enum and union tags to be used without being defined.
2009-03-05 18:39:02 +01:00
Rob Shearman
4866026d7f
widl: Move the pointer referent, array element, function return type and interface inheritance properties from type_t to details structures for the appropriate types.
2009-03-05 18:39:02 +01:00
Rob Shearman
277e0617d5
widl: Store the abstract identifier of the type in type object instead of an NDR format character.
2009-03-05 18:39:02 +01:00
Rob Shearman
b7dd838136
widl: Remove the single keyword and type.
...
It isn't valid in MIDL or the FreeDCE IDL compiler, nor does it appear
in the DCE/RPC or C99 specs.
2009-03-05 18:39:02 +01:00
Rob Shearman
319a7a102e
widl: Implement a more abstract way of representing basic types.
2009-03-05 18:38:45 +01:00
Rob Shearman
0be9d2595d
widl: Fix get_explicit_generic_handle_type and is_context_handle to detect attributes set on typedefs other than the first.
...
Change get_explicit_handle_var to use accessors for the type structure.
2009-03-05 16:34:00 +01:00
Rob Shearman
7e08ff27c2
widl: Move declarray property to array_details.
...
Invert the property since an array being declared as a pointer is more
surprising than an array being declared as an array.
Provide an accessor, type_array_is_decl_as_ptr.
2009-03-05 16:34:00 +01:00
Rob Shearman
f27261e525
widl: Only classify top-level pointers as ref pointers if they don't have any other pointer attributes.
2009-02-25 11:54:31 +01:00
Rob Shearman
a93f531c21
widl: Ignore pointer attributes applied to interface pointers.
...
Print a warning if a pointer attribute is specified since the
generated code won't do what the developer expects.
2009-02-25 11:54:26 +01:00
Rob Shearman
2c6e611c8a
widl: Add typegen_detect_type and use it.
...
Add typegen_detect_type for detecting types useful during
client/server/proxy code generation.
2009-02-23 15:25:57 +01:00
Rob Shearman
af0800729b
widl: Use type_get_type to determine the types of types during C client, server and proxy code generation.
2009-02-23 15:25:53 +01:00
Rob Shearman
28a2c06cf7
widl: Use type_get_type to determine the types of types during typelib generation.
2009-02-23 15:25:47 +01:00
Rob Shearman
0f7f7922ba
widl: Use type_get_type to determine the types of types during parsing and checking.
2009-02-23 15:25:44 +01:00