Changes between Version 1 and Version 2 of Ticket #14258


Ignore:
Timestamp:
02/21/23 19:11:01 (14 months ago)
Author:
antoniou79
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #14258 – Description

    v1 v2  
    1313
    1414When debugging with Visual Studio, at the point when the game crashed, the code execution was either:
    15 - In ags/lib/allegro.gfx.cpp, putpixel(), line 248-249, "case 4", and the VS message was "Exception thrown at 0x00007FF652203AF3 in scummvm.exe: 0xC0000005: Access violation writing location 0x0000018FDFEACD34." This was the most often one I got (probably the address locations would vary -- I didn't notice). When this happens, variable y has a value of "-1".
     15- In ags/lib/allegro/gfx.cpp, putpixel(), line 248-249, "case 4", and the VS message was "Exception thrown at 0x00007FF652203AF3 in scummvm.exe: 0xC0000005: Access violation writing location 0x0000018FDFEACD34." This was the most often one I got (probably the address locations would vary -- I didn't notice). When this happens, variable y has a value of "-1".
    1616- In ags/engine/media/audio/sound.cpp, my_load_static_ogg(), lines 74-75. I didn't get this more than once, so it could be a side effect of the invalid memory access of the previous issue.
    1717
    1818What seems to have solved issue 1 (and possibly issue 2, if they are connected).
    19 - I copied the extra conditions for "x < 0" and "y < 0" to our code in putpixel() (allegro.gfx.cpp) from: https://github.com/adventuregamestudio/ags/blob/bcf90697ac93080d0edac3e99727041a4e2b461a/Common/gfx/allegrobitmap.cpp#L349
     19- I copied the extra conditions for "x < 0" and "y < 0" to our code in putpixel() (allegro/gfx.cpp) from: https://github.com/adventuregamestudio/ags/blob/bcf90697ac93080d0edac3e99727041a4e2b461a/Common/gfx/allegrobitmap.cpp#L349
    2020
    2121Since this "fix", I did not get issues 1 nor 2. I could create a PR for this, but maybe someone more familiar with the engine could do it -- even without a PR. It's quite a simple fix, and it seems that the code for it in the AGS source tree is from a really old commit (11 years ago).