gtk_application_set_accels_for_action crashed on windows, but work fine on linux
this function crashed on windows, but work fine on linux(ArchLinux)
Steps to reproduce
Sample code: accels_action.vala
public ApplicationActions(Gtk.Application app_kangaroo) {
Object(app: app_kangaroo);
}
construct {
// register actions about application
var actions = new SimpleActionGroup ();
actions.add_action_entries (action_entries, this);
app.active_window.insert_action_group (ACTION_GROUP, actions);
// register shortcut for app actions
action_accelerators = new Gee.HashMultiMap<string, string> ();
action_accelerators.set (ACTION_APPLICATION_QUIT, "<Primary>q");
action_accelerators.set (ACTION_APPLICATION_PREFERENCE, "<Primary>comma");
foreach (var action in action_accelerators.get_keys ()) {
app.set_accels_for_action (ACTION_PREFIX + action, action_accelerators[action].to_array ());
}
}
Version information
OS: Windows 6.1.7601
MSYS: 3.1.4
glib-2.0: 2.64.1
gio-2.0: 2.64.1
gtk+-3.0: 3.24.14
gdk-pixbuf-2.0: 2.40.0
gee-0.8: 0.20.3
json-glib-1.0: 1.4.4
libsoup-2.4: 2.70.0
libgda-5.0: 5.2.9
gtksourceview-4: 4.6.0
libxml-2.0: 2.9.10
openssl: 1.1.1d
libssh2: 1.9.0
Backtrace
Thread 1 received signal SIGSEGV, Segmentation fault.
0x000007feff365b80 in strlen () from C:\Windows\system32\msvcrt.dll
(gdb) bt
#0 0x000007feff365b80 in strlen () from C:\Windows\system32\msvcrt.dll
#1 0x000000006771a75a in libgtk-3-0!gtk_accelerator_parse_with_keycode ()
from C:\msys\mingw64\bin\libgtk-3-0.dll
#2 0x000000006772a7cf in libgtk-3-0!gtk_application_get_menu_by_id ()
from C:\msys\mingw64\bin\libgtk-3-0.dll
#3 0x0000000067729617 in libgtk-3-0!gtk_application_set_accels_for_action ()
from C:\msys\mingw64\bin\libgtk-3-0.dll
#4 0x00000000004e299e in kangaroo_gui_actions_workbench_actions_constructor (
type=88449904, n_construct_properties=1, construct_properties=0x5576440)
at ../src/Gui/Actions/action_workbench.vala:60
#5 0x00000000002dbbff in libgobject-2.0-0!g_object_unref ()
from C:\msys\mingw64\bin\libgobject-2.0-0.dll
#6 0x00000000002ddb16 in libgobject-2.0-0!g_object_new_valist ()
from C:\msys\mingw64\bin\libgobject-2.0-0.dll
#7 0x00000000002ddd52 in libgobject-2.0-0!g_object_new ()
from C:\msys\mingw64\bin\libgobject-2.0-0.dll
#8 0x00000000004e17cf in kangaroo_gui_actions_workbench_actions_construct (
object_type=88449904, app_kangaroo=0x2c49180)
at ../src/Gui/Actions/action_workbench.vala:43
#9 0x00000000004e17fa in kangaroo_gui_actions_workbench_actions_new (
app_kangaroo=0x2c49180) at ../src/Gui/Actions/action_workbench.vala:42
#10 0x00000000004da2ba in kangaroo_gui_actions_action_manager_construct (
object_type=102211168, app=0x2c49180)
at ../src/Gui/Actions/action_manager.vala:29
#11 0x00000000004da627 in kangaroo_gui_actions_action_manager_new (
app=0x2c49180) at ../src/Gui/Actions/action_manager.vala:27
#12 0x000000000061ec7b in kangaroo_kapplication_real_startup (base=0x2c49180)
at ../src/application.vala:71
#13 0x00000000002d6e66 in libgobject-2.0-0!g_closure_invoke ()
from C:\msys\mingw64\bin\libgobject-2.0-0.dll
#14 0x00000000002f4713 in libgobject-2.0-0!g_signal_emit_valist ()
from C:\msys\mingw64\bin\libgobject-2.0-0.dll
#15 0x00000000002f4b48 in libgobject-2.0-0!g_signal_emit ()
from C:\msys\mingw64\bin\libgobject-2.0-0.dll
#16 0x0000000061453ad9 in libgio-2.0-0!g_application_register ()
from C:\msys\mingw64\bin\libgio-2.0-0.dll
#17 0x0000000061453e8b in libgio-2.0-0!g_application_open ()
from C:\msys\mingw64\bin\libgio-2.0-0.dll
#18 0x00000000614541bc in libgio-2.0-0!g_application_run ()
from C:\msys\mingw64\bin\libgio-2.0-0.dll
#19 0x0000000000620406 in _vala_main (args=0x2c6bbb0, args_length1=1)
at ../src/main.vala:15
#20 0x0000000000620440 in main (argc=1, argv=0x2c6bbb0) at ../src/main.vala:11