Optimization to reduce Handle size by 50% 30/24130/1
authorPaul Wisbey <p.wisbey@samsung.com>
Thu, 19 Jun 2014 19:01:10 +0000 (20:01 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Tue, 8 Jul 2014 15:58:22 +0000 (16:58 +0100)
[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: I8322c4ee56341b88c752da3931a7187c46eb9419
Signed-off-by: Adeel Kazmi <adeel.kazmi@samsung.com>
16 files changed:
adaptors/tizen/public-api/adaptor-framework/application.h
adaptors/tizen/public-api/adaptor-framework/common/color-controller.h
adaptors/tizen/public-api/adaptor-framework/common/physical-keyboard.h
adaptors/tizen/public-api/adaptor-framework/common/tilt-sensor.h
capi/dali/public-api/adaptor-framework/common/accessibility-manager.h
capi/dali/public-api/adaptor-framework/common/clipboard-event-notifier.h
capi/dali/public-api/adaptor-framework/common/clipboard.h
capi/dali/public-api/adaptor-framework/common/drag-and-drop-detector.h
capi/dali/public-api/adaptor-framework/common/haptic-player.h
capi/dali/public-api/adaptor-framework/common/imf-manager.h
capi/dali/public-api/adaptor-framework/common/orientation.h
capi/dali/public-api/adaptor-framework/common/sound-player.h
capi/dali/public-api/adaptor-framework/common/style-monitor.h
capi/dali/public-api/adaptor-framework/common/timer.h
capi/dali/public-api/adaptor-framework/common/tts-player.h
capi/dali/public-api/adaptor-framework/common/window.h

index 13e4189..389bbed 100644 (file)
@@ -178,9 +178,11 @@ public:
   Application& operator=( const Application& applicaton );
 
   /**
-   * Virtual destructor
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Application();
+  ~Application();
 
 public:
   /**
index 52334eb..a063d2c 100644 (file)
@@ -66,9 +66,11 @@ public:
   static ColorController Get();
 
   /**
-   * @brief Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ColorController();
+  ~ColorController();
 
   /**
    * @brief Retrieve the RGB value by given the color code.
index 6205051..418ada4 100644 (file)
@@ -51,9 +51,11 @@ public:
   PhysicalKeyboard();
 
   /**
-   * Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~PhysicalKeyboard();
+  ~PhysicalKeyboard();
 
   /**
    * Gets a handle to the physical keyboard.
index b8d0fda..5969499 100644 (file)
@@ -101,9 +101,11 @@ public:
   static TiltSensor Get();
 
   /**
-   * Virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~TiltSensor();
+  ~TiltSensor();
 
   /**
    * Attempt to enable the tilt-sensor. This will fail if the underlying sensor hardware is powered-down,
index 0e2fe5a..58503f1 100644 (file)
@@ -90,9 +90,11 @@ public:
   static AccessibilityManager Get();
 
   /**
-   * @brief Virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~AccessibilityManager();
+  ~AccessibilityManager();
 
   /**
    * @brief Returns the current position of the read action.
index 0cb86d6..e3249a7 100644 (file)
@@ -72,9 +72,11 @@ public:
   static ClipboardEventNotifier Get();
 
   /**
-   * @brief Virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ClipboardEventNotifier();
+  ~ClipboardEventNotifier();
 
   /**
    * @brief Returns the selected content.
index 1ab0f04..7feaab5 100644 (file)
@@ -58,9 +58,11 @@ public:
   Clipboard();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Clipboard();
+  ~Clipboard();
 
   /**
    * @brief This constructor is used by Adaptor::GetClipboard().
index b602372..4c043f5 100644 (file)
@@ -115,9 +115,11 @@ public:
   DragAndDropDetector();
 
   /**
-   * @brief Virtual Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~DragAndDropDetector();
+  ~DragAndDropDetector();
 
   /**
    * @brief Returns the dropped content.
index bd333b8..7f1ce2b 100644 (file)
@@ -59,7 +59,9 @@ public:
   static HapticPlayer Get();
 
   /**
-   * @brief Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
   ~HapticPlayer();
 
index 845eec9..ad890e5 100644 (file)
@@ -243,9 +243,11 @@ public:
   ImfManager();
 
   /**
-   * @brief Virtual destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~ImfManager();
+  ~ImfManager();
 
   /**
    * @brief This constructor is used by ImfManager::Get().
index 7f5696c..2256538 100644 (file)
@@ -61,9 +61,11 @@ public:
   Orientation();
 
   /**
-   * @brief Virtual Destructor
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Orientation();
+  ~Orientation();
 
   /**
    * @copydoc Dali::BaseHandle::operator=
index 1427030..448f975 100644 (file)
@@ -67,7 +67,9 @@ public:
   static SoundPlayer Get();
 
   /**
-   * @brief Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
   ~SoundPlayer();
 
index 3e173ea..080588e 100644 (file)
@@ -83,9 +83,11 @@ public: // Creation & Destruction
   static StyleMonitor Get();
 
   /**
-   * @brief Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~StyleMonitor();
+  ~StyleMonitor();
 
   /**
    * @brief Downcast an Object handle to StyleMonitor handle.
index 3e61eb9..b8ebcf4 100644 (file)
@@ -91,9 +91,11 @@ public: // API
   Timer& operator=( const Timer& timer );
 
   /**
-   * @brief Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Timer();
+  ~Timer();
 
   /**
    * @brief Downcast an Object handle to Timer handle.
index c5d64eb..d37ebd3 100644 (file)
@@ -74,7 +74,9 @@ public: // API
   static TtsPlayer Get(Dali::TtsPlayer::Mode mode = Dali::TtsPlayer::DEFAULT);
 
   /**
-   * @brief Destructor.
+   * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
   ~TtsPlayer();
 
index 1698cca..82be3cd 100644 (file)
@@ -117,8 +117,10 @@ public:
 
   /**
    * @brief Destructor
+   *
+   * This is non-virtual since derived Handle types must not contain data or virtual methods.
    */
-  virtual ~Window();
+  ~Window();
 
   /**
    * @copydoc Dali::BaseHandle::operator=