mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-03 13:40:11 +01:00
genxml: Fix decoding of array groups.
If you had a group as the first element of a struct, i.e.
<struct name="3DSTATE_CONSTANT_BODY" length="10">
<group count="4" start="0" size="16">
<field name="ReadLength" start="0" end="15" type="uint"/>
</group>
...
</struct>
we would get a group_offset of 0, causing create_field() to think the
field wasn't in a group, and fail to offset forward for successive array
elements. So we'd mark all the array elements as offset 0.
Using ctx->group->elem_size is a better check for "are we in a group?".
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
parent
d1b949282f
commit
73c21e69d0
1 changed files with 1 additions and 1 deletions
|
|
@ -339,7 +339,7 @@ create_field(struct parser_context *ctx, const char **atts)
|
|||
field->start = ctx->group->group_offset+strtoul(atts[i + 1], &p, 0);
|
||||
else if (strcmp(atts[i], "end") == 0) {
|
||||
field->end = ctx->group->group_offset+strtoul(atts[i + 1], &p, 0);
|
||||
if (ctx->group->group_offset) {
|
||||
if (ctx->group->elem_size > 0) {
|
||||
ctx->group->group_offset = field->end+1;
|
||||
if (ctx->group->variable)
|
||||
ctx->group->variable_offset = ctx->group->group_offset;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue