Remove manual memory management from Core implementation. 40/114040/6
authorFrancisco Santos <f1.santos@samsung.com>
Mon, 27 Mar 2017 17:28:21 +0000 (18:28 +0100)
committerFrancisco Santos <f1.santos@samsung.com>
Mon, 27 Mar 2017 17:29:17 +0000 (18:29 +0100)
Change-Id: Ibcc99fc9235a8c0f35a14440372d519e2fab7b04

dali/internal/common/core-impl.cpp
dali/internal/common/core-impl.h

index dccaacf..0534dd7 100644 (file)
@@ -83,13 +83,6 @@ Core::Core( RenderController& renderController, PlatformAbstraction& platform,
             GestureManager& gestureManager, ResourcePolicy::DataRetention dataRetentionPolicy)
 : mRenderController( renderController ),
   mPlatform(platform),
-  mGestureEventProcessor(NULL),
-  mEventProcessor(NULL),
-  mUpdateManager(NULL),
-  mRenderManager(NULL),
-  mDiscardQueue(NULL),
-  mNotificationManager(NULL),
-  mShaderFactory(NULL),
   mIsActive(true),
   mProcessingEvent(false)
 {
@@ -165,14 +158,6 @@ Core::~Core()
   // remove (last?) reference to stage
   mStage.Reset();
 
-  delete mEventProcessor;
-  delete mGestureEventProcessor;
-  delete mNotificationManager;
-  delete mShaderFactory;
-  delete mDiscardQueue;
-  delete mUpdateManager;
-  delete mRenderManager;
-  delete mRenderTaskProcessor;
 }
 
 Integration::ContextNotifierInterface* Core::GetContextNotifier()
index d2e4add..17bc172 100644 (file)
@@ -262,20 +262,21 @@ private:
   Integration::PlatformAbstraction&         mPlatform;                    ///< The interface providing platform specific services.
 
   IntrusivePtr<Stage>                       mStage;                       ///< The current stage
-  GestureEventProcessor*                    mGestureEventProcessor;       ///< The gesture event processor
-  EventProcessor*                           mEventProcessor;              ///< The event processor
-  SceneGraph::UpdateManager*                mUpdateManager;               ///< Update manager
-  SceneGraph::RenderManager*                mRenderManager;               ///< Render manager
-  SceneGraph::DiscardQueue*                 mDiscardQueue;                ///< Used to cleanup nodes & resources when no longer in use.
-  NotificationManager*                      mNotificationManager;         ///< Notification manager
   AnimationPlaylistOwner                    mAnimationPlaylist;           ///< For 'Fire and forget' animation support
   OwnerPointer<PropertyNotificationManager> mPropertyNotificationManager; ///< For safe signal emmision of property changed notifications
-  ShaderFactory*                            mShaderFactory;               ///< Shader resource factory
   IntrusivePtr< RelayoutController >        mRelayoutController;          ///< Size negotiation relayout controller
-  SceneGraph::RenderTaskProcessor*          mRenderTaskProcessor;         ///< Handles the processing of render tasks
   bool                                      mIsActive         : 1;        ///< Whether Core is active or suspended
   bool                                      mProcessingEvent  : 1;        ///< True during ProcessEvents()
 
+  OwnerPointer<SceneGraph::RenderTaskProcessor> mRenderTaskProcessor;         ///< Handles the processing of render tasks
+  OwnerPointer<SceneGraph::RenderManager>       mRenderManager;               ///< Render manager
+  OwnerPointer<SceneGraph::UpdateManager>       mUpdateManager;               ///< Update manager
+  OwnerPointer<SceneGraph::DiscardQueue>        mDiscardQueue;                ///< Used to cleanup nodes & resources when no longer in use.
+  OwnerPointer<ShaderFactory>                   mShaderFactory;               ///< Shader resource factory
+  OwnerPointer<NotificationManager>             mNotificationManager;         ///< Notification manager
+  OwnerPointer<GestureEventProcessor>           mGestureEventProcessor;       ///< The gesture event processor
+  OwnerPointer<EventProcessor>                  mEventProcessor;              ///< The event processor
+
   friend class ThreadLocalStorage;
 
 };