godot/editor
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
..
collada Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
doc Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
fileserver Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
icons Implemented Soft body 2018-07-23 20:50:23 +02:00
import Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
plugins Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
translations
animation_bezier_editor.cpp
animation_bezier_editor.h
animation_track_editor.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
animation_track_editor.h
animation_track_editor_plugins.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
animation_track_editor_plugins.h
array_property_edit.cpp
array_property_edit.h
audio_stream_preview.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
audio_stream_preview.h
code_editor.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
code_editor.h Refactored text manipulation into CodeTexteditor 2018-07-22 11:48:59 +01:00
connections_dialog.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
connections_dialog.h
create_dialog.cpp Global class names (and GDScript support for it) 2018-07-15 19:29:00 -03:00
create_dialog.h
dependency_editor.cpp
dependency_editor.h
dictionary_property_edit.cpp
dictionary_property_edit.h
editor_about.cpp
editor_about.h
editor_asset_installer.cpp
editor_asset_installer.h
editor_audio_buses.cpp
editor_audio_buses.h
editor_autoload_settings.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_autoload_settings.h
editor_data.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_data.h
editor_dir_dialog.cpp
editor_dir_dialog.h
editor_export.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_export.h
editor_file_dialog.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_file_dialog.h
editor_file_system.cpp Global class names (and GDScript support for it) 2018-07-15 19:29:00 -03:00
editor_file_system.h Global class names (and GDScript support for it) 2018-07-15 19:29:00 -03:00
editor_fonts.cpp
editor_fonts.h
editor_help.cpp -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
editor_help.h -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
editor_initialize_ssl.cpp
editor_initialize_ssl.h
editor_inspector.cpp -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
editor_inspector.h -Fix tooltips in inspector, now they show as rich text. 2018-07-20 18:16:19 -03:00
editor_log.cpp
editor_log.h
editor_name_dialog.cpp
editor_name_dialog.h
editor_node.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_node.h Add menu buttons to open the project and editor data folders 2018-07-25 23:41:35 +02:00
editor_path.cpp
editor_path.h
editor_plugin.cpp
editor_plugin.h
editor_plugin_settings.cpp
editor_plugin_settings.h
editor_profiler.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_profiler.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_properties.cpp Add editor property type so that inspector can search for objects. This is a regression. 2018-07-25 12:54:35 -07:00
editor_properties.h Add editor property type so that inspector can search for objects. This is a regression. 2018-07-25 12:54:35 -07:00
editor_properties_array_dict.cpp
editor_properties_array_dict.h
editor_resource_preview.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_resource_preview.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_run.cpp
editor_run.h
editor_run_native.cpp
editor_run_native.h
editor_run_script.cpp
editor_run_script.h
editor_scale.cpp
editor_scale.h
editor_sectioned_inspector.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
editor_sectioned_inspector.h -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
editor_settings.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
editor_settings.h -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
editor_spin_slider.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
editor_spin_slider.h Improvements to vector fields, show axis in color with a background 2018-07-18 22:27:39 -03:00
editor_sub_scene.cpp
editor_sub_scene.h
editor_themes.cpp Removed unnecessary assignments 2018-07-24 09:51:03 +02:00
editor_themes.h
export_template_manager.cpp Export: Properly reload preset when opening dialog 2018-07-18 13:49:34 +02:00
export_template_manager.h
file_type_cache.cpp
file_type_cache.h
filesystem_dock.cpp Ability to add Resource from FileSystem Dock 2018-07-22 21:23:40 +05:30
filesystem_dock.h Ability to add Resource from FileSystem Dock 2018-07-22 21:23:40 +05:30
find_in_files.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
find_in_files.h
groups_editor.cpp
groups_editor.h
import_dock.cpp
import_dock.h
inspector_dock.cpp Allow opening and editing of any utf_8 file in script editor 2018-07-22 11:55:56 +01:00
inspector_dock.h
multi_node_edit.cpp
multi_node_edit.h
node_dock.cpp
node_dock.h
output_strings.cpp
output_strings.h
pane_drag.cpp
pane_drag.h
progress_dialog.cpp
progress_dialog.h
project_export.cpp Export: Properly reload preset when opening dialog 2018-07-18 13:49:34 +02:00
project_export.h
project_manager.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
project_manager.h
project_settings_editor.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
project_settings_editor.h -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
property_editor.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
property_editor.h Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
property_selector.cpp
property_selector.h
pvrtc_compress.cpp
pvrtc_compress.h
quick_open.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
quick_open.h
register_exporters.h
rename_dialog.cpp
rename_dialog.h
reparent_dialog.cpp
reparent_dialog.h
run_settings_dialog.cpp
run_settings_dialog.h
scene_tree_dock.cpp Merge pull request #19729 from razcore-art/rename-discard-instancing 2018-07-24 20:51:53 +02:00
scene_tree_dock.h Merge pull request #19729 from razcore-art/rename-discard-instancing 2018-07-24 20:51:53 +02:00
scene_tree_editor.cpp
scene_tree_editor.h
script_create_dialog.cpp
script_create_dialog.h
script_editor_debugger.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
script_editor_debugger.h
SCsub
settings_config_dialog.cpp -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
settings_config_dialog.h -Project/Editor settings now use new inspector 2018-07-19 19:02:04 -03:00
spatial_editor_gizmos.cpp Reduce unnecessary COW on Vector by make writing explicit 2018-07-26 00:54:16 +02:00
spatial_editor_gizmos.h Implemented Soft body 2018-07-23 20:50:23 +02:00