[maemo-commits] [maemo-commits] r16787 - in projects/haf/trunk/sapwood: . engine

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Nov 27 16:49:09 EET 2008
Author: herzi
Date: 2008-11-27 16:49:07 +0200 (Thu, 27 Nov 2008)
New Revision: 16787

Modified:
   projects/haf/trunk/sapwood/ChangeLog
   projects/haf/trunk/sapwood/engine/sapwood-style.c
Log:
2008-11-27  Sven Herzberg  <sven at imendio.com>

	Properly follow common memory management logic

	* engine/sapwood-style.c (enum_value_to_string): don't access stuff
	after freeing it; now we only leak memory (and only with debugging
	enabled), at least we don't access invalid memory anymore


Modified: projects/haf/trunk/sapwood/ChangeLog
===================================================================
--- projects/haf/trunk/sapwood/ChangeLog	2008-11-27 14:49:02 UTC (rev 16786)
+++ projects/haf/trunk/sapwood/ChangeLog	2008-11-27 14:49:07 UTC (rev 16787)
@@ -1,5 +1,13 @@
 2008-11-27  Sven Herzberg  <sven at imendio.com>
 
+	Properly follow common memory management logic
+
+	* engine/sapwood-style.c (enum_value_to_string): don't access stuff
+	after freeing it; now we only leak memory (and only with debugging
+	enabled), at least we don't access invalid memory anymore
+
+2008-11-27  Sven Herzberg  <sven at imendio.com>
+
 	Added some debug output; patch from Daniel Bormann
 
 	* engine/sapwood-style.c (enum_value_to_string), (draw_hline),

Modified: projects/haf/trunk/sapwood/engine/sapwood-style.c
===================================================================
--- projects/haf/trunk/sapwood/engine/sapwood-style.c	2008-11-27 14:49:02 UTC (rev 16786)
+++ projects/haf/trunk/sapwood/engine/sapwood-style.c	2008-11-27 14:49:07 UTC (rev 16787)
@@ -45,14 +45,16 @@
 {
   gpointer enum_class;
   GEnumValue *val;
+  gchar* result;
 
   g_assert (G_TYPE_IS_ENUM (enum_type));
 
   enum_class = g_type_class_ref (enum_type);
   val = g_enum_get_value (G_ENUM_CLASS (enum_class), enum_value);
+  result = g_strdup (val ? val->value_nick : "undefined");
   g_type_class_unref (enum_class);
 
-  return (val && val->value_nick) ? (gchar*) val->value_nick : "undefined";
+  return result;
 }
 #endif /* ENABLE_DEBUG */
 
@@ -505,6 +507,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=hline, state=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -547,6 +550,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=vline, state=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -590,6 +594,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=shadow, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -673,6 +678,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=arrow, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -771,6 +777,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=diamond, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -804,6 +811,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=string, state=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -887,6 +895,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=box, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -984,7 +993,8 @@
 
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
-  
+
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=flat_box, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -997,7 +1007,7 @@
   {
     if (!GTK_WIDGET_IS_SENSITIVE(widget))
       state = GTK_STATE_INSENSITIVE;
-      
+
     if (GTK_WIDGET_HAS_FOCUS(widget))
       state = GTK_STATE_ACTIVE;
   }
@@ -1036,6 +1046,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=check, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1081,6 +1092,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=option, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1126,6 +1138,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=tab, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1163,6 +1176,7 @@
 {
   ThemeMatchData match_data;
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=shadow_gap, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1204,6 +1218,7 @@
 {
   ThemeMatchData match_data;
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=box_gap, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1244,6 +1259,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=expander, state=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1303,6 +1319,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=extension, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1341,6 +1358,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=focus, state=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1377,6 +1395,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=slider, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1420,6 +1439,7 @@
   g_return_if_fail (style != NULL);
   g_return_if_fail (window != NULL);
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=handle, state=%s, shadow=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state),
@@ -1529,6 +1549,7 @@
    * state in the default theme engine */
   GdkGC *gc;
 
+  /* FIXME: memory leak */
   LOG ("widget=%s, primitive=layout, state=%s, detail='%s', name='%s'",
         G_OBJECT_TYPE_NAME (widget),
         enum_value_to_string (gtk_state_type_get_type (), state_type),


More information about the maemo-commits mailing list