375 Commits

Author SHA1 Message Date
Eric Kohl
dd57b45aaa widl: The 'string' attribute can also be used with unsigned characters. 2006-02-03 18:47:06 +01:00
Alexandre Julliard
a488901256 widl: Some cosmetic fixes in generated code. 2006-02-02 13:23:28 +01:00
Alexandre Julliard
0f2a642d70 widl: Make sure the token variables are always initialized properly. 2006-02-02 13:22:47 +01:00
Robert Shearman
0d4e1bc336 widl: Fix a SEGV when using arrays declared using a pointer and
attributes, instead of array indices (reported by Eric Kohl).
2006-02-01 12:29:23 +01:00
Robert Shearman
c418226093 widl: Changes to output for better debugability.
Write the offset and the absolute address for referenced types.
Write the current offset out when writing a pointer type.
2006-01-31 18:08:24 +01:00
Robert Shearman
1478ac85a9 widl: Clean up conformant struct handling.
Make the writing of conformant structures take advantage of the new
type format string offset handling.
2006-01-31 18:08:03 +01:00
Robert Shearman
5764d5518d widl: Fix the writing of arrays with size specified in the array
expression instead of the size_is expression.
2006-01-31 18:07:45 +01:00
Robert Shearman
06ab21b668 widl: Improve the current type offset passing.
Change the functions to take the current type offset and return the
start of the type written.
2006-01-31 18:07:20 +01:00
Robert Shearman
ac5a4393d5 widl: The stack/structure offset in correlation descriptors should be a short. 2006-01-31 18:06:53 +01:00
Robert Shearman
513996fde4 widl: Do constant folding for the sizeof operator on simple types. 2006-01-31 18:06:25 +01:00
Robert Shearman
0a2c5b73fd widl: Support client/server generation for explicit_handle interfaces
(based on a patch by Eric Kohl).
2006-01-31 18:06:17 +01:00
Robert Shearman
c08e00a9ec widl: Implement constant conformance. 2006-01-31 18:05:43 +01:00
Robert Shearman
35d1347cfa widl: Fix the type offset used in marshaling/unmarshaling.
Make a copy of type_offset so that it only gets incremented once per
function, instead of twice.
2006-01-31 18:05:33 +01:00
Robert Shearman
2330d73f4a widl: Implement the writing of defaultvalue constants for enum values. 2006-01-31 18:04:20 +01:00
Robert Shearman
cf1ccfb712 widl: Use a macro to write out FC types, along with the current offset
which is useful for debugging.
2006-01-31 12:25:54 +01:00
Robert Shearman
2ee6f722e0 widl: Pass the current type format string offset through all type
writing functions.
2006-01-31 12:24:54 +01:00
Robert Shearman
a6909fa5e8 widl: Eliminate redundant callback routines.
Add a function for comparing expressions and use it to eliminate
redundant callback functions.
2006-01-31 12:24:11 +01:00
Robert Shearman
b59c995c89 widl: Implement callback conformance. 2006-01-27 12:53:32 +01:00
Robert Shearman
2d4edc3b3d widl: Generate type format strings for conformant varying arrays. 2006-01-24 11:14:59 +01:00
Robert Shearman
2eedb11f22 widl: Fix detection of varying arrays.
Correctly identify structures containing varying arrays as conformant
varying structures.
2006-01-24 11:14:38 +01:00
Robert Shearman
b4fb36c363 widl: Fix detection of conformant varying structs.
Rename has_conformant_array to has_conformance, add a new variable
has_variance and map has_conformant_string to has_conformance and
has_variance.
A conformant varying struct should be returned if just variance is
present and even if no pointers are present.
2006-01-24 11:14:15 +01:00
Robert Shearman
9f76c0cfee widl: Support generation of conformant structure type strings. 2006-01-24 11:13:49 +01:00
Robert Shearman
90032b2da6 widl: Conformant arrays have a size of 0.
Conformant arrays should cause a size of 0 to be returned from
type_memsize.
2006-01-24 11:13:30 +01:00
Robert Shearman
73023890c5 widl: Support correlation descriptors in structures. 2006-01-24 11:12:54 +01:00
Robert Shearman
e9c771f98b widl: Error if an array is in the middle of a structure.
Fix detection of conformant arrays and output an error if the array
isn't at the end of the structure.
2006-01-24 11:12:20 +01:00
Robert Shearman
362d42e082 widl: Fix the detection of conformant and pointer structs. 2006-01-24 11:11:56 +01:00
Robert Shearman
8f1ed85891 widl: Simple structs and complex pointers.
Write out type format string for simple structs and for pointers to
non-simple types.
2006-01-24 11:11:29 +01:00
Robert Shearman
584c89bd8f widl: Add framework for generating struct and union type format strings. 2006-01-24 11:10:59 +01:00
Robert Shearman
263a75d47a widl: Support different types of simple pointers.
Support pointer types in unmarshall_arguments.
2006-01-24 11:10:42 +01:00
Robert Shearman
69551fdf74 widl: Generate NdrNonConformatString* calls for non-conformant string types. 2006-01-24 11:10:08 +01:00
Robert Shearman
a6c6e1d032 widl: Add functions for detecting array and string types.
Add functions for detecting array and string types and use these in
both writing type format strings and when marshalling and
unmarshalling parameters.
2006-01-24 11:09:53 +01:00
Robert Shearman
793bc8de69 widl: Support some more complicated conformance / variance expressions. 2006-01-24 11:09:03 +01:00
Robert Shearman
4a7c04791d widl: Start implementing writing of conformance/variance descriptors. 2006-01-24 11:08:20 +01:00
Robert Shearman
21a90850cb widl: Strings.
Write out type format strings for string types.
2006-01-24 11:07:39 +01:00
Robert Shearman
d07589e32f widl: Arrays.
Write out type format strings for arrays, except for the missing
generic functionality of conformance and variance descriptors.
2006-01-24 11:07:13 +01:00
Robert Shearman
fce01e6920 widl: Simplify write_typeformatstring_type.
Simplify handling of types in write_typeformatstring_type by only
writing non-pointer types out when ptr_level is 0. Add stubs for
functions that will write out the type format string for strings and
arrays.
2006-01-24 11:06:32 +01:00
Robert Shearman
479be2e6af widl: Don't use recursion for write_typeformatstring_type.
Since a var_t can now be passed in, rename to
write_typeformatstring_var. Simplifies the code.
2006-01-24 11:06:10 +01:00
Robert Shearman
6d76ad87c6 widl: Don't use recursion to implement write_procformatstring_type.
Renamed to write_procformatstring_var now since we can pass a var_t in
again. This results in simpler code.
2006-01-24 11:05:51 +01:00
Robert Shearman
ba0f0761f0 widl: Generate static sizing information for fixed size structs.
Don't generate FC_*_BASETYPE proc and type format strings for
non-basetype fields/params.
2006-01-06 21:06:24 +01:00
Alexandre Julliard
1e96455094 Remove YY_NO defines that cause warnings. 2006-01-05 12:20:05 +01:00
Alexandre Julliard
88991e2a4e Support building flex files without debug support. 2006-01-03 15:11:46 +01:00
Alexandre Julliard
0ae2c69c7a Added some flex options to avoid compiler warnings.
Moved options from the Makefile into the source.
2006-01-03 12:16:05 +01:00
Robert Shearman
8494f57d17 widl: Output sizing information for arrays in the generated marshaling code. 2005-12-31 13:19:13 +01:00
Robert Shearman
ae94c2207f widl: Export the bracket adding functionality of do_write_expr outside
of header.c.
2005-12-31 13:18:49 +01:00
Robert Shearman
f56737579e widl: Fix merge conflict. 2005-12-26 13:22:46 +01:00
Robert Shearman
93775adf75 widl: Follow type references in procformat and typeformat string generation. 2005-12-26 13:22:32 +01:00
Robert Shearman
7fb311b49f widl: Handle marshaling and unmarshaling structures. 2005-12-26 13:22:05 +01:00
Robert Shearman
4acabfd719 widl: Out parameters.
Marshall and unmarshall out parameters for servers and clients
respectively.
Write out array components for declared local variables in generated
server code.
2005-12-26 13:21:38 +01:00
Robert Shearman
e0dd7b6ed8 widl: Remove some duplication.
Remove some duplicated code by calling an improved
get_required_buffer_size.
Add some more newlines in the generated code to separate separate
stages.
Calculate the buffer size of [out] arguments in generated server code.
Fix the direction passed into unmarshall_arguments.
2005-12-26 13:20:59 +01:00
Robert Shearman
7e5cf94f13 widl: Pass a state into marshall_arguments and unmarshall_arguments to
decide which parameters should be considered based on their direction.
2005-12-26 13:14:28 +01:00