{
{ 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;
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();
}
LinkableValueNode*
ValueNode_DynamicList::create_new()const
{
- assert(0);
-
- return 0;
+ return new ValueNode_DynamicList(container_type);
}
int