Stuart Carnie
bdfe8549b8
Core: Switch RID_alloc::owns to lock-free
2025-11-12 15:17:45 +11:00
aaronp64
afd59b36cf
Avoid extra copy in Vector/CowData push_back/insert
...
Update push_back/insert methods to move new item into CowData instead of copying
2025-11-11 12:19:35 -05:00
David Snopek
bc9f3c7d92
Make Vector<T>::duplicate() const
...
Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
2025-11-04 17:13:11 -06:00
Thaddeus Crews
5c9333073a
Merge pull request #111696 from StarryWorm/langtable-include
...
Fix missing includes in headers
2025-10-27 10:01:51 -05:00
StarryWorm
796281f62f
Add missing includes
...
Add missing <winnt.h> include in windows/lang_table.h
Add missing typedefs.h and rid.h include in godot_constraint_3d.h
Add missing <type_traits> include in iterable.h
Add missing forward declarations in rendering_shader_library.h
2025-10-26 18:25:17 -04:00
Lukas Tenbrink
6733345f73
Fix false positive warning with FixedVector array bounds in gcc.
2025-10-17 13:11:33 +02:00
Thaddeus Crews
89ce203427
Merge pull request #106997 from Ivorforce/fixed-move-semantics
...
Fix `FixedVector` move and copy semantics.
2025-10-10 10:26:06 -05:00
Thaddeus Crews
7efb51c9d3
Merge pull request #111361 from Ivorforce/cleanup-hashfuncs
...
Clean up `hashfuncs.h`
2025-10-09 11:46:43 -05:00
Lukas Tenbrink
1fa332cad4
Add max() to Span.
...
Remove `<algorithm>` include from `rendering_device_commons.h`, using `Span` instead.
2025-10-07 22:26:32 +02:00
Lukas Tenbrink
f678729f89
Clean up hashfuncs.h: Move long functions to hashfuncs.cpp and replace static with inline. Remove hash_make_uint64_t and hash_make_uint32_t.
2025-10-07 13:50:18 +02:00
Lukas Tenbrink
d6036462b1
Remove hash_map.h include from a_hash_map.h, and remove cross conversion operators.
2025-10-06 17:20:31 +02:00
Lukas Tenbrink
ad600125df
Rewrite HashMapHasherDefault based on type traits - it is now possible to declare a default hashing function for any type.
...
Remove cross-project includes from `hashfuncs.h`.
Improve hashing function for `Color` (based on values instead of `String`).
Move `Variant` comparison from `hash_map.h` to `dictionary.cpp` (`VariantComparatorDictionary`), where it's used.
Remove now unnecessary `HashableHasher`.
2025-10-05 01:49:11 +02:00
Lukas Tenbrink
c993db9688
Add reserve_exact to CowData and Vector.
...
Change growth factor to be an indeterministic 1.5x.
Use `reserve_exact` in `FileAccess` to reduce on binary file loading RAM usage.
# Conflicts:
# core/templates/cowdata.h
2025-10-01 11:57:40 +02:00
Thaddeus Crews
55ac91b887
Merge pull request #111084 from Ivorforce/cowdata-reserve-verbose
...
Make `CowData::reserve` warn message when new capacity < size verbose, like other `reserve` methods
2025-09-30 18:35:23 -05:00
Thaddeus Crews
e5bf31b170
Merge pull request #107369 from Ivorforce/node-iter-children
...
Core: Add `Node::iterate_children` as a fast way to iterate a node's children
2025-09-30 18:35:21 -05:00
Thaddeus Crews
4d13966c08
Merge pull request #108698 from Brogolem35/hashset_clear_optimize
...
Optimize and clean up HashSet::clear
2025-09-30 18:35:01 -05:00
Lukas Tenbrink
8f533897d8
Make CowData::reserve warn message when new capacity < size verbose, like other reserve methods.
2025-09-30 20:21:02 +02:00
Thaddeus Crews
21fd4faf1b
Merge pull request #107469 from Ivorforce/vector-localvector-explicit-span-conversions
...
Remove implicit conversions between `LocalVector` and `Vector`
2025-09-30 11:19:17 -05:00
Lukas Tenbrink
1bf821c1e1
Store current capacity in CowData buffers, and rewrite most of it.
...
Add `reserve` to `CowData`, `Vector` and `Array`.
# Conflicts:
# core/os/memory.h
# core/templates/cowdata.h
2025-09-25 22:00:17 +02:00
Thaddeus Crews
5fda92451d
Merge pull request #100145 from Ivorforce/memory-offset-func
...
Add `mem_aligned_address` to simplify data offset constants.
2025-09-25 14:57:09 -05:00
Lukas Tenbrink
3ac159094f
Add memory_get_offset to simplify data offset constants.
2025-09-25 20:55:33 +02:00
Lukas Tenbrink
c6f57c7a55
Change "reserve called with a capacity smaller than the current size" error message to a verbose message.
2025-09-23 20:02:40 +02:00
Thaddeus Crews
9b7a723aac
Merge pull request #107721 from YYF233333/ps_include
...
Remove dependency of `variant.h` in `print_string.h`
2025-09-22 08:50:04 -05:00
Brogolem35
7685cb6f48
Optimize clear
2025-09-21 10:19:12 +03:00
Thaddeus Crews
40bd86819b
Merge pull request #104332 from ColinSORourke/FindSeq
...
Add 'Find Sequence' to `Span`s, and consolidate negative indexing behavior
2025-09-20 13:41:34 -05:00
Yufeng Ying
05dae23f18
Remove dependency of variant.h in print_string.h
...
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2025-09-19 14:57:36 +08:00
Lukas Tenbrink
46b88dcbda
Rename internal fields and variables in AHashMap, HashMap and HashSet for consistency.
2025-09-17 19:10:02 +02:00
Lukas Tenbrink
abe3b481ae
Make conversions from LocalVector to Vector explicit.
2025-09-16 21:41:28 +02:00
Colin O'Rourke
03d32c68a9
Added Find Sequence to Spans
...
Added FindSequence to Span.h
Refactored String find to use Span::Find_Seq in Ustring.cpp
2025-09-16 12:37:07 -07:00
Mike Precup
25115609ff
Fix issue with array comparison reference
2025-07-09 20:22:09 -07:00
Lukas Tenbrink
697e0bb077
Use reserve in LocalVector::resize, to restore expected growth behavior.
2025-06-21 11:23:05 +02:00
Thaddeus Crews
ac6252c9c8
Merge pull request #107486 from Ivorforce/rendering-no-alloc-api
...
Use raw buffer pointers in `RenderingDevice` allocation APIs to avoid intermediary arrays
2025-06-18 18:14:00 -05:00
Lukas Tenbrink
2b36c79f7b
Use Span<uint8_t> in RenderingDevice allocation APIs to avoid intermediary arrays on calls.
2025-06-18 12:31:48 +02:00
Haoyu Qiu
296aba7dc5
Fix CSV translation not updating after reimport
2025-06-17 17:22:49 +08:00
Adrien Ufferte
a11a64fbf4
Comments spelling fixes
2025-06-15 01:36:10 +02:00
Lukas Tenbrink
175c38d0dc
Core: Add Node::iterate_children as a fast way to iterate a node's children, without needing allocations or get_child.
...
Adds `Iterable` class to templates.
2025-06-13 17:01:51 +02:00
Lukas Tenbrink
2d0ff9774d
Add a smoke test to Span in debug builds to recover from non-empty nullptr Span.
2025-06-12 12:19:21 +02:00
Lukas Tenbrink
d2f9d31270
Make more types (Callable, Signal) conversion to String explicit.
2025-06-10 23:55:35 +02:00
dementive
d2814ebbf3
Add missing Color hash function
2025-06-08 14:49:50 -04:00
Rémi Verschelde
61639d9574
Merge pull request #106996 from Ivorforce/no-oa-hashmap
...
Core: Remove `OAHashMap`, in favour of `AHashMap`
2025-06-05 13:12:34 +02:00
aaronp64
6b2674fe18
Reuse and optimize sorting logic for List, SelfList, and HashMap
...
Added SortList class, and updated List, SelfList, and HashMap sort methods to use it. Sorting is done with merge sort, with an initial check to optimize for already sorted lists, and sorted lists that were appended to.
2025-06-04 10:18:22 -04:00
Thaddeus Crews
7a3d2f6779
Merge pull request #106606 from aaronfranke/pow2_64
...
Add 64-bit versions of core power of 2 functions
2025-06-02 18:51:56 -05:00
Aaron Franke
f6f1df7d73
Add 64-bit versions of core power of 2 functions
2025-06-01 23:11:12 -07:00
Lukas Tenbrink
c3476b8205
Fix FixedVector move semantics.
2025-05-31 18:22:16 +02:00
Lukas Tenbrink
963c20565b
Remove OAHashMap, in favour of AHashMap.
...
The two types had (mostly) the same decisions, but `AHashMap` is a faster implementation, and is more consistent with `HashMap`.
2025-05-31 15:50:10 +02:00
LuoZhihao
21e2bac382
Add missing headers in FixedVector and Span
2025-05-30 13:41:45 +08:00
Thaddeus Crews
2cde9292c3
Merge pull request #106876 from Ivorforce/localvector-no-force-trivial
...
Un-support `force_trivial` parameter for `LocalVector`. Instead, users should use `resize_uninitialized`.
2025-05-28 09:47:45 -05:00
Lukas Tenbrink
37415530d7
Un-support force_trivial parameter for LocalVector. Instead, users are reformatted to use resize_uninitialized to make it explicit that the resize does not initialize missing elements.
2025-05-27 18:43:36 +02:00
Lukas Tenbrink
d2d57849de
Add a safety check for CowData::_unref(), for when something tries to add elements during destruction.
2025-05-27 18:00:48 +02:00
Thaddeus Crews
0c12e758ac
Merge pull request #106569 from Ivorforce/hashmap-if-mod
...
Accelerate `HashMap` and `HashSet` lookup by using `if` based modulo in loops
2025-05-27 09:39:29 -05:00