dhewm3/neo/d3xp/script
Daniel Gibson 3ad384a0da Fix script interpreter on 64bit Big Endian platforms
idInterpreter::Push() is used only for int and (reinterpreted) float
values, not pointers (as far as I can tell), so 32bit values on all
relevant platforms.
It stored its value as intptr_t at `&localstack[ localstackUsed ]` - on
64bit platforms intptr_t is 64bit.
Unfortunately, all code reading from the stack just get got a pointer
to `&localstack[ localstackUsed ]` in the type they want to read
(like `int*` or `float*`) and read that. On Little Endian that happens
to work, on 64bit Big Endian it reads the wrong 4 bytes of the intptr_t,
so it doesn't work.

fixes #625, #472
2024-10-31 03:18:33 +01:00
..
Script_Compiler.cpp Fix usage of invalid pointer in idCompiler::CompileFile() 2021-07-15 07:00:18 +02:00
Script_Compiler.h Untangle the epic precompiled.h mess 2011-12-19 23:21:47 +01:00
Script_Interpreter.cpp idInterpreter::Call(Sys)Event(): Fix passing integers 2024-10-31 03:18:33 +01:00
Script_Interpreter.h Fix script interpreter on 64bit Big Endian platforms 2024-10-31 03:18:33 +01:00
Script_Program.cpp Fix savegame-compatibility of scripts, increase BUILD_NUMBER 2021-02-21 06:05:47 +01:00
Script_Program.h Fix savegame-compatibility of scripts, increase BUILD_NUMBER 2021-02-21 06:05:47 +01:00
Script_Thread.cpp Fix -Wformat-security warnings - thanks James Addison! 2023-01-05 04:45:34 +01:00
Script_Thread.h Untangle the epic precompiled.h mess 2011-12-19 23:21:47 +01:00