Opened 3 years ago

Closed 2 years ago

#9766 closed defect (fixed)

GUI: Assert in SaveLoadChooser dialog

Reported by: criezy Owned by: criezy
Priority: normal Component: GUI
Keywords: Cc:
Game:

Description

Today I hit the following assert when trying to load a save game from the launcher:
Assertion failed: (idx < _size), function operator[], file ./common/array.h, line 164.

The call stack is:

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   libsystem_kernel.dylib        	0x00007fff86dc6866 __pthread_kill + 10
1   libsystem_pthread.dylib       	0x00007fff8153b35c pthread_kill + 92
2   libsystem_c.dylib             	0x00007fff89497b26 abort + 125
3   libsystem_c.dylib             	0x00007fff894619b3 __assert_rtn + 321
4   scummvm                       	0x0000000106351b35 Common::Array<SaveStateDescriptor>::operator[](unsigned int) + 85 (array.h:164)
5   scummvm                       	0x000000010634d68c GUI::SaveLoadChooserSimple::handleCommand(GUI::CommandSender*, unsigned int, unsigned int) + 764 (saveload-dialog.cpp:432)
6   scummvm                       	0x00000001063f4adb GUI::CommandSender::sendCommand(unsigned int, unsigned int) + 107 (object.h:56)
7   scummvm                       	0x000000010637bf4a GUI::ButtonWidget::handleMouseUp(int, int, int, int) + 186 (widget.cpp:350)
8   scummvm                       	0x00000001063160df GUI::Dialog::handleMouseUp(int, int, int, int) + 319 (dialog.cpp:214)
9   scummvm                       	0x00000001063255c1 GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) + 801 (gui-manager.cpp:582)
10  scummvm                       	0x0000000106324ce2 GUI::GuiManager::runLoop() + 706 (gui-manager.cpp:351)
11  scummvm                       	0x0000000106315a9a GUI::Dialog::runModal() + 42 (dialog.cpp:83)
12  scummvm                       	0x000000010634d312 GUI::SaveLoadChooserSimple::runIntern() + 130 (saveload-dialog.cpp:404)
13  scummvm                       	0x000000010634bddc GUI::SaveLoadChooserDialog::run(Common::String const&, MetaEngine const*) + 332 (saveload-dialog.cpp:191)
14  scummvm                       	0x000000010634ad17 GUI::SaveLoadChooser::runModalWithPluginAndTarget(PluginSubclass<MetaEngine> const*, Common::String const&) + 343 (saveload.cpp:101)
15  scummvm                       	0x000000010632a77f GUI::LauncherDialog::loadGame(int) + 479 (launcher.cpp:517)
16  scummvm                       	0x000000010632a13f GUI::LauncherDialog::loadGameButtonPressed(int) + 79 (launcher.cpp:467)
17  scummvm                       	0x000000010632ae34 GUI::LauncherDialog::handleCommand(GUI::CommandSender*, unsigned int, unsigned int) + 852 (launcher.cpp:642)
18  scummvm                       	0x00000001063f4adb GUI::CommandSender::sendCommand(unsigned int, unsigned int) + 107 (object.h:56)
19  scummvm                       	0x000000010637bf4a GUI::ButtonWidget::handleMouseUp(int, int, int, int) + 186 (widget.cpp:350)
20  scummvm                       	0x00000001063160df GUI::Dialog::handleMouseUp(int, int, int, int) + 319 (dialog.cpp:214)
21  scummvm                       	0x00000001063255c1 GUI::GuiManager::processEvent(Common::Event const&, GUI::Dialog*) + 801 (gui-manager.cpp:582)
22  scummvm                       	0x0000000106324ce2 GUI::GuiManager::runLoop() + 706 (gui-manager.cpp:351)
23  scummvm                       	0x0000000106315a9a GUI::Dialog::runModal() + 42 (dialog.cpp:83)
24  scummvm                       	0x000000010429e076 launcherDialog() + 134 (main.cpp:106)
25  scummvm                       	0x000000010429d3bb scummvm_main + 2955 (main.cpp:500)
26  scummvm                       	0x000000010429b3fc main + 172 (macosx-main.cpp:45)
27  scummvm                       	0x0000000104295724 start + 52

I was not able to reproduce it and valgrind doesn't report any issue. For me it was a one off, but if it happened once, it can probably happen again. I suspect it might be related to cloud sync, in which case the timing to reproduce it might be key.

This is with commit a403523fafafdaed7148b4c4a43c8b27ecdc63e6 compiled on OS X 10.9 with SDL2 and cloud enabled.

Change History (1)

comment:1 by criezy, 2 years ago

Owner: set to criezy
Resolution: fixed
Status: newclosed

Fixed in commit 469e75c.

Note: See TracTickets for help on using tickets.