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);