From f91d51cb2c700456bbc2b9c1c5c81cbbcf6a58c7 Mon Sep 17 00:00:00 2001 From: Cameron Zwarich Date: Mon, 7 Jul 2014 16:16:42 -0700 Subject: [PATCH] Eliminate ad-hoc recursion in set_unrendered_color --- src/components/compositing/compositor.rs | 16 +++++++++------ src/components/compositing/compositor_data.rs | 20 +------------------ 2 files changed, 11 insertions(+), 25 deletions(-) diff --git a/src/components/compositing/compositor.rs b/src/components/compositing/compositor.rs index 72dc10c3209..31c9809ec25 100644 --- a/src/components/compositing/compositor.rs +++ b/src/components/compositing/compositor.rs @@ -348,12 +348,16 @@ impl IOCompositor { fn set_unrendered_color(&mut self, pipeline_id: PipelineId, layer_id: LayerId, color: Color) { match self.scene.root { - Some(ref layer) => CompositorData::set_unrendered_color(layer.clone(), - pipeline_id, - layer_id, - color), - None => false, - }; + Some(ref root_layer) => { + match CompositorData::find_layer_with_pipeline_and_layer_id(root_layer.clone(), + pipeline_id, + layer_id) { + Some(ref layer) => CompositorData::set_unrendered_color(layer.clone(), color), + None => { } + } + } + None => { } + } } fn set_ids(&mut self, diff --git a/src/components/compositing/compositor_data.rs b/src/components/compositing/compositor_data.rs index 66f8cde0754..5712efc9e34 100644 --- a/src/components/compositing/compositor_data.rs +++ b/src/components/compositing/compositor_data.rs @@ -813,26 +813,8 @@ impl CompositorData { } } - pub fn set_unrendered_color(layer: Rc>, - pipeline_id: PipelineId, - layer_id: LayerId, - color: Color) - -> bool { - if layer.extra_data.borrow().pipeline.id != pipeline_id || - layer.extra_data.borrow().id != layer_id { - for child_layer in layer.children().iter() { - if CompositorData::set_unrendered_color(child_layer.clone(), - pipeline_id, - layer_id, - color) { - return true; - } - } - return false; - } - + pub fn set_unrendered_color(layer: Rc>, color: Color) { layer.extra_data.borrow_mut().unrendered_color = color; - return true; } }