i965: Handle deallocation of some private ralloc contexts explicitly.
These ralloc contexts belong to a specific object and are being deallocated manually from the class destructor. Now that we've hooked up destructors to ralloc there's no reason for them to be children of any other context, and doing so might to lead to double frees under some circumstances. The class destructor has all the responsibility of freeing class memory resources now.
This commit is contained in:
parent
d18477deea
commit
db47074ac0
|
@ -80,7 +80,7 @@ cfg_t::cfg_t(void *mem_ctx, exec_list *instructions)
|
|||
void
|
||||
cfg_t::create(void *parent_mem_ctx, exec_list *instructions)
|
||||
{
|
||||
mem_ctx = ralloc_context(parent_mem_ctx);
|
||||
mem_ctx = ralloc_context(NULL);
|
||||
block_list.make_empty();
|
||||
blocks = NULL;
|
||||
num_blocks = 0;
|
||||
|
|
|
@ -246,7 +246,7 @@ fs_live_variables::var_from_reg(fs_reg *reg)
|
|||
fs_live_variables::fs_live_variables(fs_visitor *v, cfg_t *cfg)
|
||||
: v(v), cfg(cfg)
|
||||
{
|
||||
mem_ctx = this;
|
||||
mem_ctx = ralloc_context(NULL);
|
||||
|
||||
num_vgrfs = v->virtual_grf_count;
|
||||
num_vars = 0;
|
||||
|
|
|
@ -347,7 +347,7 @@ public:
|
|||
instruction_scheduler(backend_visitor *v, int grf_count, bool post_reg_alloc)
|
||||
{
|
||||
this->bv = v;
|
||||
this->mem_ctx = ralloc_context(v->mem_ctx);
|
||||
this->mem_ctx = ralloc_context(NULL);
|
||||
this->grf_count = grf_count;
|
||||
this->instructions.make_empty();
|
||||
this->instructions_to_schedule = 0;
|
||||
|
|
|
@ -156,7 +156,7 @@ vec4_live_variables::compute_live_variables()
|
|||
vec4_live_variables::vec4_live_variables(vec4_visitor *v, cfg_t *cfg)
|
||||
: v(v), cfg(cfg)
|
||||
{
|
||||
mem_ctx = ralloc_context(cfg->mem_ctx);
|
||||
mem_ctx = ralloc_context(NULL);
|
||||
|
||||
num_vars = v->virtual_grf_count * 4;
|
||||
bd = rzalloc_array(mem_ctx, struct block_data, cfg->num_blocks);
|
||||
|
|
Loading…
Reference in New Issue