Opened 4 hours ago

#15488 new defect

AGS: The Crimson Diamond can crash on quitting

Reported by: eriktorbjorn Owned by:
Priority: normal Component: Engine: AGS
Version: Keywords:
Cc: Game:

Description

  • Start the latest version of the game (1.10k).
  • Open the menu.
  • Press the button to change font (new to this version?) that reads either "Sans Font" or "Serif Font". This will cause a message box ("Font switched to ...") to open.
  • While the message box is still open, quit ScummVM.

At this point, ScummVM crashes:

#0  0x00005555583ccc4a in AGS3::free_dynamic_sprite
    (slot=7965, notify_all=false)
    at engines/ags/engine/ac/dynamic_sprite.cpp:454
#1  0x0000555558446c7b in AGS3::ScreenOverlay::~ScreenOverlay
    (this=0x555562ae0ba0, __in_chrg=<optimized out>)
    at engines/ags/engine/ac/screen_overlay.cpp:40
#2  0x00005555582f70a1 in Common::Array<AGS3::ScreenOverlay>::freeStorage
    (this=0x555560b422d0, storage=0x555562ae0b60, elements=2)
    at ./common/array.h:481
#3  0x00005555582f44ae in Common::Array<AGS3::ScreenOverlay>::~Array
    (this=0x555560b422d0, __in_chrg=<optimized out>) at ./common/array.h:136
#4  0x00005555582eeae2 in Std::vector<AGS3::ScreenOverlay>::~vector
    (this=0x555560b422d0, __in_chrg=<optimized out>)
    at ./common/std/vector.h:39
#5  0x00005555582ea36b in AGS3::Globals::~Globals
    (this=0x55556108dfd0, __in_chrg=<optimized out>)
    at engines/ags/globals.cpp:602
#6  0x00005555582dffe2 in AGS::AGSEngine::~AGSEngine
    (this=0x555560f31780, __in_chrg=<optimized out>) at engines/ags/ags.cpp:107
#7  0x00005555582e0026 in AGS::AGSEngine::~AGSEngine
    (this=0x555560f31780, __in_chrg=<optimized out>) at engines/ags/ags.cpp:110
#8  0x00005555582f96a1 in AdvancedMetaEngine<AGS::AGSGameDescription>::deleteInstance
    (this=0x55555f200c80, engine=0x555560f31780, gameDescriptor=..., meDescriptor=0x55555fa86160) at ./engines/advancedDetector.h:722
#9  0x0000555557e7804c in runGame
    (enginePlugin=0x55555f200c60, system=..., game=..., meDescriptor=0x55555fa86160) at base/main.cpp:324
#10 0x0000555557e7a4c6 in scummvm_main (argc=1, argv=0x7fffffffdbd8)
    at base/main.cpp:796
#11 0x0000555557e74daa in main (argc=1, argv=0x7fffffffdbd8)
    at backends/platform/sdl/posix/posix-main.cpp:44

Ironically, the line that it crashes on appears to be an assert(), but it's not the assert that's tripped?

Change History (0)

Note: See TracTickets for help on using tickets.