X-Git-Url: https://ecere.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=compiler%2Fbootstrap%2Flibec%2Fbootstrap%2Fpass16.c;h=6601c5415352778a883cd1dc87e99b373df98e37;hb=1a07930ba10d16470ee0a23bcf343f342e764755;hp=33b066d8cbd1304cbbba6d1270436b88d050a1a2;hpb=62862b18210cb4255babb035800dadba22d5b86b;p=sdk diff --git a/compiler/bootstrap/libec/bootstrap/pass16.c b/compiler/bootstrap/libec/bootstrap/pass16.c index 33b066d..6601c54 100644 --- a/compiler/bootstrap/libec/bootstrap/pass16.c +++ b/compiler/bootstrap/libec/bootstrap/pass16.c @@ -2954,8 +2954,8 @@ ProcessInstMembers(inst, (((void *)0)), &list, 0); if(list.first) { struct Expression * e = list.first; +struct Type * destType = exp->destType; -FreeType(exp->destType); *exp = *e; __ecereMethod___ecereNameSpace__ecere__sys__OldList_Remove(&list, e); ((e ? __extension__ ({ @@ -2963,6 +2963,10 @@ void * __ecerePtrToDelete = (e); __ecereClass_Expression->Destructor ? __ecereClass_Expression->Destructor((void *)__ecerePtrToDelete) : 0, __ecereNameSpace__ecere__com__eSystem_Delete(__ecerePtrToDelete); }) : 0), e = 0); +if(!exp->destType) +exp->destType = destType; +else +FreeType(destType); exp->expType = expType; exp->prev = prev; exp->next = next;