X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fbuilder%2Ftree-node-manipulator.cpp;h=06ba033528843d79f11b0756958d27a1da08f95b;hb=02557f62f8d171115d885c87c138faec2a3cb923;hp=926842a7071943a25bfd5e977382e1e3e5b9ea35;hpb=c289b30a84b68310c1570c4a8bd8b417c23b0efe;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/builder/tree-node-manipulator.cpp b/dali-toolkit/internal/builder/tree-node-manipulator.cpp index 926842a..06ba033 100644 --- a/dali-toolkit/internal/builder/tree-node-manipulator.cpp +++ b/dali-toolkit/internal/builder/tree-node-manipulator.cpp @@ -291,6 +291,19 @@ void TreeNodeManipulator::SetType( TreeNode::NodeType type) } } } + else if( TreeNode::ARRAY == mNode->mType ) + { + if( mNode->mFirstChild != NULL ) + { + TreeNode::NodeType type = mNode->mFirstChild->GetType(); + + if( TreeNode::FLOAT == type || TreeNode::INTEGER == type ) + { + // Arrays of numbers should be replaced, not appended to. + RemoveChildren(); + } + } + } } void TreeNodeManipulator::SetName( const char* name ) @@ -385,7 +398,7 @@ void TreeNodeManipulator::DoWrite(const TreeNode *value, std::ostream& output, i { bool groupMyChildren = false; - if( TreeNode::ARRAY == value->GetType() && + if( TreeNode::ARRAY == value->GetType() && value->mFirstChild && ( TreeNode::INTEGER == value->mFirstChild->GetType() || TreeNode::FLOAT == value->mFirstChild->GetType() ) ) { @@ -536,8 +549,7 @@ void TreeNodeManipulator::DoWrite(const TreeNode *value, std::ostream& output, i } // switch } // DoWrite - -const TreeNode* FindIt(const std::string& childName, const TreeNode* node) +const TreeNode* FindIt(std::string_view childName, const TreeNode* node) { DALI_ASSERT_DEBUG(node);