#14338 closed defect (fixed)

AGS: Dreams in the Witch House - reproducible segfault

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

Description (last modified by rfht)

Game: Dreams in the Witch House

OS: OpenBSD

ScummVM version: 2.7.0

Description:
In the dream sequence with the labyrinth, there is an outdoors area. If I click on "Landscape", the game reproducibly segfaults. I'm attaching pictures to clarify the location and a savegame. Stacktrace below indicates this happens in engines/ags/shared/gfx/allegro_bitmap.h, line 119:

How to Reproduce:
see above

Top of Stacktrace:

#0  0x00000c6deced556c in AGS3::AGS::Shared::Bitmap::GetSize (this=<optimized out>)
    at ./engines/ags/shared/gfx/allegro_bitmap.h:119
No locals.
#1  AGS3::prepare_roomview_frame (view=<optimized out>) at engines/ags/engine/ac/draw.cpp:498
        camera_buffer = @0xc709a7d6f40: {<Common::SafeBool<Common::SharedPtr<AGS3::AGS::Shared::Bitmap>, Common::impl::no_base<Common::SharedPtr<AGS3::AGS::Shared::Bitmap> > >> = {<Common::impl::no_base<Common::SharedPtr<AGS3::AGS::Shared::Bitmap> >> = {<No data fields>}, <No data fields>}, _pointer = 0xc7026e54940, _tracker = 0xc7026e4d140}
        camera_frame = <optimized out>
        view_sz = <optimized out>
        draw_dat = <optimized out>
        view_index = <optimized out>
        cam_sz = <optimized out>
#2  0x00000c6deced5802 in AGS3::sync_roomview (view=0xc6ff64b1200)
    at engines/ags/engine/ac/draw.cpp:512
No locals.
#3  0x00000c6deced63c2 in AGS3::on_roomcamera_changed (cam=<optimized out>)
    at engines/ags/engine/ac/draw.cpp:595
        vp = {<Common::SafeBool<Common::SharedPtr<AGS3::Viewport>, Common::impl::no_base<Common::SharedPtr<AGS3::Viewport> > >> = {<Common::impl::no_base<Common::SharedPtr<AGS3::Viewport> >> = {<No data fields>}, <No data fields>}, _pointer = 0xc70c001c000, _tracker = 0xc70cc770960}
        vr = {_pointer = 0xc70c001c000, _tracker = 0xc70cc770960}
        __begin2 = 0xc70002a61f0
        __end2 = 0xc70002a6200
        __range2 = <optimized out>
        viewrefs = {_capacity = <optimized out>, _size = <optimized out>, 
          _storage = 0xc70002a61f0}
#4  0x00000c6decf10ceb in AGS3::GameState::UpdateViewports (this=<optimized out>)
    at engines/ags/engine/ac/game_state.cpp:158
        cam = {<Common::SafeBool<Common::SharedPtr<AGS3::Camera>, Common::impl::no_base<Common::SharedPtr<AGS3::Camera> > >> = {<Common::impl::no_base<Common::SharedPtr<AGS3::Camera> >> = {<No data fields>}, <No data fields>}, _pointer = 0xc701167cc00, _tracker = 0xc70cc770d40}
        __range1 = <optimized out>
        __begin1 = 0xc6ffae1c600
        __end1 = 0xc6ffae1c610
        vp_changed = <optimized out>
#5  0x00000c6deced723b in AGS3::construct_game_scene (full_redraw=<optimized out>)
    at engines/ags/engine/ac/draw.cpp:2167
No locals.
#6  0x00000c6decede8bf in AGS3::render_graphics (extraBitmap=0x0, extraX=0, extraY=0)
    at engines/ags/engine/ac/draw.cpp:2406
No locals.
[...]

Attachments (3)

scummvm-dreams-way-to-segfault.png (80.8 KB ) - added by rfht 13 months ago.
scummvm-dreams-clicking-landscape-segfaults.png (86.9 KB ) - added by rfht 13 months ago.
ags-fallback.004 (965.4 KB ) - added by rfht 13 months ago.

Download all attachments as: .zip

Change History (10)

by rfht, 13 months ago

Attachment: ags-fallback.004 added

comment:1 by rfht, 13 months ago

Description: modified (diff)

comment:2 by antoniou79, 13 months ago

Are you testing with the latest version of the game? It's had a few patches since release, and I believe the current version is 1.04.

Also, if possible, please check with a recent daily development build of ScummVM 2.8.0git. A lot of bugs have been fixed in the development builds since 2.7.0, including at least one which was reported for Dreams in the Witch House (segfault).

comment:3 by rfht, 13 months ago

I am using the latest game version 1.04, yes. I looked at the diff from the other Dreams in the Witch House issue (#14258) - it only changes engines/ags/lib/allegro/gfx.cpp which isn't involved in the stack trace of my segfault at all, so I'm not very optimistic that the daily development build will be different. I will see about building 2.8.0git and then report back.

comment:4 by rfht, 13 months ago

Tested with 2.8.0git and same segfault still happens...

comment:5 by antoniou79, 13 months ago

Indeed. I just tested too with your saved game and I can reproduce it.

I have a possible fix, but I am unsure of it so I will issue it as a PR for approval first (in a few minutes, pending some testing).

comment:7 by criezy, 13 months ago

Owner: set to criezy
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.