From 9ad01b067b71b820b22fb4a08667c87d494e6db6 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Thu, 4 Jun 2020 12:50:25 +0100 Subject: [PATCH] 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 --- cogl/cogl-pipeline.c | 6 +++--- 1 file 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);