Fixed dumping of structs without indicators.

This commit is contained in:
Michael Meskes 2001-12-04 12:33:15 +00:00
parent b7579d62ce
commit 388008cdd7
2 changed files with 17 additions and 5 deletions

View File

@ -1150,5 +1150,9 @@ Fri Nov 2 16:16:25 CET 2001
Wed Nov 14 11:50:27 CET 2001
- Added several patches by Christof Petig <christof.petig@wtal.de>.
Tue Dec 4 13:30:32 CET 2001
- Fixed dumping of structures without indicators.
- Set ecpg version to 2.9.0.
- Set library version to 3.3.0.

View File

@ -2,6 +2,8 @@
#include "extern.h"
struct ECPGstruct_member struct_no_indicator = {"no_indicator", &ecpg_no_indicator, NULL};
/* malloc + error check */
void *
mm_alloc(size_t size)
@ -374,15 +376,21 @@ ECPGdump_a_struct(FILE *o, const char *name, const char *ind_name, long arrsiz,
sprintf(pbuf, "%s%s.", prefix ? prefix : "", name);
prefix = pbuf;
sprintf(ind_pbuf, "%s%s.", ind_prefix ? ind_prefix : "", ind_name);
ind_prefix = ind_pbuf;
if (ind_typ != NULL)
if (ind_typ == &ecpg_no_indicator)
{
ind_p = &struct_no_indicator;
}
else if (ind_typ != NULL)
{
sprintf(ind_pbuf, "%s%s.", ind_prefix ? ind_prefix : "", ind_name);
ind_prefix = ind_pbuf;
ind_p = ind_typ->u.members;
}
for (p = typ->u.members; p; p = p->next)
{
ECPGdump_a_type(o, p->name, p->typ, (ind_p != NULL) ? ind_p->name : NULL, (ind_p != NULL) ? ind_p->typ : NULL, prefix, ind_prefix);
if (ind_p != NULL)
if (ind_p != NULL && ind_p != &struct_no_indicator)
ind_p = ind_p->next;
}
}