freedreno/rnn: split out helper to find files
authorRob Clark <robdclark@chromium.org>
Tue, 28 Jul 2020 15:30:13 +0000 (08:30 -0700)
committerMarge Bot <eric+marge@anholt.net>
Wed, 29 Jul 2020 14:30:35 +0000 (14:30 +0000)
So we can re-use it to locate the schema file.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6107>

src/freedreno/rnn/rnn.c

index d28f7a02ddcf0379ad2cd628e068a7d408ce5b7b..8893827170e0c6dd9879d9f417e58530b183f69f 100644 (file)
@@ -878,10 +878,10 @@ static int trytop (struct rnndb *db, char *file, xmlNode *node) {
        return 0;
 }
 
-void rnn_parsefile (struct rnndb *db, char *file_orig) {
-       int i;
-       char *fname;
+static char * find_file(const char *file_orig)
+{
        const char *rnn_path = getenv("RNN_PATH");
+       char *fname;
 
        if (!rnn_path)
                rnn_path = RNN_DEF_PATH;
@@ -889,10 +889,22 @@ void rnn_parsefile (struct rnndb *db, char *file_orig) {
        FILE *file = find_in_path(file_orig, rnn_path, &fname);
        if (!file) {
                fprintf (stderr, "%s: couldn't find database file. Please set the env var RNN_PATH.\n", file_orig);
+               return NULL;
+       }
+       fclose(file);
+
+       return fname;
+}
+
+void rnn_parsefile (struct rnndb *db, char *file_orig) {
+       int i;
+       char *fname;
+
+       fname = find_file(file_orig);
+       if (!fname) {
                db->estatus = 1;
                return;
        }
-       fclose(file);
 
        for (i = 0; i < db->filesnum; i++)
                if (!strcmp(db->files[i], fname))