[cogl] pipeline-state: Fix crash in the get_all_uniform_values function
- From: Neil Roberts <nroberts src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl] pipeline-state: Fix crash in the get_all_uniform_values function
- Date: Mon, 13 Feb 2012 19:15:26 +0000 (UTC)
commit f84839e87c855d677ed0a3d0a353ce7168a90907
Author: Neil Roberts <neil linux intel com>
Date: Mon Feb 13 18:48:17 2012 +0000
pipeline-state: Fix crash in the get_all_uniform_values function
The get_all_uniform_values function tries to walk the parent hierarchy
of pipelines to find pipelines overriding the uniforms state and then
grabs the values from the override. However it was accessing data
inside the âbig stateâ even if the pipeline didn't override the
uniforms state so it would crash if it encountered a parent pipeline
with no big state.
Reviewed-by: Robert Bragg <robert linux intel com>
cogl/cogl-pipeline-state.c | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
---
diff --git a/cogl/cogl-pipeline-state.c b/cogl/cogl-pipeline-state.c
index 4dd06f9..a79494a 100644
--- a/cogl/cogl-pipeline-state.c
+++ b/cogl/cogl-pipeline-state.c
@@ -274,17 +274,18 @@ _cogl_pipeline_get_all_uniform_values (CoglPipeline *pipeline,
do
{
- const CoglPipelineUniformsState *uniforms_state =
- &pipeline->big_state->uniforms_state;
-
- data.override_count = 0;
- data.src_values = uniforms_state->override_values;
-
if ((pipeline->differences & COGL_PIPELINE_STATE_UNIFORMS))
- _cogl_bitmask_foreach (&uniforms_state->override_mask,
- get_uniforms_cb,
- &data);
+ {
+ const CoglPipelineUniformsState *uniforms_state =
+ &pipeline->big_state->uniforms_state;
+
+ data.override_count = 0;
+ data.src_values = uniforms_state->override_values;
+ _cogl_bitmask_foreach (&uniforms_state->override_mask,
+ get_uniforms_cb,
+ &data);
+ }
pipeline = _cogl_pipeline_get_parent (pipeline);
}
while (pipeline);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]