Clean up omit_ids() not to set an extra element in idgap[]
This commit is contained in:
parent
b7594e6570
commit
513352f50c
1 changed files with 6 additions and 7 deletions
|
@ -72,7 +72,7 @@ static void *cur_obj; /* The object being read into */
|
||||||
static int cur_id; /* and its index in the table */
|
static int cur_id; /* and its index in the table */
|
||||||
static int old_nelem;
|
static int old_nelem;
|
||||||
static unsigned char *idgap; /* idgap && idgap[ID] iff part#0 lacks ID */
|
static unsigned char *idgap; /* idgap && idgap[ID] iff part#0 lacks ID */
|
||||||
static int idgap_max; /* FIXME */
|
static int idgap_len; /* #elements in idgap[] */
|
||||||
|
|
||||||
static int human; /* Reading human-readable syntax? */
|
static int human; /* Reading human-readable syntax? */
|
||||||
static int ellipsis; /* Header ended with ...? */
|
static int ellipsis; /* Header ended with ...? */
|
||||||
|
@ -124,7 +124,7 @@ tbl_start(int type)
|
||||||
cur_obj = NULL;
|
cur_obj = NULL;
|
||||||
old_nelem = type == EF_BAD ? 0 : ef_nelem(type);
|
old_nelem = type == EF_BAD ? 0 : ef_nelem(type);
|
||||||
idgap = NULL;
|
idgap = NULL;
|
||||||
idgap_max = 0;
|
idgap_len = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* End the current table. */
|
/* End the current table. */
|
||||||
|
@ -186,15 +186,14 @@ omit_ids(int id1, int id2)
|
||||||
if (id1 >= id2)
|
if (id1 >= id2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
idgap = realloc(idgap, (id2 + 1) * sizeof(*idgap));
|
idgap = realloc(idgap, id2 * sizeof(*idgap));
|
||||||
for (i = idgap_max; i < id1; i++)
|
for (i = idgap_len; i < id1; i++)
|
||||||
idgap[i] = 0;
|
idgap[i] = 0;
|
||||||
for (i = id1; i < id2; i++) {
|
for (i = id1; i < id2; i++) {
|
||||||
ef_blank(cur_type, i, ef_ptr(cur_type, i));
|
ef_blank(cur_type, i, ef_ptr(cur_type, i));
|
||||||
idgap[i] = 1;
|
idgap[i] = 1;
|
||||||
}
|
}
|
||||||
idgap[id2] = 0;
|
idgap_len = id2;
|
||||||
idgap_max = id2;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -206,7 +205,7 @@ expected_id(int id1, int id2)
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = id1; i < id2; i++) {
|
for (i = id1; i < id2; i++) {
|
||||||
if (i >= idgap_max || !idgap[i])
|
if (i >= idgap_len || !idgap[i])
|
||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
return -1;
|
return -1;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue