mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-06 10:00:30 +01:00
freedreno/rnn: also look for .xml.gz
libxml2 can load gzip compressed files, so lets look for these too. This will be useful for installing the register database so that an installed cffdump/crashdec can use them. But it isn't too useful to be able to edit the installed register database, so we can gzip them to use less disk space. Signed-off-by: Rob Clark <robdclark@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6154>
This commit is contained in:
parent
8efdd388e0
commit
bf425b7e51
1 changed files with 18 additions and 13 deletions
|
|
@ -38,20 +38,25 @@ FILE *find_in_path(const char *name, const char *path, char **pfullname) {
|
|||
plen = strlen(path);
|
||||
}
|
||||
if (plen) {
|
||||
char *fullname = malloc(strlen(name) + plen + 2);
|
||||
strncpy(fullname, path, plen);
|
||||
fullname[plen] = '/';
|
||||
fullname[plen+1] = 0;
|
||||
strcat(fullname, name);
|
||||
FILE *file = fopen(fullname, "r");
|
||||
if (file) {
|
||||
if (pfullname)
|
||||
*pfullname = fullname;
|
||||
else
|
||||
free(fullname);
|
||||
return file;
|
||||
/* also look for .gz compressed xml: */
|
||||
const char *exts[] = { "", ".gz" };
|
||||
for (int i = 0; i < ARRAY_SIZE(exts); i++) {
|
||||
char *fullname;
|
||||
|
||||
int ret = asprintf(&fullname, "%.*s/%s%s", (int)plen, path, name, exts[i]);
|
||||
if (ret < 0)
|
||||
return NULL;
|
||||
|
||||
FILE *file = fopen(fullname, "r");
|
||||
if (file) {
|
||||
if (pfullname)
|
||||
*pfullname = fullname;
|
||||
else
|
||||
free(fullname);
|
||||
return file;
|
||||
}
|
||||
free(fullname);
|
||||
}
|
||||
free(fullname);
|
||||
}
|
||||
path = npath;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue