Rubidium
281a65b3e1
Cleanup: simplify some boolean expressions
2021-06-17 16:18:30 +02:00
Rubidium
a9774f3e34
Cleanup: [Squirrel] Use nullptr instead of 0 or NULL
2021-06-17 16:18:30 +02:00
rubidium42
c811d42d0c
Fix a99ac62: fmt's include of cassert breaks our assert logic
2021-06-13 21:02:17 +02:00
rubidium42
662d8dfc30
Add: minimal set of headers from {fmt} 7.1.3 to 3rdparty
2021-06-13 12:45:45 +02:00
glx22
00e3fddd0c
Fix: [MinGW] Unused squirrel code triggering a warning
2021-06-10 23:17:29 +02:00
Patric Stout
28e90769f7
Codechange: use "[[maybe_unused]]" instead of a wide variety of other ways we had
...
While at it, replace OTTD_ASSERT with WITH_ASSERT, as this
is always set if assert() is valid. No matter if NDEBUG is set
or not.
2021-06-03 17:30:00 +02:00
Rubidium
7274432987
Fix #9267 , 47a99bb: [Squirrel] Heap use after free
...
Due to 47a99bb the order of elements in the garbage collection chain has
changed causing the class to be finalised before the instances of that class.
Since the instance's array of member values depends on the size of the values
in the class, the class finalisation resetting that size to 0 causes not all
finalisations to run, which subsequently causes a heap use after free. So,
just set the SQObjectPtrs to 'null' during the finalisation of the SQClass
so the SQInstance can release all instance variables during its finalisation.
(cherry picked from commit 5c01f9ea52 )
See: #256
2021-05-16 09:54:56 +01:00
Rubidium
5c01f9ea52
Fix #9267 , 47a99bb: [Squirrel] Heap use after free
...
Due to 47a99bb the order of elements in the garbage collection chain has
changed causing the class to be finalised before the instances of that class.
Since the instance's array of member values depends on the size of the values
in the class, the class finalisation resetting that size to 0 causes not all
finalisations to run, which subsequently causes a heap use after free. So,
just set the SQObjectPtrs to 'null' during the finalisation of the SQClass
so the SQInstance can release all instance variables during its finalisation.
2021-05-16 10:07:38 +02:00
Jonathan G Rennison
1e4161ff56
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/group_gui.cpp
2021-04-25 00:30:03 +01:00
Rubidium
44d1b964bf
Fix #7513 : recursive array/class/table release caused stack overflow
2021-04-17 19:18:51 +01:00
Rubidium
47a99bb676
Fix #7513 : recursive garbage collection caused stack overflow
2021-04-17 19:18:51 +01:00
Jonathan G Rennison
edfa04286b
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/release.yml
# bin/CMakeLists.txt
# src/dock_gui.cpp
# src/lang/brazilian_portuguese.txt
# src/lang/catalan.txt
# src/lang/czech.txt
# src/lang/dutch.txt
# src/lang/english.txt
# src/lang/english_US.txt
# src/lang/estonian.txt
# src/lang/finnish.txt
# src/lang/french.txt
# src/lang/german.txt
# src/lang/hungarian.txt
# src/lang/indonesian.txt
# src/lang/italian.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/lithuanian.txt
# src/lang/luxembourgish.txt
# src/lang/norwegian_bokmal.txt
# src/lang/polish.txt
# src/lang/portuguese.txt
# src/lang/romanian.txt
# src/lang/russian.txt
# src/lang/serbian.txt
# src/lang/simplified_chinese.txt
# src/lang/slovak.txt
# src/lang/spanish.txt
# src/lang/spanish_MX.txt
# src/lang/swedish.txt
# src/lang/tamil.txt
# src/lang/ukrainian.txt
# src/lang/vietnamese.txt
# src/newgrf.cpp
# src/newgrf_gui.cpp
# src/object_gui.cpp
# src/pathfinder/yapf/yapf_costrail.hpp
# src/pathfinder/yapf/yapf_node_rail.hpp
# src/rail_cmd.cpp
# src/roadveh_cmd.cpp
# src/town_cmd.cpp
# src/vehicle.cpp
# src/water_cmd.cpp
2021-04-11 02:39:33 +01:00
Charles Pigott
dd798d688b
Fix #8919 : Release builds with asserts enabled ( #8925 )
2021-04-01 23:57:49 +01:00
Charles Pigott
591ea9862d
Codechange: Suppress warnings when asserts are disabled ( #8916 )
2021-04-01 10:03:12 +02:00
Jonathan G Rennison
f4e29071be
Merge tag '1.11.0-beta2' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release.yml
# CMakeLists.txt
# src/blitter/32bpp_optimized.cpp
# src/debug.cpp
# src/gfx.cpp
# src/gfx_func.h
# src/lang/czech.txt
# src/lang/english.txt
# src/lang/italian.txt
# src/lang/swedish.txt
# src/lang/ukrainian.txt
# src/network/network_server.cpp
# src/os/windows/crashlog_win.cpp
# src/os/windows/win32.cpp
# src/pathfinder/follow_track.hpp
# src/screenshot.cpp
# src/settings_type.h
# src/spritecache.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/video_driver.cpp
# src/video/video_driver.hpp
# src/video/win32_v.cpp
2021-03-02 11:59:03 +00:00
Michael Lutz
9a069faa01
Codechange: [Win32] Try to get an OpenGL 3.2+ context if possible.
2021-02-22 22:16:07 +01:00
Michael Lutz
ef478ade64
Add: [Win32] Video driver that uses OpenGL to transfer the video buffer to the screen.
2021-02-22 22:16:07 +01:00
Jonathan G Rennison
0d385c9688
Use 3rd party optional wrapper, always use local verison on Apple
2021-02-16 16:06:32 +00:00
Jonathan G Rennison
aaeba6887c
Revert "Cleanup: use std::optional instead of custom implementation."
...
This reverts commit 484ea62a62 .
2021-02-16 16:06:30 +00:00
Jonathan G Rennison
84eef99eaa
MinGW std: 🧵 suppress redundancy warning for non-debug builds
...
See: #216
2021-02-16 14:22:51 +00:00
Jonathan G Rennison
b7ddd486cf
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/aircraft_cmd.cpp
# src/blitter/32bpp_anim.cpp
# src/cargopacket.cpp
# src/cheat_gui.cpp
# src/company_cmd.cpp
# src/company_gui.cpp
# src/core/pool_func.hpp
# src/date.cpp
# src/economy.cpp
# src/error_gui.cpp
# src/ground_vehicle.cpp
# src/ground_vehicle.hpp
# src/group_gui.cpp
# src/industry_cmd.cpp
# src/lang/dutch.txt
# src/lang/french.txt
# src/lang/german.txt
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/mcf.cpp
# src/network/network_content.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/newgrf_engine.cpp
# src/newgrf_station.cpp
# src/order_cmd.cpp
# src/order_gui.cpp
# src/pathfinder/follow_track.hpp
# src/pathfinder/yapf/yapf_common.hpp
# src/saveload/saveload.cpp
# src/settings_gui.cpp
# src/station_cmd.cpp
# src/station_kdtree.h
# src/string_func.h
# src/table/settings.ini
# src/tgp.cpp
# src/timetable_cmd.cpp
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/train_cmd.cpp
# src/train_gui.cpp
# src/tree_gui.cpp
# src/tunnelbridge_cmd.cpp
# src/vehicle.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
# src/viewport.cpp
# src/viewport_sprite_sorter_sse4.cpp
# src/window.cpp
2021-02-01 17:07:34 +00:00
Jonathan G Rennison
43980639de
Merge branch 'master' into jgrpp
...
# Conflicts:
# .gitignore
# CMakeLists.txt
# src/3rdparty/optional/optional.hpp
# src/group_cmd.cpp
# src/industry_cmd.cpp
# src/misc_gui.cpp
# src/video/sdl2_v.cpp
2021-01-29 17:45:15 +00:00
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
frosch
484ea62a62
Cleanup: use std::optional instead of custom implementation.
2020-12-14 23:50:50 +01:00
Jonathan G Rennison
22c3a01069
Comment out additional includes of <cassert>
...
This overrode our own assert handler in stdafx.h
2020-06-30 22:18:24 +01:00
Jonathan G Rennison
3adeff1883
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# cmake/CompileFlags.cmake
# src/bridge_gui.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/town_sl.cpp
# src/screenshot.cpp
# src/screenshot.h
# src/toolbar_gui.cpp
# src/town.h
# src/town_cmd.cpp
2020-06-30 21:43:04 +01:00
TechGeekNZ
cf8ea74733
Update: Merge branch 'jgrpp_master_cmake' into jgrpp_cmake
2020-06-28 21:56:43 +01:00
Charles Pigott
64b1c70fdd
Codechange: Add WARN_FORMAT to vseprintf and fix the cascade of warnings that followed
2020-06-27 14:51:14 +01:00
Niels Martin Hansen
9895ced6af
Fix: Silence some warnings when building with clang-cl on VS 2019
...
Clang-cl presents as both _MSC_VER and __clang__ in the preprocessor which makes some things confusing.
2020-06-18 08:56:27 +01:00
Patric Stout
56d54cf60e
Add: introduce CMake for project management
...
CMake works on all our supported platforms, like MSVC, Mingw, GCC,
Clang, and many more. It allows for a single way of doing things,
so no longer we need shell scripts and vbs scripts to work on all
our supported platforms.
Additionally, CMake allows to generate project files for like MSVC,
KDevelop, etc.
This heavily reduces the lines of code we need to support multiple
platforms from a project perspective.
Addtiionally, this heavily improves our detection of libraries, etc.
2020-06-05 19:36:05 +02:00
Jonathan G Rennison
f8d6e781ba
Merge branch 'master' into jgrpp
...
# Conflicts:
# projects/openttd_vs140.vcxproj.filters
# projects/openttd_vs141.vcxproj.filters
# projects/openttd_vs142.vcxproj.filters
# src/base_consist.h
# src/company_base.h
# src/newgrf_config.cpp
# src/newgrf_config.h
# src/openttd.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/saveload/station_sl.cpp
# src/settings.cpp
# src/signs_base.h
# src/string.cpp
# src/string_func.h
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/town_cmd.cpp
# src/vehicle.cpp
# src/vehicle_cmd.cpp
# src/video/cocoa/cocoa_v.mm
# src/video/null_v.cpp
2020-05-21 22:24:01 +01:00
Michael Lutz
8aef14386f
Add: Optional implementation of std::optional for pre-C++17 compilers.
...
Sourced from https://github.com/akrzemi1/Optional , Boost Software License, Version 1.0.
2020-05-21 20:02:34 +02:00
Jonathan G Rennison
babe98cdb1
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/network/network_server.h
# src/pathfinder/yapf/yapf_road.cpp
# src/viewport.cpp
2020-02-09 15:43:47 +00:00
glx
196157b29e
Fix #7966 : SQInteger is 64-bit, print it as 64-bit
2020-02-01 10:14:51 +00:00
Jonathan G Rennison
cbdd9f84d8
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/console_gui.cpp
# src/lang/korean.txt
# src/video/sdl2_v.cpp
# src/video/sdl2_v.h
# src/window.cpp
# src/window_gui.h
2019-11-12 18:43:10 +00:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
Jonathan G Rennison
e81697c363
cpp-btree: Fix -Wdeprecated-copy warnings on GCC 9
2019-11-05 18:07:49 +00:00
Jonathan G Rennison
edfd378e93
Merge branch 'master' into jgrpp
...
# Conflicts:
# source.list
# src/blitter/32bpp_anim.cpp
# src/linkgraph/linkgraphjob.cpp
# src/order_cmd.cpp
# src/vehicle.cpp
# src/vehicle_type.h
2019-10-05 21:45:54 +01:00
Charles Pigott
6378a78817
Codechange: Explicitly move a few variables to avoid a copy constructor (fixes warning from clang)
2019-09-30 14:00:06 +01:00
Charles Pigott
71a3e83468
Fix: GCC9's warnings about deprecated implicit assignment operators
2019-09-30 14:00:06 +01:00
Jonathan G Rennison
02bd91477d
Merge branch 'cpp-btree' into jgrpp
2019-09-29 12:06:18 +01:00
Jonathan G Rennison
9176d9a284
cpp-btree: Update to match upstream
...
Add noexcept to swap-based move constructors and copy/move assignment operator
2019-09-29 12:03:12 +01:00
Jonathan G Rennison
dbc5f1baed
Merge branch 'master' into jgrpp-nrt
...
# Conflicts:
# src/fontcache.cpp
# src/game/game_text.cpp
# src/lang/korean.txt
# src/os/macosx/crashlog_osx.cpp
# src/os/windows/crashlog_win.cpp
# src/station_cmd.cpp
# src/viewport.cpp
2019-07-11 20:03:23 +01:00
Niels Martin Hansen
140a96b3a0
Change: Limit memory allocations for each Squirrel instance
...
This can avoid out-of-memory situations due to single scripts using up the entire address space.
Instead, scripts that go above the maximum are killed.
The maximum is default 1 GB per script, but can be configured by a setting.
2019-05-11 15:34:33 +02:00
Jonathan G Rennison
f887b12be2
Add 3rd party mingw-std-threads headers to fix MinGW compilation
2019-04-10 17:35:43 +01:00
Jonathan G Rennison
91e08c6cea
Merge branch 'cpp-btree' into jgrpp
2018-11-01 18:56:02 +00:00
Jonathan G Rennison
7690fe8572
cpp-btree: Update to match upstream
...
minor optimization: minimize calls to end()
Minor optimization: increase the chances that the compiler will inline calls to end().
Has been observed to make a difference with gcc 4.9.3.
Fix build and warnings on MSVC (2017)
Uses static_assert, a C++11 feature. Also adds some explicit uses of
static_cast in order to suppress warnings about lossy type conversion.
2018-11-01 18:54:24 +00:00
Jonathan G Rennison
3330e4cef8
Merge branch 'cargo_type_order' into jgrpp
...
# Conflicts:
# src/pathfinder/yapf/yapf_common.hpp
# src/saveload/extended_ver_sl.cpp
# src/saveload/order_sl.cpp
# src/saveload/station_sl.cpp
# src/track_func.h
2018-07-02 21:04:06 +01:00
Charles Pigott
5f86e1a390
Codechange: Silence -Wclass-memaccess warnings with GCC8
2018-06-27 22:54:46 +02:00
Jonathan G Rennison
4d1bd8e4b4
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/genworld_gui.cpp
# src/gfx.cpp
# src/lang/korean.txt
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/linkgraph_gui.h
# src/music.cpp
# src/table/settings.ini
# src/town_cmd.cpp
# src/train_cmd.cpp
2018-06-25 18:57:48 +01:00