aubinator: Don't skip the first field in each subgroup

The previous iteration algorithm would advance the field pointer right
after we advance the group.  This meant that you would end up with
skipping the first field of the group.  In the common case, where the
only field is a struct (e.g. 3DSTATE_VERTEX_BUFFERS), it would get
skipped entirely.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
Jason Ekstrand
2017-11-11 21:43:46 -08:00
parent 74a9e51696
commit 93200ea26d
+3 -2
View File
@@ -824,14 +824,15 @@ iter_advance_group(struct gen_field_iterator *iter)
static bool
iter_advance_field(struct gen_field_iterator *iter)
{
while (!iter_more_fields(iter)) {
if (iter_more_fields(iter)) {
iter->field = iter->field->next;
} else {
if (!iter_more_groups(iter))
return false;
iter_advance_group(iter);
}
iter->field = iter->field->next;
if (iter->field->name)
strncpy(iter->name, iter->field->name, sizeof(iter->name));
else