tgsi: fix property parsing/building
authorZack Rusin <zackr@vmware.com>
Wed, 23 Dec 2009 19:39:16 +0000 (14:39 -0500)
committerZack Rusin <zackr@vmware.com>
Fri, 25 Dec 2009 10:52:19 +0000 (05:52 -0500)
src/gallium/auxiliary/tgsi/tgsi_build.c
src/gallium/auxiliary/tgsi/tgsi_text.c

index 92903fe57f38f8b6979e553ad2a9ed2be54d4ce9..de9cbc863051f7d2495fe3f61cb9cd95865bfa33 100644 (file)
@@ -1025,7 +1025,7 @@ tgsi_build_full_property(
    size++;
 
    *property = tgsi_build_property(
-      TGSI_PROPERTY_GS_INPUT_PRIM,
+      full_prop->Property.PropertyName,
       header );
 
    assert( full_prop->Property.NrTokens <= 8 + 1 );
index 80d3a1e39fa6e0991c1f2c7acbd61fc2f46aec3e..ca247a1f97cacf7c798246d2307209902a8dccdd 100644 (file)
@@ -62,18 +62,20 @@ static boolean uprcase( char c )
 }
 
 /*
- * Ignore case of str1 and assume str2 is already uppercase.
+ * Ignore case of str1 and assume str1 is already uppercase.
  * Return TRUE iff str1 and str2 are equal.
  */
 static int
 streq_nocase_uprcase(const char *str1,
                      const char *str2)
 {
-   while (*str1 && uprcase(*str1) == *str2) {
+   while (*str1 && *str2) {
+      if (*str1 != uprcase(*str2))
+         return FALSE;
       str1++;
       str2++;
    }
-   return *str1 == *str2;
+   return TRUE;
 }
 
 static boolean str_match_no_case( const char **pcur, const char *str )
@@ -1166,7 +1168,7 @@ static boolean parse_property( struct translate_ctx *ctx )
    }
    for (property_name = 0; property_name < TGSI_PROPERTY_COUNT;
         ++property_name) {
-      if (streq_nocase_uprcase(id, property_names[property_name])) {
+      if (streq_nocase_uprcase(property_names[property_name], id)) {
          break;
       }
    }