diff --git a/src/compiler/glsl/ir_clone.cpp b/src/compiler/glsl/ir_clone.cpp index dcf02b5d29a..bc5c25e0e47 100644 --- a/src/compiler/glsl/ir_clone.cpp +++ b/src/compiler/glsl/ir_clone.cpp @@ -259,17 +259,11 @@ ir_texture::clone(void *mem_ctx, struct hash_table *ht) const ir_assignment * ir_assignment::clone(void *mem_ctx, struct hash_table *ht) const { - ir_rvalue *new_condition = NULL; + assert(this->condition == NULL); - if (this->condition) - new_condition = this->condition->clone(mem_ctx, ht); - - ir_assignment *cloned = - new(mem_ctx) ir_assignment(this->lhs->clone(mem_ctx, ht), - this->rhs->clone(mem_ctx, ht), - new_condition); - cloned->write_mask = this->write_mask; - return cloned; + return new(mem_ctx) ir_assignment(this->lhs->clone(mem_ctx, ht), + this->rhs->clone(mem_ctx, ht), + this->write_mask); } ir_function * diff --git a/src/compiler/glsl/opt_array_splitting.cpp b/src/compiler/glsl/opt_array_splitting.cpp index 3e3bff701da..7e147ca89e3 100644 --- a/src/compiler/glsl/opt_array_splitting.cpp +++ b/src/compiler/glsl/opt_array_splitting.cpp @@ -415,11 +415,10 @@ ir_array_splitting_visitor::visit_leave(ir_assignment *ir) ir_rvalue *rhs_i = new(mem_ctx) ir_dereference_array(ir->rhs->clone(mem_ctx, NULL), new(mem_ctx) ir_constant(i)); - ir_rvalue *condition_i = - ir->condition ? ir->condition->clone(mem_ctx, NULL) : NULL; - ir_assignment *assign_i = - new(mem_ctx) ir_assignment(lhs_i, rhs_i, condition_i); + assert(ir->condition == NULL); + + ir_assignment *assign_i = new(mem_ctx) ir_assignment(lhs_i, rhs_i); ir->insert_before(assign_i); assign_i->accept(this);