Jacek Caban
88987c0a95
widl: Added support for namespaced enums.
2015-08-07 23:50:48 +09:00
Jarkko Korpi
abf4d5910f
widl: Increase buffer size in typegen.c.
2015-07-14 14:57:30 +09:00
Dmitry Timoshkov
1b6b04e3a8
widl: Correct the condition when to use new code path which avoids writing negative offsets in the pointer description.
2014-04-03 11:11:01 +02:00
Dmitry Timoshkov
a333c6584d
widl: Add support for an array of strings to write_string_tfs.
2014-04-02 15:46:49 +02:00
Dmitry Timoshkov
1dbcdee326
widl: Don't call write_embedded_types if an array element is a string.
2014-04-02 15:46:47 +02:00
Dmitry Timoshkov
bde38bebe9
widl: Avoid generating negative offsets for conformant arrays of strings.
2014-04-02 15:46:45 +02:00
Dmitry Timoshkov
1845d10c3e
widl: Pass type attributes from write_array_tfs to write_array_element_type.
...
This allows to differentiate strings and write appropriate rpc type
(FC_C_C[W]STRING instead of FC_[W]CHAR).
2014-04-02 15:46:43 +02:00
Dmitry Timoshkov
eb54b5b4df
widl: Pass type attributes from write_array_tfs to write_pointer_description.
...
This allows to differentiate strings and write appropriate rpc type
(FC_C_C[W]STRING instead of FC_[W]CHAR).
2014-04-02 15:46:41 +02:00
Dmitry Timoshkov
e6d585a6b2
widl: Move is_void(), is_declptr() and is_conformant_array() to header.h and make them inline.
2014-03-20 10:44:32 +01:00
Dmitry Timoshkov
ae843427ed
widl: Unify indentation of comments.
2014-03-19 11:36:33 +01:00
Alexandre Julliard
7ca08fee55
widl: Avoid short printf formats with int variables.
2013-06-17 13:34:40 +02:00
Austin English
554a2ccb11
widl: write_array_element_type shouldn't return a value.
2012-12-20 12:01:02 +01:00
Michael Stefaniuc
2c97f3fcb5
widl: Avoid FALSE:TRUE conditional expressions.
2012-08-15 12:15:13 +02: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
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
Alexandre Julliard
8e15db40a8
widl: Don't output stubs for interfaces included in a typelib.
2011-09-06 15:42:16 +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
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
c70ef62958
widl: Make output unique pointers into object pointers in object interfaces.
2011-06-14 12:24:00 +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
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
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
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
01b44d1317
widl: Generate thunks for callas functions using interpreted stubs.
2011-06-07 12:11:50 +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
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
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
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
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
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
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
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
Austin English
b94bc5604a
widl: Fix compiler warnings on clang.
2010-09-18 13:23:29 +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
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
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
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
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
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
Nicolas Le Cam
ca38b8b951
widl: Don't generate memset calls with zero length parameter.
2009-11-19 11:35:50 +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
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
2b3659f326
widl: Implement [range] attribute.
2009-11-09 20:34:17 +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
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
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