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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user