Module: wine Branch: master Commit: b57a322b0268e6904d23b65cb2cd65045bed021d URL: http://source.winehq.org/git/wine.git/?a=commit;h=b57a322b0268e6904d23b65cb2...
Author: Rob Shearman rob@codeweavers.com Date: Fri Dec 21 09:41:40 2007 +0000
widl: Tweak the rules for when to call pfnFree for arrays.
Varying arrays that aren't unmarshalled shouldn't be freed, but conformant arrays that aren't unmarshalled should.
---
tools/widl/typegen.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index b0edc29..d245c97 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -2765,9 +2765,10 @@ static void write_remoting_arg(FILE *file, int indent, const func_t *func, { /* these are all unmarshalled by pointing into the buffer on the * server side */ - if (type->type != RPC_FC_SMFARRAY && - type->type != RPC_FC_LGFARRAY && - type->type != RPC_FC_CARRAY) + if (type->type == RPC_FC_BOGUS_ARRAY || + type->type == RPC_FC_CVARRAY || + (type->type == RPC_FC_SMVARRAY && type->type == RPC_FC_LGVARRAY && in_attr) || + (type->type == RPC_FC_CARRAY && type->type == RPC_FC_CARRAY && !in_attr)) { print_file(file, indent, "if (%s)\n", var->name); indent++;