virtualx-engine/core/os
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
..
copymem.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
dir_access.cpp Improved error checking at EditorExportPlatformPC::export_project 2018-03-06 14:23:17 -03:00
dir_access.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
file_access.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
file_access.h Added File.get_path and File.get_path_absolute functions 2018-03-13 12:07:37 -03:00
input.cpp Merge pull request #16902 from groud/analog_action_system 2018-04-18 07:21:29 -03:00
input.h Merge pull request #17196 from RandomShaper/improve-gui-touch 2018-05-02 10:47:49 +02:00
input_event.cpp Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
input_event.h Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
keyboard.cpp [macOS] Fix keyboard shortcuts on non QWERTY keyboard layouts. 2018-03-28 20:22:59 +03:00
keyboard.h [macOS] Fix keyboard shortcuts on non QWERTY keyboard layouts. 2018-03-28 20:22:59 +03:00
main_loop.cpp Add a new notification to detect crashes on native scripts 2018-07-02 16:18:58 -03:00
main_loop.h Add a new notification to detect crashes on native scripts 2018-07-02 16:18:58 -03:00
memory.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
memory.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
midi_driver.cpp Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
midi_driver.h Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
mutex.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
mutex.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
os.cpp Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
os.h Added a new MIDIDriver class 2018-07-21 09:09:42 -03:00
rw_lock.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
rw_lock.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
SCsub style: Fix PEP8 whitespace issues in Python files 2016-11-01 00:35:16 +01:00
semaphore.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
semaphore.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shell.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
shell.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread_dummy.cpp Add RWLockDummy for NO_THREADS builds 2018-03-20 05:37:42 +01:00
thread_dummy.h Add RWLockDummy for NO_THREADS builds 2018-03-20 05:37:42 +01:00
thread_safe.cpp Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
thread_safe.h Add missing copyright headers and fix formatting 2018-01-05 01:22:23 +01:00
threaded_array_processor.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00