glsl: remove delegating constructors to allow build with C++98
Delegating constructors is a C++11 feature, so this was breaking when compiling with C++98. Change the copy_propagation_state() calls that used the convenience constructor to use a static member function instead. Since copy_propagation_state is expected to be heap allocated, this change is a good fit. Tested-by: Vinson Lee <vlee@freedesktop.org> Reviewed-by: Matt Turner <mattst88@gmail.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107305
This commit is contained in:

committed by
Matt Turner

parent
6b73a97f84
commit
52d831ff83
@@ -68,9 +68,11 @@ class copy_propagation_state {
|
|||||||
public:
|
public:
|
||||||
DECLARE_RZALLOC_CXX_OPERATORS(copy_propagation_state);
|
DECLARE_RZALLOC_CXX_OPERATORS(copy_propagation_state);
|
||||||
|
|
||||||
copy_propagation_state()
|
static
|
||||||
: copy_propagation_state(NULL)
|
copy_propagation_state* create(void *mem_ctx)
|
||||||
{}
|
{
|
||||||
|
return new (mem_ctx) copy_propagation_state(NULL);
|
||||||
|
}
|
||||||
|
|
||||||
copy_propagation_state* clone()
|
copy_propagation_state* clone()
|
||||||
{
|
{
|
||||||
@@ -238,7 +240,7 @@ public:
|
|||||||
this->lin_ctx = linear_alloc_parent(this->mem_ctx, 0);
|
this->lin_ctx = linear_alloc_parent(this->mem_ctx, 0);
|
||||||
this->shader_mem_ctx = NULL;
|
this->shader_mem_ctx = NULL;
|
||||||
this->kills = new(mem_ctx) exec_list;
|
this->kills = new(mem_ctx) exec_list;
|
||||||
this->state = new(mem_ctx) copy_propagation_state();
|
this->state = copy_propagation_state::create(mem_ctx);
|
||||||
}
|
}
|
||||||
~ir_copy_propagation_elements_visitor()
|
~ir_copy_propagation_elements_visitor()
|
||||||
{
|
{
|
||||||
@@ -294,7 +296,7 @@ ir_copy_propagation_elements_visitor::visit_enter(ir_function_signature *ir)
|
|||||||
this->killed_all = false;
|
this->killed_all = false;
|
||||||
|
|
||||||
copy_propagation_state *orig_state = state;
|
copy_propagation_state *orig_state = state;
|
||||||
this->state = new(mem_ctx) copy_propagation_state();
|
this->state = copy_propagation_state::create(mem_ctx);
|
||||||
|
|
||||||
visit_list_elements(this, &ir->body);
|
visit_list_elements(this, &ir->body);
|
||||||
|
|
||||||
@@ -531,7 +533,7 @@ ir_copy_propagation_elements_visitor::handle_loop(ir_loop *ir, bool keep_acp)
|
|||||||
/* Populate the initial acp with a copy of the original */
|
/* Populate the initial acp with a copy of the original */
|
||||||
this->state = orig_state->clone();
|
this->state = orig_state->clone();
|
||||||
} else {
|
} else {
|
||||||
this->state = new(mem_ctx) copy_propagation_state();
|
this->state = copy_propagation_state::create(mem_ctx);
|
||||||
}
|
}
|
||||||
|
|
||||||
visit_list_elements(this, &ir->body_instructions);
|
visit_list_elements(this, &ir->body_instructions);
|
||||||
|
Reference in New Issue
Block a user