mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 19:42:05 +00:00
pipeline: reclaim ownership if reverting to layer ancestor
In _cogl_pipeline_prune_empty_layer_difference if we are reverting to the immediate parent of an empty/redundant layer then it is not enough to simply add a reference to the pipeline's ->layer_differences list without also updating parent_layer->owner to point back to its new owner. This oversight was leading us to break the invariable that all layers referenced in layer_differences have an owner and was also causing us to break another invariable whereby after calling _cogl_pipeline_layer_pre_change_notify the returned layer must always be owned by the given 'required_owner'. http://bugzilla.clutter-project.org/show_bug.cgi?id=2588
This commit is contained in:
parent
12b622a320
commit
7de3655298
@ -2194,7 +2194,8 @@ _cogl_pipeline_prune_empty_layer_difference (CoglPipeline *layers_authority,
|
||||
if (layer_parent->index == layer->index && layer_parent->owner == NULL)
|
||||
{
|
||||
cogl_object_ref (layer_parent);
|
||||
link->data = _cogl_pipeline_layer_get_parent (layer);
|
||||
layer_parent->owner = layers_authority;
|
||||
link->data = layer_parent;
|
||||
cogl_object_unref (layer);
|
||||
recursively_free_layer_caches (layers_authority);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user