Thank you Nicola, Yes, that's it. Now everything seems to be alright (I'm stupid). Regards, Nicolas
Because you are unrefing it in the wrong place. Now you have:
while ((file_info = g_file_enumerator_next_file()) != NULL) {
...
}
g_object_unref(file_info);
Here file_info is surely NULL and you're lacking tons of refs.
You must do instead:
while ((file_info = g_file_enumerator_next_file()) != NULL) {
...
g_object_unref(file_info);
}