The bug seems to be wrong reference counting of the NautilusSearchEngineRecent, and both search_thread_add_hits_idle and recent_thread_func have been changed in the last upload to have code that looks like this:
however, recent_thread_func (unlike search_thread_add_hits_idle) did not lose the g_object_unref (self); at the end so it decrements once more than it did before.
I do think search_thread_add_hits_idle is wrong as well, and needs to be
g_autoptr (NautilusSearchEngineRecent) self = g_object_ref(search_hits->recent);
or just
NautilusSearchEngineRecent *self = search_hits->recent;
as you are just providing an alias to that field, so why are you decrementing it once every time you call this function?
The bug seems to be wrong reference counting of the NautilusSearchE ngineRecent, and both search_ thread_ add_hits_ idle and recent_thread_func have been changed in the last upload to have code that looks like this:
search_ thread_ add_hits_ idle: EngineRecent) self = search_ hits->recent;
g_autoptr (NautilusSearch
recent_thread_func: EngineRecent) self = NAUTILUS_ SEARCH_ ENGINE_ RECENT (user_data);
g_autoptr (NautilusSearch
however, recent_thread_func (unlike search_ thread_ add_hits_ idle) did not lose the g_object_unref (self); at the end so it decrements once more than it did before.
I do think search_ thread_ add_hits_ idle is wrong as well, and needs to be EngineRecent) self = g_object_ ref(search_ hits->recent) ; hEngineRecent *self = search_ hits->recent;
g_autoptr (NautilusSearch
or just
NautilusSearc
as you are just providing an alias to that field, so why are you decrementing it once every time you call this function?