[maemo-commits] [maemo-commits] r19157 - in projects/haf/trunk/libmatchbox2: . matchbox/client-types matchbox/core

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Aug 19 15:49:22 EEST 2009
Author: aendrodi
Date: 2009-08-19 15:48:57 +0300 (Wed, 19 Aug 2009)
New Revision: 19157

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.h
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.c
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h
Log:
	Made frequently used functions inline.  Based on measurements
	this saves hundreds of function calls during a map.

	* matchbox/core/mb-wm-atoms.c
	* matchbox/core/mb-wm-object.c
	* matchbox/core/mb-wm-object.h:
	  Replaced mb_wm_object_get_class() with MB_WM_OBJECT_GET_CLASS().
	* matchbox/core/mb-wm-client.h:
	  Made mb_wm_client_get_layout_hints() and
	  mb_wm_client_get_transient_for() inline.
	* matchbox/core/mb-wm-client.c:
	  Use MB_WM_OBJECT_GET_CLASS().
	* matchbox/client-types/mb-wm-client-menu.c:
	  Likewise.

	Be sure to rebuild your hd.


Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-08-19 12:48:57 UTC (rev 19157)
@@ -1,3 +1,22 @@
+2009-08-19  Adam Endrodi  <adam.endrodi at blumsoft.eu>
+
+	Made frequently used functions inline.  Based on measurements
+	this saves hundreds of function calls during a map.
+
+	* matchbox/core/mb-wm-atoms.c
+	* matchbox/core/mb-wm-object.c
+	* matchbox/core/mb-wm-object.h:
+	  Replaced mb_wm_object_get_class() with MB_WM_OBJECT_GET_CLASS().
+	* matchbox/core/mb-wm-client.h:
+	  Made mb_wm_client_get_layout_hints() and
+	  mb_wm_client_get_transient_for() inline.
+	* matchbox/core/mb-wm-client.c:
+	  Use MB_WM_OBJECT_GET_CLASS().
+	* matchbox/client-types/mb-wm-client-menu.c:
+	  Likewise.
+
+	Be sure to rebuild your hd.
+
 2009-08-19  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
 
 	Release 0.2.57

Modified: projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/matchbox/client-types/mb-wm-client-menu.c	2009-08-19 12:48:57 UTC (rev 19157)
@@ -100,8 +100,7 @@
 
   geom = client->window->geometry;
 
-  if (((MBWindowManagerClientClass*)mb_wm_object_get_class(this))->client_type
-      != MBWMClientTypeMenu)
+  if (MB_WM_CLIENT_CLIENT_TYPE (this) != MBWMClientTypeMenu)
   {
     /* new-style menu */
 

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-atoms.c	2009-08-19 12:48:57 UTC (rev 19157)
@@ -9,7 +9,7 @@
    *   Doing it like this avoids a mass of round trips on startup.
    */
 
-  char *atom_names[] = {
+  static char *atom_names[] = {
 
     "WM_NAME",
     "WM_STATE",

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.c	2009-08-19 12:48:57 UTC (rev 19157)
@@ -338,7 +338,7 @@
   if (client->priv->realized)
     return;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->realize)
     klass->realize(client);
@@ -362,7 +362,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->stack)
     {
@@ -385,7 +385,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->show)
     klass->show (client);
@@ -405,7 +405,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->hide)
     klass->hide (client);
@@ -431,7 +431,7 @@
   MBWindowManagerClientClass *klass;
   Bool ret = False;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->focus)
     ret = klass->focus(client);
@@ -496,7 +496,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->sync)
     klass->sync (client);
@@ -512,7 +512,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->geometry)
     return klass->geometry(client, new_geometry, flags);
@@ -520,20 +520,6 @@
   return False;
 }
 
-MBWMClientLayoutHints
-mb_wm_client_get_layout_hints (MBWindowManagerClient *client)
-{
-  if ((client->window->ewmh_state & MBWMClientWindowEWMHStateFullscreen))
-    {
-      if (client->layout_hints & LayoutPrefVisible)
-	return (LayoutPrefFullscreen | LayoutPrefVisible);
-      else
-	return LayoutPrefFullscreen;
-    }
-
-  return client->layout_hints;
-}
-
 void
 mb_wm_client_set_layout_hints (MBWindowManagerClient *client,
 			       MBWMClientLayoutHints  hints)
@@ -727,13 +713,7 @@
   return trans;
 }
 
-MBWindowManagerClient*
-mb_wm_client_get_transient_for (MBWindowManagerClient *client)
-{
-  return client->transient_for;
-}
 
-
 /*
  * Returns TRUE iff the named client is a system-modal dialogue.
  *
@@ -1013,7 +993,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->theme_change)
     klass->theme_change (client);
@@ -1032,7 +1012,7 @@
   if (!client->transient_for)
     return;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->detransitise)
     klass->detransitise (client);
@@ -1126,7 +1106,7 @@
 {
   MBWindowManagerClientClass *klass;
 
-  klass = MB_WM_CLIENT_CLASS(mb_wm_object_get_class (MB_WM_OBJECT(client)));
+  klass = MB_WM_CLIENT_CLASS (MB_WM_OBJECT_GET_CLASS (client));
 
   if (klass->stacking_layer)
     return klass->stacking_layer (client);

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.h	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-client.h	2009-08-19 12:48:57 UTC (rev 19157)
@@ -293,7 +293,7 @@
 mb_wm_client_get_coverage (MBWindowManagerClient *client,
                            MBGeometry            *coverage);
 
-MBWMClientLayoutHints
+static MBWMClientLayoutHints
 mb_wm_client_get_layout_hints (MBWindowManagerClient *client);
 
 void
@@ -343,7 +343,7 @@
 MBWMList*
 mb_wm_client_get_transients (MBWindowManagerClient *client);
 
-MBWindowManagerClient*
+static MBWindowManagerClient*
 mb_wm_client_get_transient_for (MBWindowManagerClient *client);
 
 gboolean
@@ -436,4 +436,18 @@
 Bool
 mb_wm_client_covers_screen (MBWindowManagerClient * client);
 
+static inline MBWMClientLayoutHints
+mb_wm_client_get_layout_hints (MBWindowManagerClient *client)
+{
+  return (client->window->ewmh_state & MBWMClientWindowEWMHStateFullscreen)
+    ? LayoutPrefFullscreen | (client->layout_hints & LayoutPrefVisible)
+    : client->layout_hints;
+}
+
+static inline MBWindowManagerClient*
+mb_wm_client_get_transient_for (MBWindowManagerClient *client)
+{
+  return client->transient_for;
+}
+
 #endif

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.c	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.c	2009-08-19 12:48:57 UTC (rev 19157)
@@ -320,12 +320,6 @@
   return obj;
 }
 
-const MBWMObjectClass*
-mb_wm_object_get_class (MBWMObject *this)
-{
-  return this->klass;
-}
-
 unsigned long
 mb_wm_object_signal_connect (MBWMObject             *obj,
 			     unsigned long           signal,

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h	2009-08-19 12:19:57 UTC (rev 19156)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-object.h	2009-08-19 12:48:57 UTC (rev 19157)
@@ -35,9 +35,9 @@
 #define MB_WM_OBJECT(x) ((MBWMObject*)(x))
 #define MB_WM_OBJECT_CLASS(x) ((MBWMObjectClass*)(x))
 #define MB_WM_OBJECT_TYPE(x) (((MBWMObject*)(x))->klass->type)
-#define MB_WM_OBJECT_GET_CLASS(x) (mb_wm_object_get_class (MB_WM_OBJECT(x)))
+#define MB_WM_OBJECT_GET_CLASS(x) (MB_WM_OBJECT(x)->klass)
 #define MB_WM_OBJECT_GET_PARENT_CLASS(x) \
-    ((mb_wm_object_get_class (MB_WM_OBJECT(x)))->parent)
+    ((MB_WM_OBJECT_GET_CLASS (MB_WM_OBJECT(x)))->parent)
 #define MB_WM_OBJECT_PARENT_TYPE(x) (MB_WM_OBJECT_GET_PARENT_CLASS(x)->type)
 
 typedef enum  MBWMObjectClassType
@@ -119,9 +119,6 @@
 MBWMObject*
 mb_wm_object_new (int type, ...);
 
-const MBWMObjectClass*
-mb_wm_object_get_class (MBWMObject *this);
-
 unsigned long
 mb_wm_object_signal_connect (MBWMObject            *obj,
 			     unsigned long          signal,

More information about the maemo-commits mailing list