godot/main
Hein-Pieter van Braam 0e29f7974b Reduce unnecessary COW on Vector by make writing explicit
This commit makes operator[] on Vector const and adds a write proxy to it.  From
now on writes to Vectors need to happen through the .write proxy. So for
instance:

Vector<int> vec;
vec.push_back(10);
std::cout << vec[0] << std::endl;
vec.write[0] = 20;

Failing to use the .write proxy will cause a compilation error.

In addition COWable datatypes can now embed a CowData pointer to their data.
This means that String, CharString, and VMap no longer use or derive from
Vector.

_ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug
builds. This is a lot faster for Vector in the editor and while running tests.
The reason why this difference used to exist is because force-inlined methods
used to give a bad debugging experience. After extensive testing with modern
compilers this is no longer the case.
2018-07-26 00:54:16 +02:00
..
tests Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
SCsub add NoCache wrapper to Command 2018-06-21 03:00:33 -04:00
app_icon.png Optimize images losslessly using `oxipng -o6 --strip all --zopfli` 2018-06-28 19:17:41 +02:00
default_controller_mappings.h SCons: properly close files when reading controller mappings 2018-03-16 08:40:33 +01:00
gamecontrollerdb.txt Generate controller mapping class from one or more SDL2 database files 2018-03-05 22:23:49 -08:00
gamecontrollerdb_204.txt Generate controller mapping class from one or more SDL2 database files 2018-03-05 22:23:49 -08:00
gamecontrollerdb_205.txt Generate controller mapping class from one or more SDL2 database files 2018-03-05 22:23:49 -08:00
godotcontrollerdb.txt Generate controller mapping class from one or more SDL2 database files 2018-03-05 22:23:49 -08:00
input_default.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
input_default.h Merge pull request #17196 from RandomShaper/improve-gui-touch 2018-05-02 10:47:49 +02:00
main.cpp Merge pull request #18368 from Gamblify/RasterizerEngineSync 2018-07-25 20:33:37 +02:00
main.h Revert "Make the performance reporting update frequency customizable" 2018-05-28 08:47:09 -03:00
performance.cpp Added Performance.AUDIO_OUTPUT_LATENCY 2018-07-17 08:54:59 -03:00
performance.h Added Performance.AUDIO_OUTPUT_LATENCY 2018-07-17 08:54:59 -03:00
splash.png Optimize images losslessly using `oxipng -o6 --strip all --zopfli` 2018-06-28 19:17:41 +02:00
splash_editor.png Optimize images losslessly using `oxipng -o6 --strip all --zopfli` 2018-06-28 19:17:41 +02:00
timer_sync.cpp Add missing copyright headers 2018-05-16 14:50:44 -03:00
timer_sync.h Add missing copyright headers 2018-05-16 14:50:44 -03:00