It's already attached to the first post, here's a pastebin of the same thing if it's inconvenient.
sry, didn't read earful...
<frame level="1" function="g_type_check_instance_cast" offset="0000001c"/>
<frame level="2" function="wxMenu::GtkAppend(wxMenuItem*, int)" offset="00000612"/>
<frame level="3" function="wxMenu::DoAppend(wxMenuItem*)" offset="0000001e"/>
yea, it's a gtk+ bug, we can't do nothing, as oBFusCATed said
greetings
Ubuntu and windows users please try this patch to see if the crashes are fixed and the code still works on windows:
Index: src/src/debuggermenu.cpp
===================================================================
--- src/src/debuggermenu.cpp (revision 9174)
+++ src/src/debuggermenu.cpp (working copy)
@@ -78,11 +78,25 @@ namespace
return nullptr;
if (recreate)
{
- wxMenu *subMenu = item->GetSubMenu();
- while (subMenu->GetMenuItemCount() > 0)
+ wxMenu *menu = item->GetMenu();
+ size_t pos = static_cast<size_t>(wxNOT_FOUND);
+ for (size_t ii = 0; ii < menu->GetMenuItemCount(); ++ii)
{
- wxMenuItemList& list=subMenu->GetMenuItems();
- subMenu->Remove(list.GetFirst()->GetData());
+ if (item == menu->FindItemByPosition(ii))
+ {
+ pos = ii;
+ break;
+ }
+ }
+ if (pos != static_cast<size_t>(wxNOT_FOUND))
+ {
+ wxMenu *newSubMenu = new wxMenu;
+ wxMenuItem *newItem = new wxMenuItem(menu, item->GetId(), item->GetText(), item->GetHelp(),
+ item->IsCheckable(), newSubMenu);
+ menu->Insert(pos, newItem);
+
+ menu->Destroy(item);
+ return newItem->GetSubMenu();
}
}
return item ? item->GetSubMenu() : nullptr;