From 0b669dac3be8b6ecd9c94362d88ecbb01956b857 Mon Sep 17 00:00:00 2001
From: Paul Wisbey
Date: Thu, 19 Jun 2014 18:56:41 +0100
Subject: [PATCH] Optimization to reduce Handle size by 50%
[problem] Memory usage is too high, event-thread operations are too heavy.
[cause] Too much Dali::Handle data copied around.
[solution] Remove all virtual methods from handles, to avoid needing a C++ vptr
Change-Id: Ib03898bc8fe073d41e5a44cc49af91958d164ee1
Signed-off-by: Adeel Kazmi
---
capi/dali/public-api/actors/actor.h | 6 +++---
capi/dali/public-api/actors/camera-actor.h | 6 +++---
capi/dali/public-api/actors/custom-actor.h | 6 +++---
capi/dali/public-api/actors/image-actor.h | 6 +++---
capi/dali/public-api/actors/layer.h | 6 +++---
capi/dali/public-api/actors/mesh-actor.h | 6 +++---
capi/dali/public-api/actors/renderable-actor.h | 6 +++---
capi/dali/public-api/actors/text-actor.h | 6 +++---
capi/dali/public-api/animation/active-constraint.h | 6 ++++--
capi/dali/public-api/animation/animation.h | 6 ++++--
capi/dali/public-api/animation/constraint.h | 5 +++--
capi/dali/public-api/animation/key-frames.h | 6 ++++--
capi/dali/public-api/common/stage.h | 6 +++---
capi/dali/public-api/events/gesture-detector.h | 6 +++---
capi/dali/public-api/events/long-press-gesture-detector.h | 6 +++---
capi/dali/public-api/events/pan-gesture-detector.h | 6 +++---
capi/dali/public-api/events/pinch-gesture-detector.h | 6 +++---
capi/dali/public-api/events/tap-gesture-detector.h | 6 +++---
capi/dali/public-api/geometry/animatable-mesh.h | 4 +++-
capi/dali/public-api/images/bitmap-image.h | 6 ++++--
capi/dali/public-api/images/encoded-buffer-image.h | 4 +++-
capi/dali/public-api/images/frame-buffer-image.h | 6 ++++--
capi/dali/public-api/images/image.h | 6 +++---
capi/dali/public-api/modeling/material.h | 6 ++++--
capi/dali/public-api/object/base-handle.h | 6 ++++--
capi/dali/public-api/object/constrainable.h | 6 ++++--
capi/dali/public-api/object/handle.h | 5 +++--
capi/dali/public-api/object/object-registry.h | 4 ++--
capi/dali/public-api/object/property-notification.h | 6 ++++--
capi/dali/public-api/render-tasks/render-task-list.h | 6 ++++--
capi/dali/public-api/render-tasks/render-task.h | 6 ++++--
capi/dali/public-api/shader-effects/shader-effect.h | 6 +++---
capi/dali/public-api/text/font.h | 6 +++---
dali/public-api/actors/light-actor.h | 6 +++---
dali/public-api/common/light.h | 6 ++++--
dali/public-api/dynamics/dynamics-body-config.h | 6 ++++--
dali/public-api/dynamics/dynamics-body.h | 6 ++++--
dali/public-api/dynamics/dynamics-collision.h | 6 ++++--
dali/public-api/dynamics/dynamics-joint.h | 6 ++++--
dali/public-api/dynamics/dynamics-shape.h | 6 ++++--
dali/public-api/dynamics/dynamics-world-config.h | 6 ++++--
dali/public-api/dynamics/dynamics-world.h | 6 ++++--
dali/public-api/geometry/cloth.h | 6 ++++--
dali/public-api/geometry/mesh.h | 6 ++++--
dali/public-api/images/glyph-image.h | 6 ++++--
dali/public-api/images/nine-patch-image.h | 6 ++++--
dali/public-api/modeling/entity.h | 6 +++---
dali/public-api/modeling/model-data.h | 6 +++---
dali/public-api/modeling/model.h | 6 +++---
dali/public-api/object/type-info.h | 6 ++++--
50 files changed, 173 insertions(+), 119 deletions(-)
diff --git a/capi/dali/public-api/actors/actor.h b/capi/dali/public-api/actors/actor.h
index dddd842..b9b5fcf 100644
--- a/capi/dali/public-api/actors/actor.h
+++ b/capi/dali/public-api/actors/actor.h
@@ -312,11 +312,11 @@ public:
static Actor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Dali::Actor is intended as a base class
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Actor();
+ ~Actor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/actors/camera-actor.h b/capi/dali/public-api/actors/camera-actor.h
index afe744d..20a560e 100644
--- a/capi/dali/public-api/actors/camera-actor.h
+++ b/capi/dali/public-api/actors/camera-actor.h
@@ -127,11 +127,11 @@ public:
static CameraActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~CameraActor();
+ ~CameraActor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/actors/custom-actor.h b/capi/dali/public-api/actors/custom-actor.h
index 40e2afb..cd62f49 100644
--- a/capi/dali/public-api/actors/custom-actor.h
+++ b/capi/dali/public-api/actors/custom-actor.h
@@ -64,11 +64,11 @@ public:
static CustomActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~CustomActor();
+ ~CustomActor();
/**
* @brief Retrieve the custom actor implementation.
diff --git a/capi/dali/public-api/actors/image-actor.h b/capi/dali/public-api/actors/image-actor.h
index 65acdee..d612f53 100644
--- a/capi/dali/public-api/actors/image-actor.h
+++ b/capi/dali/public-api/actors/image-actor.h
@@ -196,11 +196,11 @@ public:
static ImageActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ImageActor();
+ ~ImageActor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/actors/layer.h b/capi/dali/public-api/actors/layer.h
index b0fbe09..153e10b 100644
--- a/capi/dali/public-api/actors/layer.h
+++ b/capi/dali/public-api/actors/layer.h
@@ -109,11 +109,11 @@ public:
static Layer DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Layer();
+ ~Layer();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/actors/mesh-actor.h b/capi/dali/public-api/actors/mesh-actor.h
index dab35e7..c36d8ca 100644
--- a/capi/dali/public-api/actors/mesh-actor.h
+++ b/capi/dali/public-api/actors/mesh-actor.h
@@ -90,11 +90,11 @@ public:
static MeshActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~MeshActor();
+ ~MeshActor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/actors/renderable-actor.h b/capi/dali/public-api/actors/renderable-actor.h
index d7ebdc8..69ea621 100644
--- a/capi/dali/public-api/actors/renderable-actor.h
+++ b/capi/dali/public-api/actors/renderable-actor.h
@@ -74,11 +74,11 @@ public:
static RenderableActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~RenderableActor();
+ ~RenderableActor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/actors/text-actor.h b/capi/dali/public-api/actors/text-actor.h
index 08aa948..82566e5 100644
--- a/capi/dali/public-api/actors/text-actor.h
+++ b/capi/dali/public-api/actors/text-actor.h
@@ -212,11 +212,11 @@ public:
static TextActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~TextActor();
+ ~TextActor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/animation/active-constraint.h b/capi/dali/public-api/animation/active-constraint.h
index bf3bf83..187b777 100644
--- a/capi/dali/public-api/animation/active-constraint.h
+++ b/capi/dali/public-api/animation/active-constraint.h
@@ -61,9 +61,11 @@ public:
ActiveConstraint();
/**
- * @brief Destructor.
+ * @brief Dali::ActiveConstraint is intended as a base class
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ActiveConstraint();
+ ~ActiveConstraint();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/animation/animation.h b/capi/dali/public-api/animation/animation.h
index 412f038..7921495 100644
--- a/capi/dali/public-api/animation/animation.h
+++ b/capi/dali/public-api/animation/animation.h
@@ -171,9 +171,11 @@ public:
static Animation DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Animation();
+ ~Animation();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/animation/constraint.h b/capi/dali/public-api/animation/constraint.h
index 6e73a06..1ffa952 100644
--- a/capi/dali/public-api/animation/constraint.h
+++ b/capi/dali/public-api/animation/constraint.h
@@ -521,10 +521,11 @@ public:
static Constraint DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
*
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Constraint();
+ ~Constraint();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/animation/key-frames.h b/capi/dali/public-api/animation/key-frames.h
index 4b641c6..452165b 100644
--- a/capi/dali/public-api/animation/key-frames.h
+++ b/capi/dali/public-api/animation/key-frames.h
@@ -74,9 +74,11 @@ public:
KeyFrames();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~KeyFrames();
+ ~KeyFrames();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/common/stage.h b/capi/dali/public-api/common/stage.h
index 6c5c75d..d8df880 100644
--- a/capi/dali/public-api/common/stage.h
+++ b/capi/dali/public-api/common/stage.h
@@ -90,11 +90,11 @@ public:
static bool IsInstalled();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Stage();
+ ~Stage();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/events/gesture-detector.h b/capi/dali/public-api/events/gesture-detector.h
index a2ca4c7..719da30 100644
--- a/capi/dali/public-api/events/gesture-detector.h
+++ b/capi/dali/public-api/events/gesture-detector.h
@@ -70,11 +70,11 @@ public: // Creation & Destruction
static GestureDetector DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Dali::GestureDetector is intended as a base class
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~GestureDetector();
+ ~GestureDetector();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/events/long-press-gesture-detector.h b/capi/dali/public-api/events/long-press-gesture-detector.h
index 78ee49b..f0d65d8 100644
--- a/capi/dali/public-api/events/long-press-gesture-detector.h
+++ b/capi/dali/public-api/events/long-press-gesture-detector.h
@@ -112,11 +112,11 @@ public: // Creation & Destruction
static LongPressGestureDetector DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~LongPressGestureDetector();
+ ~LongPressGestureDetector();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/events/pan-gesture-detector.h b/capi/dali/public-api/events/pan-gesture-detector.h
index ec25a46..4596625 100644
--- a/capi/dali/public-api/events/pan-gesture-detector.h
+++ b/capi/dali/public-api/events/pan-gesture-detector.h
@@ -119,11 +119,11 @@ public: // Creation & Destruction
static PanGestureDetector DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PanGestureDetector();
+ ~PanGestureDetector();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/events/pinch-gesture-detector.h b/capi/dali/public-api/events/pinch-gesture-detector.h
index a7c5773..1e013a4 100644
--- a/capi/dali/public-api/events/pinch-gesture-detector.h
+++ b/capi/dali/public-api/events/pinch-gesture-detector.h
@@ -92,11 +92,11 @@ public: // Creation & Destruction
static PinchGestureDetector DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PinchGestureDetector();
+ ~PinchGestureDetector();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/events/tap-gesture-detector.h b/capi/dali/public-api/events/tap-gesture-detector.h
index a416dba..2c03bf2 100644
--- a/capi/dali/public-api/events/tap-gesture-detector.h
+++ b/capi/dali/public-api/events/tap-gesture-detector.h
@@ -104,11 +104,11 @@ public: // Creation & Destruction
static TapGestureDetector DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~TapGestureDetector();
+ ~TapGestureDetector();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/geometry/animatable-mesh.h b/capi/dali/public-api/geometry/animatable-mesh.h
index 159fd58..88a41eb 100644
--- a/capi/dali/public-api/geometry/animatable-mesh.h
+++ b/capi/dali/public-api/geometry/animatable-mesh.h
@@ -107,8 +107,10 @@ public:
/**
* @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~AnimatableMesh();
+ ~AnimatableMesh();
/**
* @brief Get the number of vertices with which this mesh was created.
diff --git a/capi/dali/public-api/images/bitmap-image.h b/capi/dali/public-api/images/bitmap-image.h
index 9c7ee5e..5020362 100644
--- a/capi/dali/public-api/images/bitmap-image.h
+++ b/capi/dali/public-api/images/bitmap-image.h
@@ -189,9 +189,11 @@ public:
static BitmapImage DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~BitmapImage();
+ ~BitmapImage();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/images/encoded-buffer-image.h b/capi/dali/public-api/images/encoded-buffer-image.h
index 45fd7de..6c03275 100644
--- a/capi/dali/public-api/images/encoded-buffer-image.h
+++ b/capi/dali/public-api/images/encoded-buffer-image.h
@@ -122,7 +122,9 @@ public:
static EncodedBufferImage DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
~EncodedBufferImage();
diff --git a/capi/dali/public-api/images/frame-buffer-image.h b/capi/dali/public-api/images/frame-buffer-image.h
index d7bf016..5f48065 100644
--- a/capi/dali/public-api/images/frame-buffer-image.h
+++ b/capi/dali/public-api/images/frame-buffer-image.h
@@ -121,9 +121,11 @@ public:
static FrameBufferImage DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~FrameBufferImage();
+ ~FrameBufferImage();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/images/image.h b/capi/dali/public-api/images/image.h
index 9841302..bca77ff 100644
--- a/capi/dali/public-api/images/image.h
+++ b/capi/dali/public-api/images/image.h
@@ -156,11 +156,11 @@ public:
Image();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Image();
+ ~Image();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/modeling/material.h b/capi/dali/public-api/modeling/material.h
index 8f6d1fb..c3850fd 100644
--- a/capi/dali/public-api/modeling/material.h
+++ b/capi/dali/public-api/modeling/material.h
@@ -100,9 +100,11 @@ public:
Material();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Material();
+ ~Material();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/object/base-handle.h b/capi/dali/public-api/object/base-handle.h
index f80df08..51344c4 100644
--- a/capi/dali/public-api/object/base-handle.h
+++ b/capi/dali/public-api/object/base-handle.h
@@ -90,9 +90,11 @@ public:
BaseHandle();
/**
- * @brief Dali::BaseHandle is intended as a base class.
+ * @brief Dali::BaseHandle is intended as a base class
+ *
+ * This is non-virtual since derived BaseHandle types must not contain data.
*/
- virtual ~BaseHandle();
+ ~BaseHandle();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
diff --git a/capi/dali/public-api/object/constrainable.h b/capi/dali/public-api/object/constrainable.h
index a5c6366..73b917a 100644
--- a/capi/dali/public-api/object/constrainable.h
+++ b/capi/dali/public-api/object/constrainable.h
@@ -77,9 +77,11 @@ public:
static Constrainable DownCast( BaseHandle handle );
/**
- * @brief Dali::Handle is intended as a base class.
+ * @brief Dali::Constrainable is intended as a base class
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Constrainable();
+ ~Constrainable();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
diff --git a/capi/dali/public-api/object/handle.h b/capi/dali/public-api/object/handle.h
index 16d6f13..a4cd607 100644
--- a/capi/dali/public-api/object/handle.h
+++ b/capi/dali/public-api/object/handle.h
@@ -90,10 +90,11 @@ public:
Handle();
/**
- * @brief Dali::Handle is intended as a base class.
+ * @brief Dali::Handle is intended as a base class
*
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Handle();
+ ~Handle();
/**
* @brief This copy constructor is required for (smart) pointer semantics.
diff --git a/capi/dali/public-api/object/object-registry.h b/capi/dali/public-api/object/object-registry.h
index 62256c2..f4a0e7e 100644
--- a/capi/dali/public-api/object/object-registry.h
+++ b/capi/dali/public-api/object/object-registry.h
@@ -83,9 +83,9 @@ public:
ObjectRegistry();
/**
- * @brief Destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
~ObjectRegistry();
diff --git a/capi/dali/public-api/object/property-notification.h b/capi/dali/public-api/object/property-notification.h
index 0aac0d5..4b74624 100644
--- a/capi/dali/public-api/object/property-notification.h
+++ b/capi/dali/public-api/object/property-notification.h
@@ -79,9 +79,11 @@ public:
static PropertyNotification DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~PropertyNotification();
+ ~PropertyNotification();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/render-tasks/render-task-list.h b/capi/dali/public-api/render-tasks/render-task-list.h
index 2a67975..1ff2d10 100644
--- a/capi/dali/public-api/render-tasks/render-task-list.h
+++ b/capi/dali/public-api/render-tasks/render-task-list.h
@@ -65,9 +65,11 @@ public:
static RenderTaskList DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~RenderTaskList();
+ ~RenderTaskList();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/render-tasks/render-task.h b/capi/dali/public-api/render-tasks/render-task.h
index f8cf4a8..ebeb7ff 100644
--- a/capi/dali/public-api/render-tasks/render-task.h
+++ b/capi/dali/public-api/render-tasks/render-task.h
@@ -150,9 +150,11 @@ public:
static RenderTask DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~RenderTask();
+ ~RenderTask();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/capi/dali/public-api/shader-effects/shader-effect.h b/capi/dali/public-api/shader-effects/shader-effect.h
index 2b6da62..0625ff0 100644
--- a/capi/dali/public-api/shader-effects/shader-effect.h
+++ b/capi/dali/public-api/shader-effects/shader-effect.h
@@ -312,11 +312,11 @@ public:
static ShaderEffect DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ShaderEffect();
+ ~ShaderEffect();
/**
* @brief Copy constructor
diff --git a/capi/dali/public-api/text/font.h b/capi/dali/public-api/text/font.h
index 0aac048..b553910 100644
--- a/capi/dali/public-api/text/font.h
+++ b/capi/dali/public-api/text/font.h
@@ -185,11 +185,11 @@ public:
static const std::string GetFamilyForText(const Character& character);
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Font();
+ ~Font();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/actors/light-actor.h b/dali/public-api/actors/light-actor.h
index f6c1591..a057a78 100644
--- a/dali/public-api/actors/light-actor.h
+++ b/dali/public-api/actors/light-actor.h
@@ -77,11 +77,11 @@ public:
static LightActor DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~LightActor();
+ ~LightActor();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/common/light.h b/dali/public-api/common/light.h
index 8f1e30b..4510937 100644
--- a/dali/public-api/common/light.h
+++ b/dali/public-api/common/light.h
@@ -83,9 +83,11 @@ public:
}
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Light();
+ ~Light();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-body-config.h b/dali/public-api/dynamics/dynamics-body-config.h
index 83977ad..eb22cce 100644
--- a/dali/public-api/dynamics/dynamics-body-config.h
+++ b/dali/public-api/dynamics/dynamics-body-config.h
@@ -89,9 +89,11 @@ public:
DynamicsBodyConfig();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsBodyConfig();
+ ~DynamicsBodyConfig();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-body.h b/dali/public-api/dynamics/dynamics-body.h
index 5fb76c2..514ceae 100644
--- a/dali/public-api/dynamics/dynamics-body.h
+++ b/dali/public-api/dynamics/dynamics-body.h
@@ -53,9 +53,11 @@ public:
DynamicsBody();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsBody();
+ ~DynamicsBody();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-collision.h b/dali/public-api/dynamics/dynamics-collision.h
index 7daa4cd..ba18018 100644
--- a/dali/public-api/dynamics/dynamics-collision.h
+++ b/dali/public-api/dynamics/dynamics-collision.h
@@ -48,9 +48,11 @@ public:
DynamicsCollision();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsCollision();
+ ~DynamicsCollision();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-joint.h b/dali/public-api/dynamics/dynamics-joint.h
index 5e95cb1..350e36d 100644
--- a/dali/public-api/dynamics/dynamics-joint.h
+++ b/dali/public-api/dynamics/dynamics-joint.h
@@ -64,9 +64,11 @@ public:
DynamicsJoint();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsJoint();
+ ~DynamicsJoint();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-shape.h b/dali/public-api/dynamics/dynamics-shape.h
index ef1c1d8..6c92044 100644
--- a/dali/public-api/dynamics/dynamics-shape.h
+++ b/dali/public-api/dynamics/dynamics-shape.h
@@ -116,9 +116,11 @@ public:
DynamicsShape();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsShape();
+ ~DynamicsShape();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-world-config.h b/dali/public-api/dynamics/dynamics-world-config.h
index c5814b8..8bce7c1 100644
--- a/dali/public-api/dynamics/dynamics-world-config.h
+++ b/dali/public-api/dynamics/dynamics-world-config.h
@@ -66,9 +66,11 @@ public:
DynamicsWorldConfig();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsWorldConfig();
+ ~DynamicsWorldConfig();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/dynamics/dynamics-world.h b/dali/public-api/dynamics/dynamics-world.h
index ddcd0d5..8cc957c 100644
--- a/dali/public-api/dynamics/dynamics-world.h
+++ b/dali/public-api/dynamics/dynamics-world.h
@@ -111,9 +111,11 @@ public:
DynamicsWorld();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~DynamicsWorld();
+ ~DynamicsWorld();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/geometry/cloth.h b/dali/public-api/geometry/cloth.h
index 5b9017e..73e77cc 100644
--- a/dali/public-api/geometry/cloth.h
+++ b/dali/public-api/geometry/cloth.h
@@ -66,9 +66,11 @@ public:
Cloth();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Cloth();
+ ~Cloth();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/geometry/mesh.h b/dali/public-api/geometry/mesh.h
index 2c3d021..727fb5d 100644
--- a/dali/public-api/geometry/mesh.h
+++ b/dali/public-api/geometry/mesh.h
@@ -57,9 +57,11 @@ public:
Mesh();
/**
- * @brief Virtual destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Mesh();
+ ~Mesh();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/images/glyph-image.h b/dali/public-api/images/glyph-image.h
index b81f3e0..98c5d22 100644
--- a/dali/public-api/images/glyph-image.h
+++ b/dali/public-api/images/glyph-image.h
@@ -90,9 +90,11 @@ public:
static bool IsColorGlyph( const Character& character );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~GlyphImage();
+ ~GlyphImage();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/images/nine-patch-image.h b/dali/public-api/images/nine-patch-image.h
index d067726..a02eea8 100644
--- a/dali/public-api/images/nine-patch-image.h
+++ b/dali/public-api/images/nine-patch-image.h
@@ -81,9 +81,11 @@ public:
static NinePatchImage DownCast( BaseHandle handle );
/**
- * @brief Destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~NinePatchImage();
+ ~NinePatchImage();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/modeling/entity.h b/dali/public-api/modeling/entity.h
index a8b5972..8876e8a 100644
--- a/dali/public-api/modeling/entity.h
+++ b/dali/public-api/modeling/entity.h
@@ -89,11 +89,11 @@ public:
static Entity DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Entity();
+ ~Entity();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/modeling/model-data.h b/dali/public-api/modeling/model-data.h
index d853a26..06f2a43 100644
--- a/dali/public-api/modeling/model-data.h
+++ b/dali/public-api/modeling/model-data.h
@@ -74,11 +74,11 @@ public:
static ModelData DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~ModelData();
+ ~ModelData();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/modeling/model.h b/dali/public-api/modeling/model.h
index 86b59de..aadd7b8 100644
--- a/dali/public-api/modeling/model.h
+++ b/dali/public-api/modeling/model.h
@@ -88,11 +88,11 @@ public:
static Model DownCast( BaseHandle handle );
/**
- * @brief Virtual destructor.
+ * @brief Destructor
*
- * Dali::Object derived classes typically do not contain member data.
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~Model();
+ ~Model();
/**
* @copydoc Dali::BaseHandle::operator=
diff --git a/dali/public-api/object/type-info.h b/dali/public-api/object/type-info.h
index 52c04c6..25653ff 100644
--- a/dali/public-api/object/type-info.h
+++ b/dali/public-api/object/type-info.h
@@ -86,9 +86,11 @@ public:
TypeInfo();
/**
- * @brief destructor.
+ * @brief Destructor
+ *
+ * This is non-virtual since derived Handle types must not contain data or virtual methods.
*/
- virtual ~TypeInfo();
+ ~TypeInfo();
/**
* @copydoc Dali::BaseHandle::operator=
--
2.7.4