@@ -289,6 +289,7 @@ static void alarm_set_property(GObject* object, guint prop_id, const GValue* val
289289 g_value_init (& strval , G_TYPE_STRING );
290290 g_value_transform (value , & strval );
291291 g_debug ("Alarm(%p) #%d: set %s=%s" , alarm , alarm -> id , pspec -> name , g_value_get_string (& strval ));
292+ g_value_unset (& strval );
292293
293294 alarm -> changed = TRUE; // Do this for all properties for now (not too much overhead, anyway)
294295
@@ -302,7 +303,9 @@ static void alarm_set_property(GObject* object, guint prop_id, const GValue* val
302303 }
303304 alarm -> id = d ;
304305
305- priv -> settings = g_settings_new_with_path ("io.github.alarm-clock-applet.alarm" , alarm_gsettings_get_dir (alarm ));
306+ gchar * gsettings_dir = alarm_gsettings_get_dir (alarm );
307+ priv -> settings = g_settings_new_with_path ("io.github.alarm-clock-applet.alarm" , gsettings_dir );
308+ g_free (gsettings_dir );
306309
307310 alarm_gsettings_connect (alarm );
308311 }
@@ -351,28 +354,28 @@ static void alarm_set_property(GObject* object, guint prop_id, const GValue* val
351354 }
352355 break ;
353356 case PROP_MESSAGE :
354- if (alarm -> message )
355- g_free (alarm -> message );
356-
357+ g_free (alarm -> message );
357358 alarm -> message = g_strdup (g_value_get_string (value ));
358359 break ;
359360 case PROP_REPEAT :
360361 alarm -> repeat = g_value_get_flags (value );
361362
362- if (alarm -> active ) {
363+ if (alarm -> active )
363364 alarm_update_timestamp (alarm );
364- }
365+
365366 break ;
366367 case PROP_NOTIFY_TYPE :
367368 alarm -> notify_type = g_value_get_enum (value );
368369 break ;
369370 case PROP_SOUND_FILE :
371+ g_free (alarm -> sound_file );
370372 alarm -> sound_file = g_strdup (g_value_get_string (value ));
371373 break ;
372374 case PROP_SOUND_LOOP :
373375 alarm -> sound_loop = g_value_get_boolean (value );
374376 break ;
375377 case PROP_COMMAND :
378+ g_free (alarm -> command );
376379 alarm -> command = g_strdup (g_value_get_string (value ));
377380 break ;
378381 default :
@@ -699,6 +702,9 @@ static void alarm_dispose(GObject* object)
699702 g_object_unref (priv -> settings );
700703 alarm_timer_remove (alarm );
701704 alarm_clear (alarm );
705+ g_free (alarm -> command );
706+ g_free (alarm -> sound_file );
707+ g_free (alarm -> message );
702708}
703709
704710// Called every time an alarm is created or deleted
0 commit comments