Merge branch 'fixes' into 'main'

Fix crash exposed by glib 2.76

Closes #69

See merge request Librem5/feedbackd!109
This commit is contained in:
Guido Gunther
2023-03-17 16:47:22 +00:00
6 changed files with 16 additions and 10 deletions
+1 -1
View File
@@ -87,7 +87,6 @@ if introspection
'--quiet',
'-DLIBFEEDBACK_COMPILATION',
'-DLIBFEEDBACK_USE_UNSTABLE_API',
'--warn-error',
'--warn-all',
]
@@ -104,6 +103,7 @@ if introspection
install_dir_gir : girdir,
install_dir_typelib : typelibdir,
extra_args : libfeedback_gir_extra_args,
fatal_warnings : true,
)
if get_option('vapi')
+3 -3
View File
@@ -376,8 +376,6 @@ fbd_event_remove_feedback (FbdEvent *self, FbdFeedbackBase *feedback)
void
fbd_event_run_feedbacks (FbdEvent *self)
{
GSList *l;
g_return_if_fail (FBD_IS_EVENT (self));
g_debug ("Running %d feedbacks for event %d", g_slist_length (self->feedbacks), self->id);
@@ -392,10 +390,12 @@ fbd_event_run_feedbacks (FbdEvent *self)
g_source_set_name_by_id (self->timeout_id, "event timeout source");
}
for (l = self->feedbacks; l; l = l->next) {
g_object_ref (self);
for (GSList *l = self->feedbacks; l; l = l->next) {
FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
fbd_feedback_run (fb);
}
g_object_unref (self);
}
/**
+1 -1
View File
@@ -58,7 +58,7 @@ fbd_feedback_profile_serializable_serialize_property (JsonSerializable *serializ
GHashTableIter iter;
gpointer key;
FbdFeedbackProfile *profile;
JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
g_hash_table_iter_init (&iter, self->feedbacks);
while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
+2 -1
View File
@@ -53,7 +53,7 @@ fbd_theme_serializable_serialize_property (JsonSerializable *serializable,
GHashTableIter iter;
gpointer key;
FbdFeedbackProfile *profile;
JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
g_hash_table_iter_init (&iter, self->profiles);
while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
@@ -182,6 +182,7 @@ fbd_feedback_theme_finalize (GObject *object)
{
FbdFeedbackTheme *self = FBD_FEEDBACK_THEME (object);
g_clear_pointer (&self->parent_name, g_free);
g_clear_pointer (&self->name, g_free);
G_OBJECT_CLASS (fbd_feedback_theme_parent_class)->finalize (object);
+1 -1
View File
@@ -68,7 +68,7 @@ test_fbd_feedback_profile_parse (void)
" } ";
g_autoptr (GError) err = NULL;
g_autoptr (FbdFeedbackProfile) profile = NULL;
JsonNode *node;
g_autoptr (JsonNode) node = NULL;
FbdFeedbackBase *fb;
node = json_from_string(json, &err);
+8 -3
View File
@@ -36,11 +36,11 @@ test_fbd_feedback_theme_profiles (void)
g_autoptr (FbdFeedbackDummy) full_fb2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY,
"event-name", "event2",
NULL);
g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
FbdFeedbackTheme *theme = fbd_feedback_theme_new (THEME_NAME);
FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
FbdFeedbackProfile *profile;
g_autofree char *json = NULL;
fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb1));
fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb2));
@@ -55,7 +55,12 @@ test_fbd_feedback_theme_profiles (void)
profile = fbd_feedback_theme_get_profile (theme, "full");
g_assert_true (FBD_IS_FEEDBACK_PROFILE (profile));
g_print ("%s\n", json_gobject_to_data (G_OBJECT(theme), NULL));
json = json_gobject_to_data (G_OBJECT(theme), NULL);
g_print ("%s\n", json);
g_assert_finalize_object (theme);
g_assert_finalize_object (profile_full);
g_assert_finalize_object (profile_quiet);
}