Emit body for constructors in the right place.
authorKenneth Graunke <kenneth@whitecape.org>
Wed, 21 Apr 2010 22:00:29 +0000 (15:00 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Wed, 21 Apr 2010 22:37:10 +0000 (15:37 -0700)
Previously, the body of some vector constructors were added to the wrong
function signature, and the body of matrix constructors were just being
dumped in the main instruction stream.

glsl_types.cpp

index e72a8fc..508a757 100644 (file)
@@ -454,7 +454,7 @@ generate_constructor(glsl_symbol_table *symtab, const struct glsl_type *types,
                                       declarations);
         f->add_signature(vec_sig);
 
-        generate_vec_body_from_N_scalars(&sig->body, declarations);
+        generate_vec_body_from_N_scalars(&vec_sig->body, declarations);
       } else {
         assert(types[i].is_matrix());
 
@@ -467,7 +467,7 @@ generate_constructor(glsl_symbol_table *symtab, const struct glsl_type *types,
                                       declarations);
         f->add_signature(mat_sig);
 
-        generate_mat_body_from_N_scalars(instructions, declarations);
+        generate_mat_body_from_N_scalars(&mat_sig->body, declarations);
       }
    }
 }