SuperTux / supertux

SuperTux source code
https://supertux.org
GNU General Public License v3.0
2.5k stars 479 forks source link

Game crashes when changing world in editor #2984

Closed Rusty-Box closed 3 months ago

Rusty-Box commented 3 months ago

Very easy to reproduce! Please fix ASAP

  1. Open Level Editor
  2. Select a world (do not select a level)
  3. Go back and select another world
  4. Game crashes
tobbi commented 3 months ago
* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x78)
  * frame #0: 0x000000010025db00 supertux2`std::__1::vector<std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> >, std::__1::allocator<std::__1::unique_ptr<GameObject, std::__1::default_delete<GameObject> > > >::begin(this=0x0000000000000078 size=0) const at vector:1547:30
    frame #1: 0x00000001002514bc supertux2`GameObjectRange<MarkerObject>::begin(this=0x00007ff7bfefe860) const at game_object_iterator.hpp:118:58
    frame #2: 0x0000000100251238 supertux2`EditorOverlayWidget::delete_markers(this=0x00006000035388f0) at overlay_widget.cpp:115:21
    frame #3: 0x0000000100254381 supertux2`EditorOverlayWidget::grab_object(this=0x00006000035388f0) at overlay_widget.cpp:712:7
    frame #4: 0x00000001002563fa supertux2`EditorOverlayWidget::process_left_click(this=0x00006000035388f0) at overlay_widget.cpp:949:11
    frame #5: 0x0000000100256e2c supertux2`EditorOverlayWidget::on_mouse_button_down(this=0x00006000035388f0, button=0x00007ff7bfefed40) at overlay_widget.cpp:1116:7
    frame #6: 0x00000001002e9371 supertux2`Widget::event(this=0x00006000035388f0, ev=0x00007ff7bfefed40) at widget.cpp:25:14
    frame #7: 0x00000001001f00da supertux2`Editor::event(this=0x00000001253a3010, ev=0x00007ff7bfefed40) at editor.cpp:928:19
    frame #8: 0x00000001009e95ae supertux2`ScreenManager::process_events(this=0x0000000105036ec0) at screen_manager.cpp:398:26
    frame #9: 0x00000001009ea56d supertux2`ScreenManager::loop_iter(this=0x0000000105036ec0) at screen_manager.cpp:625:5
    frame #10: 0x00000001009eac2a supertux2`ScreenManager::run(this=0x0000000105036ec0) at screen_manager.cpp:671:5
    frame #11: 0x00000001008478dc supertux2`Main::launch_game(this=0x0000600003708000, args=0x00007ff7bfeff558) at main.cpp:655:21
    frame #12: 0x00000001008495ae supertux2`Main::run(this=0x0000600003708000, argc=1, argv=0x00007ff7bfeff808) at main.cpp:741:9
    frame #13: 0x0000000100006583 supertux2`main(argc=1, argv=0x00007ff7bfeff808) at main.cpp:30:21
    frame #14: 0x00000001038e952e dyld`start + 462