Refactor ir_expression::get_num_operands.

A new static version takes an ir_expression_operation enum, and the
original non-static version now uses it.  This will make it easier to
read operations (where the ir_expression doesn't yet exist).
This commit is contained in:
Kenneth Graunke
2010-04-07 16:56:57 -07:00
committed by Ian Romanick
parent 1a3a096bf5
commit 7dd6adbe2e
2 changed files with 7 additions and 3 deletions
+2 -2
View File
@@ -46,7 +46,7 @@ ir_expression::ir_expression(int op, const struct glsl_type *type,
}
unsigned int
ir_expression::get_num_operands(void)
ir_expression::get_num_operands(ir_expression_operation op)
{
/* Update ir_print_visitor.cpp when updating this list. */
const int num_operands[] = {
@@ -105,7 +105,7 @@ ir_expression::get_num_operands(void)
assert(sizeof(num_operands) / sizeof(num_operands[0]) == ir_binop_pow + 1);
return num_operands[this->operation];
return num_operands[op];
}
+5 -1
View File
@@ -471,7 +471,11 @@ public:
ir_expression(int op, const struct glsl_type *type,
ir_rvalue *, ir_rvalue *);
unsigned int get_num_operands(void);
static unsigned int get_num_operands(ir_expression_operation);
unsigned int get_num_operands()
{
return get_num_operands(operation);
}
virtual void accept(ir_visitor *v)
{