From fc6b18bde0af75bff3710306a45fdf907e248c20 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 17 Jun 2010 13:21:59 -0500 Subject: Icon name shouldn't be construct only. --- src/app-indicator.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app-indicator.c b/src/app-indicator.c index 6c2a8d9..bc43e58 100644 --- a/src/app-indicator.c +++ b/src/app-indicator.c @@ -229,7 +229,7 @@ app_indicator_class_init (AppIndicatorClass *klass) "An icon for the indicator", "The default icon that is shown for the indicator.", NULL, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_CONSTRUCT)); + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** AppIndicator:attention-icon-name: -- cgit v1.2.3 From e589ecaddf4d14e9aeea5aed9f4076b1447cc926 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 17 Jun 2010 17:04:14 -0500 Subject: Reworking to make more clear and use the GEnumValue structure correctly. --- src/application-service-appstore.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index 66943b5..c18ebe2 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -243,7 +243,13 @@ get_all_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * err static AppIndicatorStatus string_to_status(const gchar * status_string) { - return (AppIndicatorStatus) g_enum_get_value_by_nick((GEnumClass *)g_type_class_ref (APP_INDICATOR_TYPE_INDICATOR_STATUS), status_string); + GEnumClass * klass = G_ENUM_CLASS(g_type_class_peek_static(APP_INDICATOR_TYPE_INDICATOR_STATUS)); + g_return_val_if_fail(klass != NULL, APP_INDICATOR_STATUS_PASSIVE); + + GEnumValue * val = g_enum_get_value_by_nick(klass, status_string); + g_return_val_if_fail(val != NULL, APP_INDICATOR_STATUS_PASSIVE); + + return (AppIndicatorStatus)val->value; } /* A small helper function to get the position of an application -- cgit v1.2.3 From ce25d4c9ac44237bb1f38576e99de3533489bd74 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Thu, 17 Jun 2010 22:16:01 -0500 Subject: Use class ref and unref to allocate it if need be. --- src/application-service-appstore.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index c18ebe2..66e3cf3 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -243,13 +243,17 @@ get_all_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * err static AppIndicatorStatus string_to_status(const gchar * status_string) { - GEnumClass * klass = G_ENUM_CLASS(g_type_class_peek_static(APP_INDICATOR_TYPE_INDICATOR_STATUS)); + GEnumClass * klass = G_ENUM_CLASS(g_type_class_ref(APP_INDICATOR_TYPE_INDICATOR_STATUS)); g_return_val_if_fail(klass != NULL, APP_INDICATOR_STATUS_PASSIVE); GEnumValue * val = g_enum_get_value_by_nick(klass, status_string); g_return_val_if_fail(val != NULL, APP_INDICATOR_STATUS_PASSIVE); - return (AppIndicatorStatus)val->value; + AppIndicatorStatus retval = (AppIndicatorStatus)val->value; + + g_type_class_unref(klass); + + return retval; } /* A small helper function to get the position of an application -- cgit v1.2.3 From d4f5fa77e921df815bd67080167a461c51791a26 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Fri, 18 Jun 2010 08:41:33 -0500 Subject: Remove the assert with checking if the value is NULL. --- src/application-service-appstore.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/application-service-appstore.c b/src/application-service-appstore.c index 66e3cf3..15abea3 100644 --- a/src/application-service-appstore.c +++ b/src/application-service-appstore.c @@ -246,10 +246,14 @@ string_to_status(const gchar * status_string) GEnumClass * klass = G_ENUM_CLASS(g_type_class_ref(APP_INDICATOR_TYPE_INDICATOR_STATUS)); g_return_val_if_fail(klass != NULL, APP_INDICATOR_STATUS_PASSIVE); - GEnumValue * val = g_enum_get_value_by_nick(klass, status_string); - g_return_val_if_fail(val != NULL, APP_INDICATOR_STATUS_PASSIVE); + AppIndicatorStatus retval = APP_INDICATOR_STATUS_PASSIVE; - AppIndicatorStatus retval = (AppIndicatorStatus)val->value; + GEnumValue * val = g_enum_get_value_by_nick(klass, status_string); + if (val == NULL) { + g_warning("Unrecognized status '%s' assuming passive.", status_string); + } else { + retval = (AppIndicatorStatus)val->value; + } g_type_class_unref(klass); -- cgit v1.2.3