mesa: more comments, clean up
authorBrian Paul <brian.paul@tungstengraphics.com>
Mon, 15 Dec 2008 23:57:37 +0000 (16:57 -0700)
committerBrian Paul <brianp@vmware.com>
Tue, 6 Jan 2009 16:13:30 +0000 (09:13 -0700)
(cherry picked from commit a1229cc9e7c78c59cad8d0df30b1f28d9bc81faf)

src/mesa/shader/slang/slang_codegen.c

index 5d647e7b4dbc9bd5a20de9d2c907645f8a8f0d6b..ace87d7cd849f3a99b534923133441fa1a21b3ce 100644 (file)
@@ -2770,7 +2770,7 @@ _slang_gen_var_decl(slang_assemble_ctx *A, slang_variable *var,
    }
 
    if (var->array_len > 0) {
-      /* this is an array */
+      /* this is an array, ex: float x[4]; */
       /* round up the element size to a multiple of 4 */
       GLint sz = (store->Size + 3) & ~3;
       /* total size = element size * array length */
@@ -3163,9 +3163,9 @@ _slang_assignment_compatible(slang_assemble_ctx *A,
 }
 
 
-
 /**
  * Generate IR tree for a local variable declaration.
+ * Basically do some error checking and call _slang_gen_var_decl().
  */
 static slang_ir_node *
 _slang_gen_declaration(slang_assemble_ctx *A, slang_operation *oper)
@@ -3219,25 +3219,27 @@ _slang_gen_declaration(slang_assemble_ctx *A, slang_operation *oper)
          return NULL;
       }         
    }
+   else {
+      if (var->type.qualifier == SLANG_QUAL_CONST) {
+         slang_info_log_error(A->log,
+                       "const-qualified variable '%s' requires initializer",
+                       varName);
+         return NULL;
+      }
+   }
 
    /* Generate IR node */
    varDecl = _slang_gen_var_decl(A, var, initializer);
    if (!varDecl)
       return NULL;
 
-   if (var->type.qualifier == SLANG_QUAL_CONST && !initializer) {
-      slang_info_log_error(A->log,
-                           "const-qualified variable '%s' requires initializer",
-                           varName);
-      return NULL;
-   }
-
    return varDecl;
 }
 
 
 /**
- * Generate IR tree for a variable (such as in an expression).
+ * Generate IR tree for a reference to a variable (such as in an expression).
+ * This is different from a variable declaration.
  */
 static slang_ir_node *
 _slang_gen_variable(slang_assemble_ctx * A, slang_operation *oper)