From f087dad40dfb70cfd77de8e2e8d5b949c7882cc5 Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Fri, 11 Aug 2017 14:59:02 +1000 Subject: [PATCH] glsl: always write a name/label string to the cache In the following patch we will stop writing the pointer to cache. Unfortunately adding empty strings to that cache seems to be the only thing we can do here once we no longer have the pointers. Reviewed-by: Samuel Pitoiset (cherry picked from commit 44918a197905e4e9d09e32b7d07945948ca2da07) --- src/compiler/glsl/shader_cache.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/compiler/glsl/shader_cache.cpp b/src/compiler/glsl/shader_cache.cpp index 393e56b83d2..0d4a9e2df6e 100644 --- a/src/compiler/glsl/shader_cache.cpp +++ b/src/compiler/glsl/shader_cache.cpp @@ -1315,10 +1315,9 @@ create_linked_shader_and_program(struct gl_context *ctx, /* Restore shader info */ blob_copy_bytes(metadata, (uint8_t *) &glprog->info, sizeof(shader_info)); - if (glprog->info.name) - glprog->info.name = ralloc_strdup(glprog, blob_read_string(metadata)); - if (glprog->info.label) - glprog->info.label = ralloc_strdup(glprog, blob_read_string(metadata)); + + glprog->info.name = ralloc_strdup(glprog, blob_read_string(metadata)); + glprog->info.label = ralloc_strdup(glprog, blob_read_string(metadata)); _mesa_reference_shader_program_data(ctx, &glprog->sh.data, prog->data); _mesa_reference_program(ctx, &linked->Program, glprog); @@ -1362,9 +1361,13 @@ shader_cache_write_program_metadata(struct gl_context *ctx, if (sh->Program->info.name) blob_write_string(metadata, sh->Program->info.name); + else + blob_write_string(metadata, ""); if (sh->Program->info.label) blob_write_string(metadata, sh->Program->info.label); + else + blob_write_string(metadata, ""); } }