|
|
b06f90 |
From 847c21d78ea61faa101f58792389373ce2109d54 Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:16 +0100
|
|
|
b06f90 |
Subject: [PATCH 1/9] build: Avoid meson deprecation warning
|
|
|
b06f90 |
|
|
|
b06f90 |
---
|
|
|
b06f90 |
libfeedback/meson.build | 2 +-
|
|
|
b06f90 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/libfeedback/meson.build b/libfeedback/meson.build
|
|
|
b06f90 |
index 09a495c..27d94c6 100644
|
|
|
b06f90 |
--- a/libfeedback/meson.build
|
|
|
b06f90 |
+++ b/libfeedback/meson.build
|
|
|
b06f90 |
@@ -87,7 +87,6 @@ if introspection
|
|
|
b06f90 |
'--quiet',
|
|
|
b06f90 |
'-DLIBFEEDBACK_COMPILATION',
|
|
|
b06f90 |
'-DLIBFEEDBACK_USE_UNSTABLE_API',
|
|
|
b06f90 |
- '--warn-error',
|
|
|
b06f90 |
'--warn-all',
|
|
|
b06f90 |
]
|
|
|
b06f90 |
|
|
|
b06f90 |
@@ -104,6 +103,7 @@ if introspection
|
|
|
b06f90 |
install_dir_gir : girdir,
|
|
|
b06f90 |
install_dir_typelib : typelibdir,
|
|
|
b06f90 |
extra_args : libfeedback_gir_extra_args,
|
|
|
b06f90 |
+ fatal_warnings : true,
|
|
|
b06f90 |
)
|
|
|
b06f90 |
|
|
|
b06f90 |
if get_option('vapi')
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 64076e5ad08dd297a1d602b4a37b640e9a03c784 Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:17 +0100
|
|
|
b06f90 |
Subject: [PATCH 2/9] fbd-event: Simplify
|
|
|
b06f90 |
|
|
|
b06f90 |
Gbp-Dch: Ignore
|
|
|
b06f90 |
---
|
|
|
b06f90 |
src/fbd-event.c | 4 +---
|
|
|
b06f90 |
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/src/fbd-event.c b/src/fbd-event.c
|
|
|
b06f90 |
index 96e1c6d..5791d2f 100644
|
|
|
b06f90 |
--- a/src/fbd-event.c
|
|
|
b06f90 |
+++ b/src/fbd-event.c
|
|
|
b06f90 |
@@ -376,8 +376,6 @@ fbd_event_remove_feedback (FbdEvent *self, FbdFeedbackBase *feedback)
|
|
|
b06f90 |
void
|
|
|
b06f90 |
fbd_event_run_feedbacks (FbdEvent *self)
|
|
|
b06f90 |
{
|
|
|
b06f90 |
- GSList *l;
|
|
|
b06f90 |
-
|
|
|
b06f90 |
g_return_if_fail (FBD_IS_EVENT (self));
|
|
|
b06f90 |
|
|
|
b06f90 |
g_debug ("Running %d feedbacks for event %d", g_slist_length (self->feedbacks), self->id);
|
|
|
b06f90 |
@@ -392,7 +390,7 @@ fbd_event_run_feedbacks (FbdEvent *self)
|
|
|
b06f90 |
g_source_set_name_by_id (self->timeout_id, "event timeout source");
|
|
|
b06f90 |
}
|
|
|
b06f90 |
|
|
|
b06f90 |
- for (l = self->feedbacks; l; l = l->next) {
|
|
|
b06f90 |
+ for (GSList *l = self->feedbacks; l; l = l->next) {
|
|
|
b06f90 |
FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
|
|
|
b06f90 |
fbd_feedback_run (fb);
|
|
|
b06f90 |
}
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 03b0f4c2aa35548e0655db002b21e1e02dd8210e Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:18 +0100
|
|
|
b06f90 |
Subject: [PATCH 3/9] fbd-event: Make sure we iterate the list safely
|
|
|
b06f90 |
|
|
|
b06f90 |
When all feedbacks are done the event signals "feedbacks-ended" which
|
|
|
b06f90 |
lets the manager dispose the feedback. When all feedbacks end instantly
|
|
|
b06f90 |
and synchronously (as is the case with the dummy feedback) this triggers
|
|
|
b06f90 |
the disposal of the event within the loop leading to a crash.
|
|
|
b06f90 |
|
|
|
b06f90 |
Make sure the object doesn't go away be referencing it during the loop
|
|
|
b06f90 |
iteration.
|
|
|
b06f90 |
|
|
|
b06f90 |
We didn't see this before as glib's slice allocator for lists papered
|
|
|
b06f90 |
over this for us.
|
|
|
b06f90 |
|
|
|
b06f90 |
Closes: https://source.puri.sm/Librem5/feedbackd/-/issues/69
|
|
|
b06f90 |
---
|
|
|
b06f90 |
src/fbd-event.c | 2 ++
|
|
|
b06f90 |
1 file changed, 2 insertions(+)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/src/fbd-event.c b/src/fbd-event.c
|
|
|
b06f90 |
index 5791d2f..917b5e2 100644
|
|
|
b06f90 |
--- a/src/fbd-event.c
|
|
|
b06f90 |
+++ b/src/fbd-event.c
|
|
|
b06f90 |
@@ -390,10 +390,12 @@ fbd_event_run_feedbacks (FbdEvent *self)
|
|
|
b06f90 |
g_source_set_name_by_id (self->timeout_id, "event timeout source");
|
|
|
b06f90 |
}
|
|
|
b06f90 |
|
|
|
b06f90 |
+ g_object_ref (self);
|
|
|
b06f90 |
for (GSList *l = self->feedbacks; l; l = l->next) {
|
|
|
b06f90 |
FbdFeedbackBase *fb = FBD_FEEDBACK_BASE (l->data);
|
|
|
b06f90 |
fbd_feedback_run (fb);
|
|
|
b06f90 |
}
|
|
|
b06f90 |
+ g_object_unref (self);
|
|
|
b06f90 |
}
|
|
|
b06f90 |
|
|
|
b06f90 |
/**
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 460985cfa03ad0a091bb2acf0d283606edb95593 Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:20 +0100
|
|
|
b06f90 |
Subject: [PATCH 4/9] tests: Don't leak json string
|
|
|
b06f90 |
|
|
|
b06f90 |
---
|
|
|
b06f90 |
tests/test-fbd-feedback-theme.c | 5 +++--
|
|
|
b06f90 |
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/tests/test-fbd-feedback-theme.c b/tests/test-fbd-feedback-theme.c
|
|
|
b06f90 |
index c5cb636..5bd00da 100644
|
|
|
b06f90 |
--- a/tests/test-fbd-feedback-theme.c
|
|
|
b06f90 |
+++ b/tests/test-fbd-feedback-theme.c
|
|
|
b06f90 |
@@ -37,10 +37,10 @@ test_fbd_feedback_theme_profiles (void)
|
|
|
b06f90 |
"event-name", "event2",
|
|
|
b06f90 |
NULL);
|
|
|
b06f90 |
g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
|
|
|
b06f90 |
-
|
|
|
b06f90 |
FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
|
|
|
b06f90 |
FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
|
|
|
b06f90 |
FbdFeedbackProfile *profile;
|
|
|
b06f90 |
+ g_autofree char *json = NULL;
|
|
|
b06f90 |
|
|
|
b06f90 |
fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb1));
|
|
|
b06f90 |
fbd_feedback_profile_add_feedback (profile_quiet, FBD_FEEDBACK_BASE(quiet_fb2));
|
|
|
b06f90 |
@@ -55,7 +55,8 @@ test_fbd_feedback_theme_profiles (void)
|
|
|
b06f90 |
profile = fbd_feedback_theme_get_profile (theme, "full");
|
|
|
b06f90 |
g_assert_true (FBD_IS_FEEDBACK_PROFILE (profile));
|
|
|
b06f90 |
|
|
|
b06f90 |
- g_print ("%s\n", json_gobject_to_data (G_OBJECT(theme), NULL));
|
|
|
b06f90 |
+ json = json_gobject_to_data (G_OBJECT(theme), NULL);
|
|
|
b06f90 |
+ g_print ("%s\n", json);
|
|
|
b06f90 |
}
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 1933a23172e231917bd51af76d19b204c7c08805 Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:20 +0100
|
|
|
b06f90 |
Subject: [PATCH 5/9] tests: Don't leak profiles and test that
|
|
|
b06f90 |
|
|
|
b06f90 |
We finalize the theme first so the last reference is dropped when
|
|
|
b06f90 |
finalizing the profiles.
|
|
|
b06f90 |
---
|
|
|
b06f90 |
tests/test-fbd-feedback-theme.c | 6 +++++-
|
|
|
b06f90 |
1 file changed, 5 insertions(+), 1 deletion(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/tests/test-fbd-feedback-theme.c b/tests/test-fbd-feedback-theme.c
|
|
|
b06f90 |
index 5bd00da..f1987be 100644
|
|
|
b06f90 |
--- a/tests/test-fbd-feedback-theme.c
|
|
|
b06f90 |
+++ b/tests/test-fbd-feedback-theme.c
|
|
|
b06f90 |
@@ -36,7 +36,7 @@ test_fbd_feedback_theme_profiles (void)
|
|
|
b06f90 |
g_autoptr (FbdFeedbackDummy) full_fb2 = g_object_new (FBD_TYPE_FEEDBACK_DUMMY,
|
|
|
b06f90 |
"event-name", "event2",
|
|
|
b06f90 |
NULL);
|
|
|
b06f90 |
- g_autoptr(FbdFeedbackTheme) theme = fbd_feedback_theme_new (THEME_NAME);
|
|
|
b06f90 |
+ FbdFeedbackTheme *theme = fbd_feedback_theme_new (THEME_NAME);
|
|
|
b06f90 |
FbdFeedbackProfile *profile_full = fbd_feedback_profile_new ("full");
|
|
|
b06f90 |
FbdFeedbackProfile *profile_quiet = fbd_feedback_profile_new ("quiet");
|
|
|
b06f90 |
FbdFeedbackProfile *profile;
|
|
|
b06f90 |
@@ -57,6 +57,10 @@ test_fbd_feedback_theme_profiles (void)
|
|
|
b06f90 |
|
|
|
b06f90 |
json = json_gobject_to_data (G_OBJECT(theme), NULL);
|
|
|
b06f90 |
g_print ("%s\n", json);
|
|
|
b06f90 |
+
|
|
|
b06f90 |
+ g_assert_finalize_object (theme);
|
|
|
b06f90 |
+ g_assert_finalize_object (profile_full);
|
|
|
b06f90 |
+ g_assert_finalize_object (profile_quiet);
|
|
|
b06f90 |
}
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 5206c3aae53f52a7629eb891027adcf850ed3f6e Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:21 +0100
|
|
|
b06f90 |
Subject: [PATCH 6/9] feedback-profile: Don't leak json array when serializing
|
|
|
b06f90 |
profile
|
|
|
b06f90 |
|
|
|
b06f90 |
json_array_add_element doesn't transfer ownership
|
|
|
b06f90 |
---
|
|
|
b06f90 |
src/fbd-feedback-profile.c | 2 +-
|
|
|
b06f90 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/src/fbd-feedback-profile.c b/src/fbd-feedback-profile.c
|
|
|
b06f90 |
index 28d6f29..94cbb36 100644
|
|
|
b06f90 |
--- a/src/fbd-feedback-profile.c
|
|
|
b06f90 |
+++ b/src/fbd-feedback-profile.c
|
|
|
b06f90 |
@@ -58,7 +58,7 @@ fbd_feedback_profile_serializable_serialize_property (JsonSerializable *serializ
|
|
|
b06f90 |
GHashTableIter iter;
|
|
|
b06f90 |
gpointer key;
|
|
|
b06f90 |
FbdFeedbackProfile *profile;
|
|
|
b06f90 |
- JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
|
|
|
b06f90 |
+ g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
|
|
|
b06f90 |
|
|
|
b06f90 |
g_hash_table_iter_init (&iter, self->feedbacks);
|
|
|
b06f90 |
while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 7becab334633747f9b73edfaa103ffecc15a9bfb Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:21 +0100
|
|
|
b06f90 |
Subject: [PATCH 7/9] feedback-theme: Don't leak json array when serializing
|
|
|
b06f90 |
profile
|
|
|
b06f90 |
|
|
|
b06f90 |
json_array_add_element doesn't transfer ownership.
|
|
|
b06f90 |
---
|
|
|
b06f90 |
src/fbd-feedback-theme.c | 2 +-
|
|
|
b06f90 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/src/fbd-feedback-theme.c b/src/fbd-feedback-theme.c
|
|
|
b06f90 |
index 3274920..966feb8 100644
|
|
|
b06f90 |
--- a/src/fbd-feedback-theme.c
|
|
|
b06f90 |
+++ b/src/fbd-feedback-theme.c
|
|
|
b06f90 |
@@ -53,7 +53,7 @@ fbd_theme_serializable_serialize_property (JsonSerializable *serializable,
|
|
|
b06f90 |
GHashTableIter iter;
|
|
|
b06f90 |
gpointer key;
|
|
|
b06f90 |
FbdFeedbackProfile *profile;
|
|
|
b06f90 |
- JsonArray *array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
|
|
|
b06f90 |
+ g_autoptr (JsonArray) array = json_array_sized_new (FBD_FEEDBACK_PROFILE_N_PROFILES);
|
|
|
b06f90 |
|
|
|
b06f90 |
g_hash_table_iter_init (&iter, self->profiles);
|
|
|
b06f90 |
while (g_hash_table_iter_next (&iter, (gpointer *)&key, (gpointer *) &profile)) {
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From 3d7c4b376a7c94a6566f883d6d17bb9085428c43 Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:23 +0100
|
|
|
b06f90 |
Subject: [PATCH 8/9] feedback-theme: Don't leak parent name
|
|
|
b06f90 |
|
|
|
b06f90 |
---
|
|
|
b06f90 |
src/fbd-feedback-theme.c | 1 +
|
|
|
b06f90 |
1 file changed, 1 insertion(+)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/src/fbd-feedback-theme.c b/src/fbd-feedback-theme.c
|
|
|
b06f90 |
index 966feb8..e416f89 100644
|
|
|
b06f90 |
--- a/src/fbd-feedback-theme.c
|
|
|
b06f90 |
+++ b/src/fbd-feedback-theme.c
|
|
|
b06f90 |
@@ -182,6 +182,7 @@ fbd_feedback_theme_finalize (GObject *object)
|
|
|
b06f90 |
{
|
|
|
b06f90 |
FbdFeedbackTheme *self = FBD_FEEDBACK_THEME (object);
|
|
|
b06f90 |
|
|
|
b06f90 |
+ g_clear_pointer (&self->parent_name, g_free);
|
|
|
b06f90 |
g_clear_pointer (&self->name, g_free);
|
|
|
b06f90 |
|
|
|
b06f90 |
G_OBJECT_CLASS (fbd_feedback_theme_parent_class)->finalize (object);
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|
|
|
b06f90 |
|
|
|
b06f90 |
From f9c65381db4382c087835c728b0ad990b1e6cea0 Mon Sep 17 00:00:00 2001
|
|
|
b06f90 |
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
|
|
|
b06f90 |
Date: Mon, 13 Mar 2023 15:24:24 +0100
|
|
|
b06f90 |
Subject: [PATCH 9/9] tests/profile: Don't leak json node
|
|
|
b06f90 |
|
|
|
b06f90 |
---
|
|
|
b06f90 |
tests/test-fbd-feedback-profile.c | 2 +-
|
|
|
b06f90 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
b06f90 |
|
|
|
b06f90 |
diff --git a/tests/test-fbd-feedback-profile.c b/tests/test-fbd-feedback-profile.c
|
|
|
b06f90 |
index 96fd247..546cc90 100644
|
|
|
b06f90 |
--- a/tests/test-fbd-feedback-profile.c
|
|
|
b06f90 |
+++ b/tests/test-fbd-feedback-profile.c
|
|
|
b06f90 |
@@ -68,7 +68,7 @@ test_fbd_feedback_profile_parse (void)
|
|
|
b06f90 |
" } ";
|
|
|
b06f90 |
g_autoptr (GError) err = NULL;
|
|
|
b06f90 |
g_autoptr (FbdFeedbackProfile) profile = NULL;
|
|
|
b06f90 |
- JsonNode *node;
|
|
|
b06f90 |
+ g_autoptr (JsonNode) node = NULL;
|
|
|
b06f90 |
FbdFeedbackBase *fb;
|
|
|
b06f90 |
|
|
|
b06f90 |
node = json_from_string(json, &err;;
|
|
|
b06f90 |
--
|
|
|
b06f90 |
GitLab
|
|
|
b06f90 |
|