Vielleicht kann mir jemand von den Glib/GTK/GNOME Entwicklern weiterhelfen:

Hab folgendes Beispiel unter Verwendung der libgnomevfs:
Code:
int main (int argc, char **argv)
{
  const char *output_uri_string = argv[1];
  GnomeVFSResult result;

  /* remember to initialize GnomeVFS! */
  if (!gnome_vfs_init ()) {
    printf ("Could not initialize GnomeVFS\n");
    return 1;
  }

  GnomeVFSURI* output_uri = gnome_vfs_uri_new(output_uri_string);
  const char* mime_type = gnome_vfs_get_mime_type_from_uri(output_uri);
  gnome_vfs_uri_unref(output_uri);
  
  printf("mimeType = '%s'\n", mime_type);  

  GnomeVFSMimeApplication* default_app =
    gnome_vfs_mime_get_default_application(mime_type);

  printf("app = '%s'\n", default_app->name);

  gnome_vfs_mime_application_free (default_app); 

  return 0;  
}
Ich bin mir da als C++ Programmierer nicht ganz sicher, ob ich alle simulierten Objekte richtig wieder frei gebe, also speziell das uri_unref

Ist das so ausreichend um kein Memory Leak zu bekommen, oder gibt es eine passende Pseudodesktruktorfunktion wie gnome_vfs_mime_application_free für das GnomeVFSMimeApplication Objekt?

Ciao,
_