mesa: use os_file_create_unique()
authorEric Engestrom <eric.engestrom@intel.com>
Wed, 12 Jun 2019 14:46:11 +0000 (15:46 +0100)
committerEric Engestrom <eric.engestrom@intel.com>
Fri, 28 Jun 2019 22:37:49 +0000 (23:37 +0100)
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
Reviewed-by: Kristian H. Kristensen <hoegsberg@google.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/main/shaderapi.c

index 584af9b8cefc6ff49f2b1a01fb5e1b5b7fd72414..f23e9c00be58607cb5b271555f77990368f76503 100644 (file)
@@ -63,6 +63,7 @@
 #include "util/hash_table.h"
 #include "util/mesa-sha1.h"
 #include "util/crc32.h"
+#include "util/os_file.h"
 
 /**
  * Return mask of GLSL_x flags by examining the MESA_GLSL env var.
@@ -1241,6 +1242,7 @@ link_program(struct gl_context *ctx, struct gl_shader_program *shProg,
    const char *capture_path = _mesa_get_shader_capture_path();
    if (shProg->Name != 0 && shProg->Name != ~0 && capture_path != NULL) {
       /* Find an unused filename. */
+      FILE *file = NULL;
       char *filename = NULL;
       for (unsigned i = 0;; i++) {
          if (i) {
@@ -1250,14 +1252,11 @@ link_program(struct gl_context *ctx, struct gl_shader_program *shProg,
             filename = ralloc_asprintf(NULL, "%s/%u.shader_test",
                                        capture_path, shProg->Name);
          }
-         FILE *file = fopen(filename, "r");
-         if (!file)
+         file = os_file_create_unique(filename, 0644);
+         if (file)
             break;
-         fclose(file);
          ralloc_free(filename);
       }
-
-      FILE *file = fopen(filename, "w");
       if (file) {
          fprintf(file, "[require]\nGLSL%s >= %u.%02u\n",
                  shProg->IsES ? " ES" : "",