diff options
author | Robert Bragg <robert.bragg@intel.com> | 2014-03-26 17:14:41 +0000 |
---|---|---|
committer | Robert Bragg <robert.bragg@intel.com> | 2014-03-26 17:14:41 +0000 |
commit | 7856a3dbd718df26a1ad036ab24eb41167acd5bf (patch) | |
tree | 7bcbaeecaaef7b712a92eff74165c349b4c087e5 | |
parent | e1c0d7c4adc4929904d7298811b439583864b0d8 (diff) | |
download | cogl-7856a3dbd718df26a1ad036ab24eb41167acd5bf.tar.gz |
pipeline: don't free BigState before we might dereference it
-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 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); } |