Remove .gitignore do nothing is ignored.
[synfig.git] / synfig-core / trunk / src / synfig / valuenode_dynamiclist.cpp
index dfdf084..a8c253a 100644 (file)
@@ -595,6 +595,9 @@ ValueNode_DynamicList::create_from(const ValueBase &value)
 ValueBase
 ValueNode_DynamicList::operator()(Time t)const
 {
+       if (getenv("SYNFIG_DEBUG_VALUENODE_OPERATORS"))
+               printf("%s:%d operator()\n", __FILE__, __LINE__);
+
        std::vector<ValueBase> ret_list;
        std::vector<ListEntry>::const_iterator iter;
 
@@ -666,7 +669,7 @@ ValueNode_DynamicList::clone(const GUID& deriv_guid)const
 {
        { ValueNode* x(find_value_node(get_guid()^deriv_guid).get()); if(x)return x; }
 
-       ValueNode_DynamicList* ret=new ValueNode_DynamicList(container_type);
+       ValueNode_DynamicList* ret=dynamic_cast<ValueNode_DynamicList*>(create_new());
        ret->set_guid(get_guid()^deriv_guid);
 
        std::vector<ListEntry>::const_iterator iter;
@@ -680,7 +683,7 @@ ValueNode_DynamicList::clone(const GUID& deriv_guid)const
                        ListEntry list_entry(*iter);
                        //list_entry.value_node=find_value_node(iter->value_node->get_guid()^deriv_guid).get();
                        //if(!list_entry.value_node)
-                               list_entry.value_node=iter->value_node->clone(deriv_guid);
+                       list_entry.value_node=iter->value_node->clone(deriv_guid);
                        ret->add(list_entry);
                        //ret->list.back().value_node=iter->value_node.clone();
                }
@@ -735,9 +738,7 @@ ValueNode_DynamicList::get_contained_type()const
 LinkableValueNode*
 ValueNode_DynamicList::create_new()const
 {
-       assert(0);
-
-       return 0;
+       return new ValueNode_DynamicList(container_type);
 }
 
 int