diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-06-04 12:50:25 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2020-06-04 13:18:23 +0100 |
commit | 9ad01b067b71b820b22fb4a08667c87d494e6db6 (patch) | |
tree | 538ec30cf22f7d2ac79fe708b1e631e4479ffc9f | |
parent | 92d2741a40bf8f0401ac70c520cc29e221dbcc79 (diff) | |
download | cogl-9ad01b067b71b820b22fb4a08667c87d494e6db6.tar.gz |
Free state after freeing its contents
We are freeing the big state inside the CoglPipeline before freeing the
snippets list, even though the snippets are stored in the big state.
Fixes: #14
-rw-r--r-- | cogl/cogl-pipeline.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/cogl/cogl-pipeline.c b/cogl/cogl-pipeline.c index b2fee10d..e8d6e97d 100644 --- a/cogl/cogl-pipeline.c +++ b/cogl/cogl-pipeline.c @@ -492,9 +492,6 @@ _cogl_pipeline_free (CoglPipeline *pipeline) _cogl_bitmask_destroy (&uniforms_state->changed_mask); } - if (pipeline->differences & COGL_PIPELINE_STATE_NEEDS_BIG_STATE) - g_slice_free (CoglPipelineBigState, pipeline->big_state); - if (pipeline->differences & COGL_PIPELINE_STATE_LAYERS) { g_list_foreach (pipeline->layer_differences, @@ -508,6 +505,9 @@ _cogl_pipeline_free (CoglPipeline *pipeline) if (pipeline->differences & COGL_PIPELINE_STATE_FRAGMENT_SNIPPETS) _cogl_pipeline_snippet_list_free (&pipeline->big_state->fragment_snippets); + if (pipeline->differences & COGL_PIPELINE_STATE_NEEDS_BIG_STATE) + g_slice_free (CoglPipelineBigState, pipeline->big_state); + g_list_free (pipeline->deprecated_get_layers_list); recursively_free_layer_caches (pipeline); |