On Mon, 2006-07-03 at 17:35 +0200, Guus Sliepen wrote: > I guess it crashes when trying to evaluate active_sensor->sensor_values[0], > because sensor_values is a NULL pointer.
Looks like the same crash I was debugging earlier. Can you please try the attached patch? -- Sam Morris http://robots.org.uk/ PGP key id 5EA01078 3412 EA18 1277 354B 991B C869 B219 7FDB 5EA0 1078
diff -Nur sensors-applet-1.7.1/src/active-sensor.c sensors-applet-1.7.1.new/src/active-sensor.c --- sensors-applet-1.7.1/src/active-sensor.c 2006-06-27 05:12:30.000000000 +0100 +++ sensors-applet-1.7.1.new/src/active-sensor.c 2006-07-03 14:51:52.000000000 +0100 @@ -23,6 +23,8 @@ #include "active-sensor.h" #include "sensors-applet-gconf.h" +static gboolean upgrade_warning_displayed = FALSE; + typedef enum { VERY_LOW_SENSOR_VALUE = 0, LOW_SENSOR_VALUE, @@ -163,6 +165,11 @@ g_assert(active_sensor != NULL); + if (active_sensor->sensor_values == NULL) { + g_debug ("active_sensor->sensor_values == NULL!\n"); + return; + } + /* select overlay icon * depending on sensor * value */ @@ -559,6 +566,24 @@ tooltip = g_strdup_printf("%s %s", sensor_label, value_text); + if (active_sensor->sensor_values == NULL) { + g_debug ("active_sensor->sensor_values == NULL!"); + if (! upgrade_warning_displayed) { + upgrade_warning_displayed = TRUE; + + GtkLabel *l = gtk_label_new ("sensors-applet: upgraded; please remove"); + gtk_container_add (active_sensor->sensors_applet->applet, l); + gtk_widget_show (l); + + GtkWidget *md = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, + "%s", "sensors-applet upgraded"); + gtk_message_dialog_format_secondary_text (md, "%s", + "Please add a new instance of the applet to your panel, and remove the old one."); + gtk_dialog_run (GTK_DIALOG (md)); + gtk_widget_destroy (md); + } + } else { + /* update icon if icon range has changed if no * update has been done before */ if ((sensor_value_range(sensor_value, sensor_low_value, sensor_high_value) != sensor_value_range(active_sensor->sensor_values[0], active_sensor->sensor_low_value, active_sensor->sensor_high_value)) || !(active_sensor->updated)) { @@ -628,6 +653,8 @@ active_sensor->graph_event_box, tooltip, tooltip); + + } g_free(label_text); g_free(tooltip);