From a3f1aaa41f8e99f9bbea7737cab90bc563a210ca Mon Sep 17 00:00:00 2001 From: eck Date: Tue, 10 Apr 1990 10:14:46 +0000 Subject: [PATCH] don't free prototype lists, they might be part of a typedef --- lang/cem/cemcom.ansi/proto.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/lang/cem/cemcom.ansi/proto.c b/lang/cem/cemcom.ansi/proto.c index 2f706a8bd..44c545bcd 100644 --- a/lang/cem/cemcom.ansi/proto.c +++ b/lang/cem/cemcom.ansi/proto.c @@ -290,7 +290,6 @@ update_proto(tp, otp) pl = tp->tp_proto; opl = otp->tp_proto; - if (pl == opl) return; if (pl && opl) { /* both have prototypes */ while (pl && opl) { @@ -298,7 +297,9 @@ update_proto(tp, otp) pl = pl->next; opl = opl->next; } - free_proto_list(otp->tp_proto); + /* Do not free the old prototype list. It might be part of + * a typedef. + */ otp->tp_proto = tp->tp_proto; } else if (opl) { /* old decl has type */ @@ -309,16 +310,6 @@ update_proto(tp, otp) update_proto(tp->tp_up, otp->tp_up); } -free_proto_list(pl) - register struct proto *pl; -{ - while (pl) { - register struct proto *tmp = pl->next; - free_proto(pl); - pl = tmp; - } -} - /* struct/union and enum tags can be declared inside prototypes * remove them from the symbol-table */