Opened 9 years ago

Closed 9 years ago

#4927 closed defect (fixed)

SQ2 : Crash when "Examine Order Form"

Reported by: digitall Owned by: sev-
Priority: normal Component: Engine: AGI
Keywords: Cc:
Game: Space Quest 2

Description

In Space Quest II: Vohaul's Revenge (2.0F 1989-01-05 3.5"/DOS/English) (AGI) :
If you "Examine Order Form", the form appears.
When you click to dismiss this, a Segmentation Fault crash occurs.

ScummVM 1.2.0svn51067 (Jul 20 2010 18:47:29)
Features compiled in: Vorbis FLAC MP3 ALSA SEQ RGB zLib FluidSynth
on Linux 2.6.34 x86_32

Ticket imported from: #3032237. Ticket imported from: bugs/4927.

Attachments (1)

sq2.003 (5.1 KB ) - added by digitall 9 years ago.
Savegame for Replication

Download all attachments as: .zip

Change History (6)

by digitall, 9 years ago

Attachment: sq2.003 added

Savegame for Replication

comment:1 by digitall, 9 years ago

Running with Valgrind gives the following relevant errors :
==19961== Use of uninitialised value of size 4
==19961== at 0x81FF44D: Agi::SpritesMgr::objsRestoreArea(Agi::Sprite*) (sprite.cpp:248)
==19961== by 0x82005D1: Agi::SpritesMgr::showObj(int) (sprite.cpp:687)
==19961== by 0x81F12EB: Agi::AgiEngine::cmd_show_obj(unsigned char*) (op_cmd.cpp:427)
==19961== by 0x81F5AD5: Agi::AgiEngine::runLogic(int) (op_cmd.cpp:1847)
==19961== by 0x81E9A92: Agi::AgiEngine::interpretCycle() (cycle.cpp:121)
==19961== by 0x81EA494: Agi::AgiEngine::playGame() (cycle.cpp:351)
==19961== by 0x81EA882: Agi::AgiEngine::runGame() (cycle.cpp:446)
==19961== by 0x81E5D57: Agi::AgiEngine::go() (agi.cpp:705)
==19961== by 0x81C2E3C: Agi::AgiBase::run() (agi.h:730)
==19961== by 0x8056104: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:212)
==19961== by 0x8056B2A: scummvm_main (main.cpp:399)
==19961== by 0x805305D: main (main.cpp:66)
==19961==
==19961== Use of uninitialised value of size 4
==19961== at 0x81FF49B: Agi::SpritesMgr::objsRestoreArea(Agi::Sprite*) (sprite.cpp:250)
==19961== by 0x82005D1: Agi::SpritesMgr::showObj(int) (sprite.cpp:687)
==19961== by 0x81F12EB: Agi::AgiEngine::cmd_show_obj(unsigned char*) (op_cmd.cpp:427)
==19961== by 0x81F5AD5: Agi::AgiEngine::runLogic(int) (op_cmd.cpp:1847)
==19961== by 0x81E9A92: Agi::AgiEngine::interpretCycle() (cycle.cpp:121)
==19961== by 0x81EA494: Agi::AgiEngine::playGame() (cycle.cpp:351)
==19961== by 0x81EA882: Agi::AgiEngine::runGame() (cycle.cpp:446)
==19961== by 0x81E5D57: Agi::AgiEngine::go() (agi.cpp:705)
==19961== by 0x81C2E3C: Agi::AgiBase::run() (agi.h:730)
==19961== by 0x8056104: runGame(PluginSubclass<MetaEngine> const*, OSystem&, Common::String const&) (main.cpp:212)
==19961== by 0x8056B2A: scummvm_main (main.cpp:399)
==19961== by 0x805305D: main (main.cpp:66)

This would indicate this is a regression introduced by :
r49742 | sev | 2010-06-15 11:31:18 +0100 (Tue, 15 Jun 2010) | 5 lines

AGI: Fix bug #1945716.

Bug #1945716: "AGI: Fan(Kings Quest 2 1/4) - Sprite not erased".
Added a workaround, since it is design flaw of our rendering
system.

comment:2 by fingolfin, 9 years ago

Owner: set to sev-

comment:3 by sev-, 9 years ago

Weird, I cannot reproduce it. I tired with latest revision (r51312) an with specified which is r51067. I load the save from command line, then immediately type "examine order form", and click on any part of the screen. The form disappears without any crashes or valgrind warnings.

Perhaps I'm missing something?

comment:4 by sev-, 9 years ago

Resolution: fixed
Status: newclosed

comment:5 by sev-, 9 years ago

Thus, it was confirmed a fixed by r51311

Note: See TracTickets for help on using tickets.