Judging by the stack trace, the immediate problem I'm seeing is right
here, (gnome-menus/libmenu/entry-directories.c) where it uses the
callback function pointer which happens to be NULL. Judging by the lack
of checking, they don't expect it to ever be set to NULL by any code
that creates a CachedDirMonitor -- so there's something wrong somewhere
else too... which I don't have time to track down at the moment.
static void
cached_dir_invoke_monitors (CachedDir *dir)
{
GSList *tmp;
tmp = dir->monitors;
while (tmp != NULL)
{
CachedDirMonitor *monitor = tmp->data;
GSList *next = tmp->next;
monitor->callback (monitor->ed, monitor->user_data);
tmp = next;
}
if (dir->parent)
{
cached_dir_invoke_monitors (dir->parent);
}
}