Critical warning due to the fact that ThunarFile basename can sometimes be null
I'm not sure the right fix is simply to add a sanity check in thunar_file_is_desktop_file(), so I'd rather open an issue.
This happens in slightly odd situations, perhaps when a file no longer exists by the time Thunar tries to access it. I think the last time I was in a directory deleted on the command line in parallel.
sept. 24 17:38:26 pc thunar.orig[661]: g_str_has_suffix: assertion 'str != NULL' failed
Core was generated by `/opt/bin/thunar.orig --daemon'.
Program terminated with signal SIGTRAP, Trace/breakpoint trap.
#0 g_logv (log_domain=0x7f079f674161 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>)
at ../glib/glib/gmessages.c:1423
1423 g_private_set (&g_log_depth, GUINT_TO_POINTER (depth));
[Current thread is 1 (LWP 661)]
(gdb) bt
#0 g_logv (log_domain=0x7f079f674161 "GLib", log_level=G_LOG_LEVEL_CRITICAL, format=<optimized out>, args=<optimized out>)
at ../glib/glib/gmessages.c:1423
#1 0x00007f079f5bc6d4 in g_log (log_domain=<optimized out>, log_level=<optimized out>, format=<optimized out>) at ../glib/glib/gmessages.c:1461
#2 0x00007f079f5d55eb in g_str_has_suffix (str=str@entry=0x0, suffix=suffix@entry=0x5631a8257a3a ".desktop") at ../glib/glib/gstrfuncs.c:2940
#3 0x00005631a81fc296 in thunar_file_is_desktop_file (file=0x7f07700011c0) at thunar-file.c:3318
#4 0x00005631a81e0499 in thunar_action_manager_set_selected_files (component=0x5631a99f3f60, selected_files=<optimized out>)
at thunar-action-manager.c:678
#5 0x00007f079f6ca4fb in object_set_property
(object=object@entry=0x5631a99f3f60, pspec=0x5631a992c510, value=value@entry=0x7ffd39093800, nqueue=nqueue@entry=0x0, user_specified=user_specified@entry=1) at ../glib/gobject/gobject.c:1811
#6 0x00007f079f6cd3e2 in g_object_setv (values=<optimized out>, names=<optimized out>, n_properties=<optimized out>, object=0x5631a99f3f60)
at ../glib/gobject/gobject.c:2722
#7 g_object_setv (object=0x5631a99f3f60, n_properties=<optimized out>, names=<optimized out>, values=<optimized out>)
at ../glib/gobject/gobject.c:2693
#8 0x00007f079f6cd620 in g_object_set_property (object=<optimized out>, property_name=<optimized out>, value=<optimized out>)
at ../glib/gobject/gobject.c:3022
#9 0x00007f079f6bbc4d in on_source_notify (source=<optimized out>, pspec=<optimized out>, context=<optimized out>)
at ../glib/gobject/gbinding.c:556
#10 0x00007f079f6ba6c0 in g_closure_invoke
(closure=0x5631a9ed6d80, return_value=0x0, n_param_values=2, param_values=0x7ffd39093a50, invocation_hint=0x7ffd390939a0)
at ../glib/gobject/gclosure.c:832
#11 0x00007f079f6e8a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffd39093b40, detail=detail@entry=1747, instance=instance@entry=0x5631a9be1050, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd39093a50) at ../glib/gobject/gsignal.c:3980
#12 0x00007f079f6d9a42 in signal_emit_valist_unlocked
(instance=instance@entry=0x5631a9be1050, signal_id=signal_id@entry=1, detail=detail@entry=1747, var_args=var_args@entry=0x7ffd39093ca0)
at ../glib/gobject/gsignal.c:3612
#13 0x00007f079f6d9c77 in g_signal_emit_valist (instance=0x5631a9be1050, signal_id=1, detail=1747, var_args=var_args@entry=0x7ffd39093ca0)
at ../glib/gobject/gsignal.c:3355
#14 0x00007f079f6d9d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
at ../glib/gobject/gsignal.c:3675
#15 0x00007f079f6c5636 in g_object_dispatch_properties_changed (object=0x5631a9be1050, n_pspecs=<optimized out>, pspecs=<optimized out>)
at ../glib/gobject/gobject.c:1427
#16 0x00007f079f6c8ab3 in g_object_notify_by_spec_internal (pspec=<optimized out>, object=0x5631a9be1050) at ../glib/gobject/gobject.c:1551
#17 g_object_notify_by_pspec (object=object@entry=0x5631a9be1050, pspec=<optimized out>) at ../glib/gobject/gobject.c:1657
#18 0x00005631a82340f4 in thunar_standard_view_selection_changed (standard_view=0x5631a9be1050) at thunar-standard-view.c:3924
#19 0x00007f079f6ba6c0 in g_closure_invoke
(closure=0x5631a9d76510, return_value=0x0, n_param_values=2, param_values=0x7ffd39094010, invocation_hint=0x7ffd39093f60)
at ../glib/gobject/gclosure.c:832
#20 0x00007f079f6e8a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffd39094100, detail=detail@entry=2236, instance=instance@entry=0x5631a99f4650, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd39094010) at ../glib/gobject/gsignal.c:3980
#21 0x00007f079f6d9a42 in signal_emit_valist_unlocked
(instance=instance@entry=0x5631a99f4650, signal_id=signal_id@entry=1, detail=detail@entry=2236, var_args=var_args@entry=0x7ffd39094260)
at ../glib/gobject/gsignal.c:3612
#22 0x00007f079f6d9c77 in g_signal_emit_valist (instance=0x5631a99f4650, signal_id=1, detail=2236, var_args=var_args@entry=0x7ffd39094260)
at ../glib/gobject/gsignal.c:3355
#23 0x00007f079f6d9d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
at ../glib/gobject/gsignal.c:3675
#24 0x00007f079f6c5636 in g_object_dispatch_properties_changed (object=0x5631a99f4650, n_pspecs=<optimized out>, pspecs=<optimized out>)
at ../glib/gobject/gobject.c:1427
#25 0x00007f079f6bac72 in g_object_notify_queue_thaw (object=0x5631a99f4650, nqueue=<optimized out>) at ../glib/gobject/gobject.c:358
#26 0x00007f079f6c8c0f in g_object_thaw_notify (object=0x5631a99f4650) at ../glib/gobject/gobject.c:1700
#27 g_object_thaw_notify (object=0x5631a99f4650) at ../glib/gobject/gobject.c:1675
#28 0x00007f079f6ba6c0 in g_closure_invoke
(closure=0x5631a9d80520, return_value=0x0, n_param_values=1, param_values=0x7ffd39094620, invocation_hint=0x7ffd39094570)
at ../glib/gobject/gclosure.c:832
#29 0x00007f079f6e8a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffd390946f0, detail=detail@entry=0, instance=instance@entry=0x5631a9d34640, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd39094620) at ../glib/gobject/gsignal.c:3980
#30 0x00007f079f6d9a42 in signal_emit_valist_unlocked
(instance=instance@entry=0x5631a9d34640, signal_id=signal_id@entry=533, detail=detail@entry=0, var_args=var_args@entry=0x7ffd39094850)
at ../glib/gobject/gsignal.c:3612
#31 0x00007f079f6d9c77 in g_signal_emit_valist (instance=0x5631a9d34640, signal_id=533, detail=0, var_args=var_args@entry=0x7ffd39094850)
at ../glib/gobject/gsignal.c:3355
#32 0x00007f079f6d9d34 in g_signal_emit (instance=instance@entry=0x5631a9d34640, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib/gobject/gsignal.c:3675
#33 0x00005631a8200716 in thunar_folder_dispose (object=0x5631a9d34640) at thunar-folder.c:300
#34 0x00007f079f6c8900 in g_object_run_dispose (object=0x5631a9d34640) at ../glib/gobject/gobject.c:1447
#35 g_object_run_dispose (object=0x5631a9d34640) at ../glib/gobject/gobject.c:1440
#36 0x00007f079f6ba6c0 in g_closure_invoke
(closure=0x5631a9e984f0, return_value=0x0, n_param_values=2, param_values=0x7ffd39094b30, invocation_hint=0x7ffd39094a80)
at ../glib/gobject/gclosure.c:832
#37 0x00007f079f6e8a36 in signal_emit_unlocked_R.isra.0
(node=node@entry=0x7ffd39094c20, detail=detail@entry=0, instance=instance@entry=0x5631a9b6bc10, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd39094b30) at ../glib/gobject/gsignal.c:3980
#38 0x00007f079f6d9a42 in signal_emit_valist_unlocked
(instance=instance@entry=0x5631a9b6bc10, signal_id=signal_id@entry=463, detail=detail@entry=0, var_args=var_args@entry=0x7ffd39094d80)
at ../glib/gobject/gsignal.c:3612
#39 0x00007f079f6d9c77 in g_signal_emit_valist (instance=0x5631a9b6bc10, signal_id=463, detail=0, var_args=var_args@entry=0x7ffd39094d80)
at ../glib/gobject/gsignal.c:3355
#40 0x00007f079f6d9d34 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=detail@entry=0)
at ../glib/gobject/gsignal.c:3675
#41 0x00005631a82005b1 in thunar_file_monitor_file_destroyed (file=file@entry=0x7f07700011c0) at thunar-file-monitor.c:182
#42 0x00005631a81fe1a3 in thunar_file_destroy (file=0x7f07700011c0) at thunar-file.c:4451
#43 thunar_file_destroy (file=0x7f07700011c0) at thunar-file.c:4439
#44 thunar_file_reload (file=0x7f07700011c0) at thunar-file.c:4365
#49 0x00007f079f6d9d34 in <emit signal 'changed' on instance ???> (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>)
at ../glib/gobject/gsignal.c:3675
#45 0x00007f079f77b529 in _g_cclosure_marshal_VOID__OBJECT_OBJECT_ENUMv
(closure=0x5631a9ec2950, return_value=<optimized out>, instance=0x5631a9ee6300, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5631a9972c60) at ../glib/gio/gmarshal-internal.c:1382
#46 0x00007f079f6d9b73 in _g_closure_invoke_va
(param_types=0x5631a9972c60, n_params=<optimized out>, args=0x7ffd390950f0, instance=0x5631a9ee6300, return_value=0x0, closure=0x5631a9ec2950)
at ../glib/gobject/gclosure.c:895
#47 signal_emit_valist_unlocked
(instance=instance@entry=0x5631a9ee6300, signal_id=signal_id@entry=482, detail=detail@entry=0, var_args=var_args@entry=0x7ffd390950f0)
at ../glib/gobject/gsignal.c:3516
#48 0x00007f079f6d9c77 in g_signal_emit_valist (instance=0x5631a9ee6300, signal_id=482, detail=0, var_args=var_args@entry=0x7ffd390950f0)
at ../glib/gobject/gsignal.c:3355
#50 0x00007f079f83fafc in g_file_monitor_source_dispatch (source=0x5631a9f52300, callback=<optimized out>, user_data=<optimized out>)
at ../glib/gio/glocalfilemonitor.c:582
#51 0x00007f079f5b3f19 in g_main_dispatch (context=0x5631a9727270) at ../glib/glib/gmain.c:3476
#52 0x00007f079f6122b7 in g_main_context_dispatch_unlocked (context=0x5631a9727270) at ../glib/glib/gmain.c:4284
#53 g_main_context_iterate_unlocked.isra.0
(context=context@entry=0x5631a9727270, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4349
#54 0x00007f079f5b2112 in g_main_context_iteration (context=context@entry=0x5631a9727270, may_block=may_block@entry=1) at ../glib/glib/gmain.c:4414
#55 0x00007f079f7e7af6 in g_application_run (application=application@entry=0x5631a9737fb0, argc=argc@entry=2, argv=argv@entry=0x7ffd39095558)
at ../glib/gio/gapplication.c:2577
#56 0x00005631a81d3daf in main (argc=2, argv=0x7ffd39095558) at main.c:86