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);
    }
}


Reply via email to