On Mon, Jun 23, 2008 at 10:29:11PM +0100, Rob Shearman wrote:
diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 1f8695a..84115fd 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -809,7 +809,9 @@ size_t type_memsize(const type_t *t, unsigned int *align) { size_t size = 0;
- if (t->declarray && is_conformant_array(t))
- if (t->kind == TKIND_ALIAS)
size = type_memsize(t->orig, align);
- else if (t->declarray && is_conformant_array(t)) { type_memsize(t->ref, align); size = 0;
What type of thing is this needed for? A typedef'd type should have all the same fields as the original except for the attributes, so for most cases in type_memsize it shouldn't be necessary to check whether the type is an alias. For anything that needs to check attributes, I would think it would be better to fix the predicates (such as is_conformant_array, etc.) if they do not detect that correctly 100% of the time.