From 05a4e59c2410292f595cfe0cc552a86ae69b20d2 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 3 May 2010 17:08:01 -0700 Subject: [PATCH] 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. --- ir.cpp | 8 ++++++++ ir.h | 6 +----- 2 files changed, 9 insertions(+), 5 deletions(-) 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() { -- 2.30.2