[maemo-commits] [maemo-commits] r18456 - in projects/haf/trunk/libmatchbox2: . debian matchbox/core

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu May 21 17:39:52 EEST 2009
Author: kihamala
Date: 2009-05-21 17:39:51 +0300 (Thu, 21 May 2009)
New Revision: 18456

Modified:
   projects/haf/trunk/libmatchbox2/ChangeLog
   projects/haf/trunk/libmatchbox2/debian/changelog
   projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-decor.c
Log:
free buttons list of a decor


Modified: projects/haf/trunk/libmatchbox2/ChangeLog
===================================================================
--- projects/haf/trunk/libmatchbox2/ChangeLog	2009-05-21 14:23:45 UTC (rev 18455)
+++ projects/haf/trunk/libmatchbox2/ChangeLog	2009-05-21 14:39:51 UTC (rev 18456)
@@ -1,11 +1,11 @@
 2009-05-21  Kimmo Hämäläinen  <kimmo.hamalainen at nokia.com>
 
+	* matchbox/core/mb-wm-decor.c (mb_wm_decor_destroy): Free buttons list
+	as well.
 	* matchbox/core/mb-wm-client.c (mb_wm_client_destroy): Free priv
 	member as well.
-
 	* matchbox/core/mb-wm-object.c (mb_wm_object_init): Do not allocate
 	ObjectClasses and ObjectClassesInfo every time the function is called.
-
 	* matchbox/core/mb-wm-client.c (mb_wm_client_destroy): Free decor list
 	after unreffing the objects in the list.
 

Modified: projects/haf/trunk/libmatchbox2/debian/changelog
===================================================================
--- projects/haf/trunk/libmatchbox2/debian/changelog	2009-05-21 14:23:45 UTC (rev 18455)
+++ projects/haf/trunk/libmatchbox2/debian/changelog	2009-05-21 14:39:51 UTC (rev 18456)
@@ -3,7 +3,7 @@
   Kimmo:
   * Fixes: NB#117392 - Window manager resizes/rotates applications that aren't
     visible and don't support rotation
-  * Plug a memory leak in mb_wm_client_destroy.
+  * Several memory leak fixes.
 
   Thomas:
   * Fixes: NB#117562 - _GNU_SOURCE defined in public header file

Modified: projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-decor.c
===================================================================
--- projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-decor.c	2009-05-21 14:23:45 UTC (rev 18455)
+++ projects/haf/trunk/libmatchbox2/matchbox/core/mb-wm-decor.c	2009-05-21 14:39:51 UTC (rev 18456)
@@ -147,11 +147,11 @@
 
 	  mb_wm_decor_button_move_to (btn, off_x, off_y);
 
-	  /*
-	   * We need to simulate packing when placing buttons at absolute
-	   * positions (e.g., in png-based theme) so that we know the size
-	   * of the area into which we can place the document title
-	   */
+          /*
+           * We need to simulate packing when placing buttons at absolute
+           * positions (e.g., in png-based theme) so that we know the size
+           * of the area into which we can place the document title
+           */
 	  if (off_x + bw < width)
 	    {
 	      int x = off_x + bw;
@@ -665,7 +665,7 @@
 mb_wm_decor_destroy (MBWMObject* obj)
 {
   MBWMDecor       * decor = MB_WM_DECOR(obj);
-  MBWMList        * l     = decor->buttons;
+  MBWMList        * l;
   MBWMMainContext * ctx   = decor->parent_client->wmref->main_ctx;
 
   if (decor->themedata && decor->destroy_themedata)
@@ -677,16 +677,20 @@
 
   mb_wm_decor_detach (decor);
 
-  while (l)
+  for (l = decor->buttons; l; l = l->next)
     {
-      MBWMList * next = l->next;
       mb_wm_decor_button_unrealize((MBWMDecorButton *)l->data);
       mb_wm_object_unref (MB_WM_OBJECT (l->data));
-      l = next;
       /* we don't free, because the dispose handler of the decor button
        * removes itself */
     }
 
+  if (decor->buttons)
+    {
+      mb_wm_util_list_free (decor->buttons);
+      decor->buttons = NULL;
+    }
+
   if (decor->press_cb_id)
   {
     mb_wm_main_context_x_event_handler_remove (ctx, ButtonPress,


More information about the maemo-commits mailing list