View Issue Details

IDProjectCategoryView StatusLast Update
0000433Gameplay + OpenGL(No Category)public2017-03-14 12:49
Assigned To 
Status resolvedResolutionfixed 
PlatformWindowsOSWindowsOS Version10
Summary0000433: GZDoom g2.4pre-2263-gdd89631 crashes - 32-bit only
DescriptionOnly the 32-bit version seems to be crashing with this log:
LoadActors: Load actor definitions.
gzdoom.pk3:zscript/mapdata.txt, line 248: The member variable 'Sector.Lines' has mismatching sizes in 
internal and external declaration. (Internal = 8, External = 12)

Oddly the 64-bit is working fine and doesn't show the same error.
Steps To ReproduceFire up gzdoom.exe g2.4pre-2263-gdd89631 - 32-bit version should error out with that message.
TagsNo tags attached.





2017-03-14 10:02

reporter   ~0000993

Last edited: 2017-03-14 10:03

View 2 revisions

Say hello to different pointer sizes :D
The 8 vs 12 is probably 4 bytes for array size + the array pointer which is different size on different platforms.

Graf Zahl

Graf Zahl

2017-03-14 10:52

administrator   ~0000994

On 64 bit the two types that got mixed up here both are 16 bytes. Actually, one is 12 and one is 16 but it's the alignment that matters.

I will have to think about how to avoid this, the main problem is that the lines array is an impostor, because it looks like an array on the surface but in reality is just a reference into the buffer of a larger array that's owned by another object.

Issue History

Date Modified Username Field Change
2017-03-14 09:51 SanyaWaffles New Issue
2017-03-14 10:02 ZZYZX Note Added: 0000993
2017-03-14 10:03 ZZYZX Note Edited: 0000993 View Revisions
2017-03-14 10:52 Graf Zahl Note Added: 0000994
2017-03-14 12:49 Graf Zahl Status new => resolved
2017-03-14 12:49 Graf Zahl Resolution open => fixed