From 3d41f951f6f90870c6e84b108573d4c30fe3b662 Mon Sep 17 00:00:00 2001 From: Jesse van den Kieboom Date: Mon, 7 Nov 2005 09:43:10 +0000 Subject: [PATCH] Use g_ascii_strtod, use G_DEFINE_TYPE --- src/mcp/gm-mcp-negotiate.c | 80 ++++++++------------------------------ 1 file changed, 17 insertions(+), 63 deletions(-) diff --git a/src/mcp/gm-mcp-negotiate.c b/src/mcp/gm-mcp-negotiate.c index 1174dff..556cb0c 100644 --- a/src/mcp/gm-mcp-negotiate.c +++ b/src/mcp/gm-mcp-negotiate.c @@ -32,42 +32,8 @@ static guint gm_mcp_negotiate_signals[NUM_SIGNALS] = {0};*/ void gm_mcp_negotiate_handle_simple(GmMcpPackage *package, gchar *suffix, GList *fields); - -static void gm_mcp_negotiate_init(GmMcpNegotiate *self); -static void gm_mcp_negotiate_class_init(GmMcpNegotiateClass *klass); -//static void gm_mcp_negotiate_class_finalize(gpointer klass, -// gpointer klass_data); -static gpointer gm_mcp_negotiate_parent_class = NULL; -static void gm_mcp_negotiate_class_intern_init(gpointer klass) { - gm_mcp_negotiate_parent_class = g_type_class_peek_parent(klass); - gm_mcp_negotiate_class_init((GmMcpNegotiateClass *) klass); -} - -GType -gm_mcp_negotiate_get_type() { - static GType g_define_type_id = 0; - - if (G_UNLIKELY(g_define_type_id == 0)) { - static const GTypeInfo g_define_type_info = { - sizeof (GmMcpNegotiateClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) gm_mcp_negotiate_class_intern_init, - (GClassFinalizeFunc) NULL, //gm_mcp_negotiate_class_finalize, - NULL, /* class_data */ - sizeof (GmMcpNegotiate), - 0, /* n_preallocs */ - (GInstanceInitFunc) gm_mcp_negotiate_init, - NULL /* value_table */ - }; - - g_define_type_id = g_type_register_static(GM_TYPE_MCP_PACKAGE, - "GmMcpNegotiate", &g_define_type_info, (GTypeFlags) 0); - } - - return g_define_type_id; \ -} +G_DEFINE_TYPE(GmMcpNegotiate, gm_mcp_negotiate, GM_TYPE_MCP_PACKAGE); static void gm_mcp_negotiate_finalize(GObject *object) { @@ -76,14 +42,6 @@ gm_mcp_negotiate_finalize(GObject *object) { G_OBJECT_CLASS(gm_mcp_negotiate_parent_class)->finalize(object); } -/*static void -gm_mcp_negotiate_class_finalize(gpointer klass, gpointer klass_data) { - GmMcpPackageClass *pklass = GM_MCP_PACKAGE_CLASS(klass); - - g_list_free(pklass->depends); - g_list_free(pklass->overrides); -}*/ - static void gm_mcp_negotiate_class_init(GmMcpNegotiateClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS(klass); @@ -139,8 +97,8 @@ gm_mcp_negotiate_fix_overrides(GmMcpNegotiate *package) { l = g_list_copy(package->priv->packages); for (item = l; item; item = item->next) { - pinfo = (PackageInfo *)(item); - + pinfo = (PackageInfo *)(item->data); + for (over = pinfo->klass->overrides; over; over = over->next) { name = (gchar *)(over->data); @@ -206,21 +164,15 @@ gm_mcp_negotiate_new() { gboolean gm_mcp_negotiate_send_can(GmMcpPackageClass *klass, gpointer user_data) { GmMcpNegotiate *package = GM_MCP_NEGOTIATE(user_data); - gchar *min_v, *max_v; + gchar min_v[16], max_v[16]; - min_v = g_strdup_printf("%'.1f", klass->min_version); - gm_fix_decimal_point_rev(min_v, strlen(min_v)); - - max_v = g_strdup_printf("%'.1f", klass->max_version); - gm_fix_decimal_point_rev(max_v, strlen(max_v)); + g_ascii_formatd(min_v, 16, "%.1f", klass->min_version); + g_ascii_formatd(max_v, 16, "%.1f", klass->max_version); gm_mcp_session_send_simple(GM_MCP_PACKAGE_SESSION(package), "mcp-negotiate-can", "package", klass->name, "min-version", min_v, "max-version", max_v, NULL); - g_free(min_v); - g_free(max_v); - return FALSE; } @@ -233,7 +185,7 @@ gm_mcp_negotiate_handle_simple(GmMcpPackage *package, gchar *suffix, PackageInfo *pinfo; double version; gchar const *min_v, *max_v; - gchar *cmin, *cmax; + gdouble cmin = 0.0, cmax = 0.0; GList *elem; if (strcasecmp(suffix, "can") == 0) { @@ -241,19 +193,21 @@ gm_mcp_negotiate_handle_simple(GmMcpPackage *package, gchar *suffix, pname = gm_mcp_find_value(fields, "package"); pklass = gm_mcp_session_find_package_class(pname); - if (pklass) { + if (pklass) { min_v = gm_mcp_find_value(fields, "min-version"); - cmin = gm_fix_decimal_point(g_strdup(min_v), strlen(min_v)); + + if (min_v) { + cmin = g_ascii_strtod(min_v, NULL); + } max_v = gm_mcp_find_value(fields, "max-version"); - cmax = gm_fix_decimal_point(g_strdup(max_v), strlen(max_v)); + + if (max_v) { + cmax = g_ascii_strtod(max_v, NULL); + } version = gm_mcp_get_version(pklass->min_version, - pklass->max_version, g_ascii_strtod(min_v, NULL), - g_ascii_strtod(max_v, NULL)); - - g_free(cmin); - g_free(cmax); + pklass->max_version, cmin, cmax); if (version > 0.0) { gm_debug_msg(DEBUG_MCP, "GmMcpNegotiate.HandleSimple: %s, "