summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Bragg <robert.bragg@intel.com>2014-03-26 17:14:41 +0000
committerRobert Bragg <robert.bragg@intel.com>2014-03-26 17:14:41 +0000
commit7856a3dbd718df26a1ad036ab24eb41167acd5bf (patch)
tree7bcbaeecaaef7b712a92eff74165c349b4c087e5
parente1c0d7c4adc4929904d7298811b439583864b0d8 (diff)
downloadcogl-7856a3dbd718df26a1ad036ab24eb41167acd5bf.tar.gz
pipeline: don't free BigState before we might dereference it
-rw-r--r--cogl/cogl-pipeline.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/cogl/cogl-pipeline.c b/cogl/cogl-pipeline.c
index 76acf66c..a6af7615 100644
--- a/cogl/cogl-pipeline.c
+++ b/cogl/cogl-pipeline.c
@@ -442,9 +442,6 @@ _cogl_pipeline_free (CoglPipeline *pipeline)
_cogl_bitmask_destroy (&uniforms_state->changed_mask);
}
- if (pipeline->differences & COGL_PIPELINE_STATE_NEEDS_BIG_STATE)
- u_slice_free (CoglPipelineBigState, pipeline->big_state);
-
if (pipeline->differences & COGL_PIPELINE_STATE_LAYERS)
{
u_list_foreach (pipeline->layer_differences,
@@ -460,6 +457,9 @@ _cogl_pipeline_free (CoglPipeline *pipeline)
recursively_free_layer_caches (pipeline);
+ if (pipeline->differences & COGL_PIPELINE_STATE_NEEDS_BIG_STATE)
+ u_slice_free (CoglPipelineBigState, pipeline->big_state);
+
u_slice_free (CoglPipeline, pipeline);
}