element: Rework set_child_property_by_pspec
authorThibault Saunier <tsaunier@gnome.org>
Thu, 1 Dec 2016 20:08:43 +0000 (17:08 -0300)
committerThibault Saunier <tsaunier@gnome.org>
Thu, 1 Dec 2016 20:08:43 +0000 (17:08 -0300)
It was making no sense to loose the information about the pspec itself
to retrieve the child associated to it and was failling when we were
forcing the AssociateType::prop synthax

ges/ges-timeline-element.c

index 0c4ca46..3a493cd 100644 (file)
@@ -1316,16 +1316,16 @@ void
 ges_timeline_element_set_child_property_by_pspec (GESTimelineElement * self,
     GParamSpec * pspec, GValue * value)
 {
-  GObject *child;
+  ChildPropHandler *handler;
 
   g_return_if_fail (GES_IS_TRACK_ELEMENT (self));
 
-  if (!ges_timeline_element_lookup_child (self, pspec->name, &child, &pspec))
+  handler = g_hash_table_lookup (self->priv->children_props, pspec);
+
+  if (!handler)
     goto not_found;
 
-  g_object_set_property (child, pspec->name, value);
-  gst_object_unref (child);
-  g_param_spec_unref (pspec);
+  g_object_set_property (handler->child, pspec->name, value);
 
   return;