Avoid Heap allocation in UniformMap.
[platform/core/uifw/dali-core.git] / dali / internal / update / common / property-owner.cpp
index fb655e3..bd23fe2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,6 +24,7 @@
 // INTERNAL INCLUDES
 #include <dali/public-api/common/dali-common.h>
 #include <dali/internal/update/animation/scene-graph-constraint-base.h>
+#include <dali/internal/common/const-string.h>
 
 namespace Dali
 {
@@ -89,6 +90,8 @@ void PropertyOwner::Destroy()
 
 void PropertyOwner::ConnectToSceneGraph()
 {
+  mIsConnectedToSceneGraph = true;
+
   // Notification for observers
   const ConstObserverIter endIter = mObservers.End();
   for( ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
@@ -99,6 +102,8 @@ void PropertyOwner::ConnectToSceneGraph()
 
 void PropertyOwner::DisconnectFromSceneGraph( BufferIndex updateBufferIndex )
 {
+  mIsConnectedToSceneGraph = false;
+
   // Notification for observers
   const ConstObserverIter endIter = mObservers.End();
   for( ConstObserverIter iter = mObservers.Begin(); iter != endIter; ++iter)
@@ -143,15 +148,17 @@ void PropertyOwner::RemoveConstraint( ConstraintBase* constraint )
 }
 
 PropertyOwner::PropertyOwner()
+: mUpdated(false),
+  mIsConnectedToSceneGraph(false)
 {
 }
 
-void PropertyOwner::AddUniformMapping( OwnerPointer< UniformPropertyMapping >& map )
+void PropertyOwner::AddUniformMapping(const UniformPropertyMapping& map)
 {
-  mUniformMaps.Add( map.Release() );
+  mUniformMaps.Add(map);
 }
 
-void PropertyOwner::RemoveUniformMapping( const std::string& uniformName )
+void PropertyOwner::RemoveUniformMapping( const ConstString& uniformName )
 {
   mUniformMaps.Remove( uniformName );
 }