From: Eric Anholt Date: Tue, 4 May 2010 00:08:01 +0000 (-0700) Subject: ir_to_mesa.cpp: Fix missing types on some ir_swizzles. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=05a4e59c2410292f595cfe0cc552a86ae69b20d2;p=mesa.git ir_to_mesa.cpp: Fix missing types on some ir_swizzles. Debugging this took forever as I only looked at constructors in ir.cpp to find who wasn't setting up ->type. I dislike hiding code (as opposed to prototypes and definitions) in C++ header files, but in this case I have only myself to blame. --- diff --git a/ir.cpp b/ir.cpp index 6778997ac83..d2d8b4015b7 100644 --- a/ir.cpp +++ b/ir.cpp @@ -307,6 +307,14 @@ ir_swizzle::ir_swizzle(ir_rvalue *val, unsigned x, unsigned y, unsigned z, type = glsl_type::get_instance(val->type->base_type, mask.num_components, 1); } +ir_swizzle::ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask) +{ + this->val = val; + this->mask = mask; + this->type = glsl_type::get_instance(val->type->base_type, + mask.num_components, 1); +} + #define X 1 #define R 5 #define S 9 diff --git a/ir.h b/ir.h index b3fb06d2c7b..ce924206f8a 100644 --- a/ir.h +++ b/ir.h @@ -707,11 +707,7 @@ class ir_swizzle : public ir_rvalue { public: ir_swizzle(ir_rvalue *, unsigned x, unsigned y, unsigned z, unsigned w, unsigned count); - ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask) - : val(val), mask(mask) - { - /* empty */ - } + ir_swizzle(ir_rvalue *val, ir_swizzle_mask mask); virtual ir_swizzle *as_swizzle() {