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).
}
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[] = {
assert(sizeof(num_operands) / sizeof(num_operands[0]) == ir_binop_pow + 1);
- return num_operands[this->operation];
+ return num_operands[op];
}
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)
{