mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-17 22:10:21 +01:00
intel/gen_decoder: Fix parsing of small genxml file.
When using gen_spec_load_from path, only abort decoding if the read length is 0. Previously, we were aborting if finding an EOF, even if something was read from the file. Also only kill the decoded file if no commands or structs were found, and print a message in such case. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
This commit is contained in:
parent
85996567f5
commit
1f2b22a6bd
1 changed files with 6 additions and 2 deletions
|
|
@ -697,7 +697,7 @@ gen_spec_load_from_path(const struct gen_device_info *devinfo,
|
|||
gen_spec_destroy(ctx.spec);
|
||||
ctx.spec = NULL;
|
||||
goto end;
|
||||
} else if (feof(input))
|
||||
} else if (len == 0 && feof(input))
|
||||
goto end;
|
||||
|
||||
if (XML_ParseBuffer(ctx.parser, len, len == 0) == 0) {
|
||||
|
|
@ -719,7 +719,11 @@ gen_spec_load_from_path(const struct gen_device_info *devinfo,
|
|||
free(filename);
|
||||
|
||||
/* free ctx.spec if genxml is empty */
|
||||
if (ctx.spec && _mesa_hash_table_num_entries(ctx.spec->commands) == 0) {
|
||||
if (ctx.spec &&
|
||||
_mesa_hash_table_num_entries(ctx.spec->commands) == 0 &&
|
||||
_mesa_hash_table_num_entries(ctx.spec->structs) == 0) {
|
||||
fprintf(stderr,
|
||||
"Error parsing XML: empty spec.\n");
|
||||
gen_spec_destroy(ctx.spec);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue