diff --git a/src/gnome/gnc-html-guppi.c b/src/gnome/gnc-html-guppi.c
index 2da17e43ef..43f42ce19c 100644
--- a/src/gnome/gnc-html-guppi.c
+++ b/src/gnome/gnc-html-guppi.c
@@ -332,18 +332,19 @@ convert_string_array(char ** strings, int nstrings) {
}
static gboolean
-gnc_arg_list_has_arg (GtkArg *args, guint n_args, const char *arg_name)
+gnc_type_has_arg (GtkType gtype, const char *arg_name)
{
- guint i;
+ GtkArgInfo *arg_info;
+ char *error;
- if (!args)
+ error = gtk_object_arg_get_info (gtype, arg_name, &arg_info);
+ if (error)
+ {
+ g_free (error);
return FALSE;
+ }
- for (i = 0; i < n_args; i++)
- if (safe_strcmp (args[i].name, arg_name) == 0)
- return TRUE;
-
- return FALSE;
+ return TRUE;
}
/********************************************************************
@@ -528,7 +529,7 @@ gnc_html_embedded_barchart(gnc_html * parent,
GuppiObject * barchart = NULL;
GuppiObject * title = NULL;
GtkArg arglist[21];
- GtkArg *guppi_args;
+ GtkType bar_type;
int argind=0;
char * param;
int datarows=0;
@@ -543,7 +544,6 @@ gnc_html_embedded_barchart(gnc_html * parent,
char ** col_colors=NULL;
char ** callbacks=NULL;
char * gtitle = NULL;
- guint n_args;
chart->parent = parent;
@@ -706,12 +706,11 @@ gnc_html_embedded_barchart(gnc_html * parent,
barchart = guppi_object_newv("barchart", w, h,
argind, arglist);
- guppi_args = gtk_object_query_args (GTK_OBJECT_TYPE (barchart),
- NULL, &n_args);
+ bar_type = GTK_OBJECT_TYPE (barchart);
argind = 0;
- if(gnc_arg_list_has_arg (guppi_args, n_args, "legend_reversed") &&
+ if(gnc_type_has_arg (bar_type, "legend_reversed") &&
(param = g_hash_table_lookup(params, "legend_reversed")) != NULL) {
sscanf(param, "%d", &rotate);
arglist[argind].name = "legend_reversed";
@@ -719,7 +718,7 @@ gnc_html_embedded_barchart(gnc_html * parent,
GTK_VALUE_BOOL(arglist[argind]) = rotate;
argind++;
}
- if(gnc_arg_list_has_arg (guppi_args, n_args, "stacked") &&
+ if(gnc_type_has_arg (bar_type, "stacked") &&
(param = g_hash_table_lookup(params, "stacked")) != NULL) {
sscanf(param, "%d", &stacked);
arglist[argind].name = "stacked";
@@ -727,7 +726,7 @@ gnc_html_embedded_barchart(gnc_html * parent,
GTK_VALUE_BOOL(arglist[argind]) = stacked;
argind++;
}
- if(gnc_arg_list_has_arg (guppi_args, n_args, "normalize_stacks") &&
+ if(gnc_type_has_arg (bar_type, "normalize_stacks") &&
(param = g_hash_table_lookup(params, "normalize_stacks")) != NULL) {
sscanf(param, "%d", &normalize_stacks);
arglist[argind].name = "normalize_stacks";
@@ -736,8 +735,6 @@ gnc_html_embedded_barchart(gnc_html * parent,
argind++;
}
- g_free (guppi_args);
-
if (barchart && argind > 0)
gtk_object_setv (GTK_OBJECT (barchart), argind, arglist);