virtualx-engine/modules/mono
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
..
doc_classes doc: Remove status from hardcoded version string 2018-02-27 13:40:49 +01:00
editor Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
glue Merge pull request #20298 from PJB3005/18-07-20-mono-partial-api-ext 2018-07-25 18:03:57 +02:00
mono_gd Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
utils Mono: Pending exceptions and cleanup 2018-07-04 03:08:29 +02:00
config.py Mono: Fix build script not decoding process utf-8 output 2018-07-04 16:07:52 +02:00
csharp_script.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
csharp_script.h Add editor highlight for type-safe lines 2018-07-20 21:55:18 -03:00
godotsharp_defs.h Mono: Better versioning and gracefully unloading of Godot API assemblies 2018-02-25 20:56:27 +01:00
godotsharp_dirs.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
godotsharp_dirs.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
mono_gc_handle.cpp Mono: Pending exceptions and cleanup 2018-07-04 03:08:29 +02:00
mono_gc_handle.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
mono_reg_utils.py convert unicode mono root path to ascii string 2018-06-30 08:58:41 +08:00
register_types.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
register_types.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
SCsub Added path for Mono installed through Homebrew 2018-07-10 00:29:05 +02:00
signal_awaiter_utils.cpp Mono: Pending exceptions and cleanup 2018-07-04 03:08:29 +02:00
signal_awaiter_utils.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
tls_configure.py Mono: Pending exceptions and cleanup 2018-07-04 03:08:29 +02:00