ir_reader: Remove s_list::length() method.
Most code now relies on the pattern matcher rather than this function, and for the only remaining case, not using this saves an iteration.
This commit is contained in:
@@ -754,13 +754,7 @@ read_constant(_mesa_glsl_parse_state *st, s_list *list)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (type->is_array()) {
|
if (type->is_array()) {
|
||||||
const unsigned elements_supplied = values->length();
|
unsigned elements_supplied = 0;
|
||||||
if (elements_supplied != type->length) {
|
|
||||||
ir_read_error(st, values, "expected exactly %u array elements, "
|
|
||||||
"given %u", type->length, elements_supplied);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
exec_list elements;
|
exec_list elements;
|
||||||
foreach_iter(exec_list_iterator, it, values->subexpressions) {
|
foreach_iter(exec_list_iterator, it, values->subexpressions) {
|
||||||
s_expression *expr = (s_expression *) it.get();
|
s_expression *expr = (s_expression *) it.get();
|
||||||
@@ -774,6 +768,13 @@ read_constant(_mesa_glsl_parse_state *st, s_list *list)
|
|||||||
if (ir_elt == NULL)
|
if (ir_elt == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
elements.push_tail(ir_elt);
|
elements.push_tail(ir_elt);
|
||||||
|
elements_supplied++;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (elements_supplied != type->length) {
|
||||||
|
ir_read_error(st, values, "expected exactly %u array elements, "
|
||||||
|
"given %u", type->length, elements_supplied);
|
||||||
|
return NULL;
|
||||||
}
|
}
|
||||||
return new(ctx) ir_constant(type, &elements);
|
return new(ctx) ir_constant(type, &elements);
|
||||||
}
|
}
|
||||||
|
@@ -38,16 +38,6 @@ s_list::s_list()
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned
|
|
||||||
s_list::length() const
|
|
||||||
{
|
|
||||||
unsigned i = 0;
|
|
||||||
foreach_iter(exec_list_iterator, it, this->subexpressions) {
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
static s_expression *
|
static s_expression *
|
||||||
read_atom(void *ctx, const char *& src)
|
read_atom(void *ctx, const char *& src)
|
||||||
{
|
{
|
||||||
|
@@ -139,7 +139,6 @@ public:
|
|||||||
s_list();
|
s_list();
|
||||||
|
|
||||||
virtual bool is_list() const { return true; }
|
virtual bool is_list() const { return true; }
|
||||||
unsigned length() const;
|
|
||||||
|
|
||||||
void print();
|
void print();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user