diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/glsl/linker.cpp | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp index e7ec9b7bc03..f827b68555f 100644 --- a/src/compiler/glsl/linker.cpp +++ b/src/compiler/glsl/linker.cpp @@ -3653,21 +3653,21 @@ included_in_packed_varying(ir_variable *var, const char *name) if (strncmp(var->name, "packed:", 7) != 0) return false; - const char *token = var->name + 7; + char *list = strdup(var->name + 7); + assert(list); + + bool found = false; + char *saveptr; + char *token = strtok_r(list, ",", &saveptr); while (token) { - const char *next_token = strchr(list, ' '); - if (next_token) { - len = token - next_token; - next_token++; - } else { - len = strlen(token); + if (strcmp(token, name) == 0) { + found = true; + break; } - if (strncmp(token, name, MAX2(len, strlen(name)) == 0) - return true; - - token = next_token; + token = strtok_r(NULL, ",", &saveptr); } - return false; + free(list); + return found; } /** |