foo
authorEmil Velikov <emil.l.velikov@gmail.com>
Wed, 25 Oct 2017 13:52:55 +0000 (14:52 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Mon, 30 Oct 2017 15:22:26 +0000 (15:22 +0000)
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
src/compiler/glsl/linker.cpp

index f827b68555f680be735e66425473484bea850aeb..e7ec9b7bc03062d3987979cdfd694598f1a673ca 100644 (file)
@@ -3653,21 +3653,21 @@ included_in_packed_varying(ir_variable *var, const char *name)
    if (strncmp(var->name, "packed:", 7) != 0)
       return false;
 
-   char *list = strdup(var->name + 7);
-   assert(list);
-
-   bool found = false;
-   char *saveptr;
-   char *token = strtok_r(list, ",", &saveptr);
+   const char *token = var->name + 7;
    while (token) {
-      if (strcmp(token, name) == 0) {
-         found = true;
-         break;
+      const char *next_token = strchr(list, ' ');
+      if (next_token) {
+         len = token - next_token;
+         next_token++;
+      } else {
+         len = strlen(token);
       }
-      token = strtok_r(NULL, ",", &saveptr);
+      if (strncmp(token, name, MAX2(len, strlen(name)) == 0)
+         return true;
+
+      token = next_token;
    }
-   free(list);
-   return found;
+   return false;
 }
 
 /**