summaryrefslogtreecommitdiffstats
path: root/src/compiler/glsl/linker.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/glsl/linker.cpp')
-rw-r--r--src/compiler/glsl/linker.cpp24
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;
}
/**