Commit graph

21224 commits

Author SHA1 Message Date
Ricardo Luís Vaz Silva
d9a88d7080 Fix deserialization of methods inside function pointers 2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e61bd10bbf Finish implementing function pointers
Allow using function literals with function pointers, allow narrowing classes parameter types, and widening classes in return types, allow pointers to non-static, non-virtual functions, add null checking to function calls
2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
23c21b23c3 cleanup. 2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
0ce4b3e7fb update/cleanup function pointers 2023-10-11 19:12:48 +02:00
Ricardo Luís Vaz Silva
e3704605d8 Implement Static Function Pointers 2023-10-11 19:12:48 +02:00
Rachael Alexanderson
88b5d9aba1 - fix $PROGDIR expansion being case sensitive 2023-10-10 10:29:01 -04:00
Christoph Oelckers
0044da1ca2 added missing VMFunction struct definition 2023-10-09 19:20:44 +02:00
Christoph Oelckers
79f2fc6553 backend update from Raze.
Mainly a VMFunction script type and some associated utilities.
2023-10-09 18:45:30 +02:00
Christoph Oelckers
06466b9017 add missing include to a_quake.cpp.
The GCC AppImage build reported

/usr/bin/ld: CMakeFiles/zdoom.dir/playsim/mapthinkers/a_quake.cpp.o: in function `AActor::Distance2D(AActor*, bool) const':
a_quake.cpp:(.text._ZNK6AActor10Distance2DEPS_b[_ZNK6AActor10Distance2DEPS_b]+0x2c): undefined reference to `AActor::PosRelative(AActor const*) const'
2023-10-08 12:14:50 +02:00
Christoph Oelckers
ac646e96be use copystring instead of strdup when reading environments.
The mismatched the underlying code which allocates via copystring.
2023-10-08 11:54:14 +02:00
Christoph Oelckers
4f5df7b9ef allocate temporary state label strings from the compiler backend's allocator.
They share appoximate lifetime so this gets rid of 3 more copystring calls.
2023-10-08 11:40:34 +02:00
Christoph Oelckers
c8ee0cd5cc fixed another bad string validation check involving GetChars 2023-10-08 09:37:12 +02:00
Christoph Oelckers
56929833f0 fixed two bad validations of FName's. 2023-10-08 09:27:46 +02:00
Christoph Oelckers
448ca88bfd fixed some signed-ness issues. 2023-10-08 08:11:56 +02:00
Ricardo Luís Vaz Silva
bfe589fecd try to fix gcc thinking the vectors are uninitialized 2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
04c167f181 final final GetChars fix on linux 2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
f0be58e862 hopefully the last few GetChars fixes for linux 2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
f4fb583c6c more GetChars fixes in linux/macOS 2023-10-08 07:31:59 +02:00
Ricardo Luís Vaz Silva
c69941e49d fix GetChars in linux/macOS 2023-10-08 07:31:59 +02:00
Christoph Oelckers
6055ff029d the remaining GetChars additions.
The offending operator const char * no longer exists.
2023-10-07 23:44:01 +02:00
Christoph Oelckers
7a5a2858a2 yet even more GetChars calls added. 2023-10-07 23:29:24 +02:00
Christoph Oelckers
c94c63110e added a third batch of GetChars call to FStrings. 2023-10-07 23:03:40 +02:00
Christoph Oelckers
89535b803a Backend update from Raze. 2023-10-07 18:42:24 +02:00
Cacodemon345
61b7a4922a Fix typo 2023-10-07 17:31:24 +02:00
Cacodemon345
07582a6bf7 Remove Aes, BraIA64.c and Lzma86 files 2023-10-07 17:31:24 +02:00
Cacodemon345
56c44182d1 Fix wrong define for PPMd 2023-10-07 17:31:24 +02:00
Cacodemon345
4497d7fdaa Update LZMA SDK to 23.01
As a bonus, add support for XZ-compressed files in ZIP
2023-10-07 17:31:24 +02:00
Ricardo Luís Vaz Silva
5e96dbc981 Add final and sealed as class options 2023-10-07 17:29:29 +02:00
Ricardo Luís Vaz Silva
42df40941c change version, improve errors for array/map/struct copy 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
b9104e8aa9 Turn Map/Array assignments into Copy
Better error checking for struct assignment

Lock assignments behind version, don't break or "fix" existing code using older ZScript versions
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
a13b19815c allow "&" instead of "out" in function parameters 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
7a9ca1ad3f Allow dumping jit for mod functions only 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3cb8f1be44 Don't try to generate code for abstract functions during JIT dump 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
fa8df5a4e5 make Array::Append faster for simple structs
This makes appending arrays of simple types faster
2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
65ea4f91b6 fix TMap move insertion, was using the copy constructor due to a missing std::move 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
b60b3fc09a fix PStruct::AddField not passing mDefFileNo 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
86e4d064e2 fix possible null dereference in FxStructMember::RequestAddress 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
fad350ff80 Make sure maps in return type don't segfault 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
3fc195c5b2 Improve handling of field names in error messages during Map/MapIterator compilation 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
87fcaab512 Fix Typo in Comment 2023-10-07 17:27:35 +02:00
Ricardo Luís Vaz Silva
766c61b3ed Deduplicate Map/MapIterator Types' Code 2023-10-07 17:27:35 +02:00
Rachael Alexanderson
29368f0f4e - make zs Actor.GetReplacement and Actor.GetReplacee clearscope 2023-10-05 12:29:20 -04:00
Ricardo Luís Vaz Silva
3e7de9aafa Fix inheritance for bNoSaveGame 2023-10-05 16:44:12 +02:00
Professor Hastig
ab8711b57a removed several bad casts to 'long'.
The 'long' type should generally be avoided because its size differs on Windows and Linux/Mac so it is almost guaranteed to cause undefined behavior
2023-10-04 16:47:43 +02:00
Christoph Oelckers
48ba63c022 added even more explicit GetChars() calls. 2023-10-03 15:55:08 +02:00
Christoph Oelckers
1717ff47b2 add GetChars() accessors to many FString uses where const char* is wanted.
By no means complete, it's just a start to get rid of that automatic type conversion operator.
2023-10-03 14:27:39 +02:00
alexey.lysiuk
a3eb1ec1fd - fixed compilation with Clang
src/console/c_cmds.cpp:1310:40: error: cannot pass non-trivial object of type 'FString' to variadic function; expected type from format string was 'char *' [-Wnon-pod-varargs]
2023-10-02 10:24:24 +03:00
Christoph Oelckers
a7258de82e print proper level and music names for mapinfo CCMD 2023-10-01 23:38:14 +02:00
Rachael Alexanderson
99fac235eb - make clang happy 2023-10-01 20:36:12 +02:00
Rachael Alexanderson
a53d3d6a6e - add 'mapinfo' ccmd 2023-10-01 20:36:12 +02:00