mirror of
https://github.com/reactos/wine.git
synced 2024-11-25 04:39:45 +00:00
widl: Output sizing information for arrays in the generated marshaling code.
This commit is contained in:
parent
ae94c2207f
commit
8494f57d17
@ -448,11 +448,31 @@ void marshall_arguments(FILE *file, int indent, func_t *func,
|
||||
if (!has_length && !has_size)
|
||||
array_type = "FixedArray";
|
||||
else if (has_length && !has_size)
|
||||
{
|
||||
print_file(file, indent, "_StubMsg.Offset = (unsigned long)0;\n"); /* FIXME */
|
||||
print_file(file, indent, "_StubMsg.ActualCount = (unsigned long)");
|
||||
write_expr(file, length_is, 1);
|
||||
fprintf(file, ";\n\n");
|
||||
array_type = "VaryingArray";
|
||||
}
|
||||
else if (!has_length && has_size)
|
||||
{
|
||||
print_file(file, indent, "_StubMsg.MaxCount = (unsigned long)");
|
||||
write_expr(file, size_is ? size_is : var->array, 1);
|
||||
fprintf(file, ";\n\n");
|
||||
array_type = "ConformantArray";
|
||||
}
|
||||
else
|
||||
{
|
||||
print_file(file, indent, "_StubMsg.MaxCount = (unsigned long)");
|
||||
write_expr(file, size_is ? size_is : var->array, 1);
|
||||
fprintf(file, ";\n");
|
||||
print_file(file, indent, "_StubMsg.Offset = (unsigned long)0;\n"); /* FIXME */
|
||||
print_file(file, indent, "_StubMsg.ActualCount = (unsigned long)");
|
||||
write_expr(file, length_is, 1);
|
||||
fprintf(file, ";\n\n");
|
||||
array_type = "ConformantVaryingArray";
|
||||
}
|
||||
}
|
||||
|
||||
print_file(file, indent,
|
||||
|
Loading…
Reference in New Issue
Block a user