← Back to team overview

ayatana-commits team mailing list archive

[Merge] lp:~ted/dbusmenu/null-protect-when-set into lp:dbusmenu

 

Ted Gould has proposed merging lp:~ted/dbusmenu/null-protect-when-set into lp:dbusmenu.

Requested reviews:
  DBus Menu Team (dbusmenu-team)

For more details, see:
https://code.launchpad.net/~ted/dbusmenu/null-protect-when-set/+merge/50977

Don't check on the default anything if the incomming value is NULL.
-- 
https://code.launchpad.net/~ted/dbusmenu/null-protect-when-set/+merge/50977
Your team ayatana-commits is subscribed to branch lp:dbusmenu.
=== modified file 'libdbusmenu-glib/menuitem.c'
--- libdbusmenu-glib/menuitem.c	2011-02-22 03:41:54 +0000
+++ libdbusmenu-glib/menuitem.c	2011-02-23 19:28:33 +0000
@@ -1025,31 +1025,34 @@
 	g_return_val_if_fail(property != NULL, FALSE);
 
 	DbusmenuMenuitemPrivate * priv = DBUSMENU_MENUITEM_GET_PRIVATE(mi);
-
-	const gchar * type = menuitem_get_type(mi);
-
-	/* Check the expected type to see if we want to have a warning */
-	GVariantType * default_type = dbusmenu_defaults_default_get_type(priv->defaults, type, property);
-	if (default_type != NULL) {
-		/* If we have an expected type we should check to see if
-		   the value we've been given is of the same type and generate
-		   a warning if it isn't */
-		if (!g_variant_is_of_type(value, default_type)) {
-			g_warning("Setting menuitem property '%s' with value of type '%s' when expecting '%s'", property, g_variant_get_type_string(value), g_variant_type_peek_string(default_type));
+	GVariant * default_value = NULL;
+
+	if (value != NULL) {
+		const gchar * type = menuitem_get_type(mi);
+
+		/* Check the expected type to see if we want to have a warning */
+		GVariantType * default_type = dbusmenu_defaults_default_get_type(priv->defaults, type, property);
+		if (default_type != NULL) {
+			/* If we have an expected type we should check to see if
+			   the value we've been given is of the same type and generate
+			   a warning if it isn't */
+			if (!g_variant_is_of_type(value, default_type)) {
+				g_warning("Setting menuitem property '%s' with value of type '%s' when expecting '%s'", property, g_variant_get_type_string(value), g_variant_type_peek_string(default_type));
+			}
 		}
-	}
 
-	/* Check the defaults database to see if we have a default
-	   for this property. */
-	GVariant * default_value = dbusmenu_defaults_default_get(priv->defaults, type, property);
-	if (default_value != NULL) {
-		/* Now see if we're setting this to the same value as the
-		   default.  If we are then we just want to swallow this variant
-		   and make the function behave like we're clearing it. */
-		if (g_variant_equal(default_value, value)) {
-			g_variant_ref_sink(value);
-			g_variant_unref(value);
-			value = NULL;
+		/* Check the defaults database to see if we have a default
+		   for this property. */
+		default_value = dbusmenu_defaults_default_get(priv->defaults, type, property);
+		if (default_value != NULL) {
+			/* Now see if we're setting this to the same value as the
+			   default.  If we are then we just want to swallow this variant
+			   and make the function behave like we're clearing it. */
+			if (g_variant_equal(default_value, value)) {
+				g_variant_ref_sink(value);
+				g_variant_unref(value);
+				value = NULL;
+			}
 		}
 	}
 


Follow ups