1
0
mirror of https://github.com/godotengine/godot.git synced 2026-01-03 19:11:41 +00:00
Commit Graph

891 Commits

Author SHA1 Message Date
Rémi Verschelde
620206b0ae Merge pull request #106309 from aaronp64/string_chr_appends
Avoid single character `String` allocations when appending characters
2025-05-13 01:05:45 +02:00
Joel Croteau
981f1e9298 Rename VariantUtilityFunctions::join() to join_string() 2025-05-12 17:51:09 -05:00
Joel Croteau
8be7ad32e7 Consolidate and simplify string joining code in VariantUtilityFunctions
`variant_utility.cpp` has 8 different copies of the exact same loop to join
vararg strings together. This is bad coding process and makes the codebase
needlessly cluttered. Also, the loop itself has an i == 0 check that is
unnecessary since String is auto-initialized to be empty and String::operator+=
already checks if it is empty before appending. This is a non-functional change
that only reorganizes the code to be a bit more readable.
2025-05-12 17:47:14 -05:00
aaronp64
8fb3697916 Avoid single character String allocations when appending characters
Removed calls to String::chr() when appending characters to Strings in Expression, Resource, and VariantParser, to avoid creating temporary Strings for each character.  Also updated the Resource case to resize String up front, since size is known.
2025-05-12 17:35:42 -04:00
mashumafi
b73346ef19 Avoid copy-on-write when reading vectors 2025-05-12 16:08:05 +02:00
Thaddeus Crews
051712dfb8 Merge pull request #103264 from mhilbrunner/docs-path-join
Rename "file" param for str.path_join() to "path"
2025-05-07 12:48:29 -05:00
aaronp64
d176ba045f Array performance improvements to reduce copying/copy_on_write calls
- Avoid temporary copy of p_array in Array::append_array when types match
- Call ptrw() once before looping in methods that return new Arrays, to avoid copy_on_write call for each item (recursive_duplicate, slice, filter, map)
2025-05-06 13:19:50 -04:00
Thaddeus Crews
5fec9a9fdc Merge pull request #100057 from aaronp64/container_validate_obj_perf
Improve `ContainerTypeValidate` performance for object types
2025-05-06 08:38:03 -05:00
Danil Alexeev
2b30f23595 GDScript: Fix Callable call error text 2025-05-02 18:30:35 +03:00
Thaddeus Crews
01fc9aee6c Core: Modernize C headers with C++ equivalents 2025-05-02 08:23:01 -05:00
Thaddeus Crews
347e51e077 Merge pull request #105922 from aaronp64/dictionary_has_all
Avoid extra copy/validation of keys in `Dictionary::has_all`
2025-04-29 16:05:14 -05:00
aaronp64
e4bd611e19 Avoid extra copy/validation of keys in Dictionary::has_all
Updated Dictionary::has_all to check its HashMap directly for each validated key instead of going through Dictionary::has, to avoid additional copy/validation of each key.
2025-04-29 15:27:12 -04:00
Thaddeus Crews
3947cbe3b2 Merge pull request #104386 from Repiteo/core/cpp-math
Core: Replace C math headers with C++ equivalents
2025-04-27 19:21:22 -05:00
Thaddeus Crews
28089c40c1 Merge pull request #91006 from reduz/live-backtrace
Ability to print and log script backtraces
2025-04-24 17:18:52 -05:00
reduz
d1dcb40d56 Ability to print and log script backtraces
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2025-04-24 18:54:41 +02:00
Thaddeus Crews
ad40939b6f Core: Replace C math headers with C++ equivalents
- Minor restructuring to ensure `math_funcs.h` is the central point for math functions
2025-04-16 15:49:02 -05:00
Thaddeus Crews
b8950a4662 Merge pull request #105392 from aaronp64/array_min_max
Optimize `Array` `min`/`max` methods
2025-04-15 12:28:40 -05:00
Thaddeus Crews
e5ccaa79e2 Merge pull request #105334 from WindyDarian/insert_at_end
Allow inserting at end of array again
2025-04-14 19:39:54 -05:00
Thaddeus Crews
3d80279f80 Merge pull request #90971 from billuo/string-format-rid
Fix `RID` cannot be string formatted
2025-04-14 19:39:50 -05:00
aaronp64
ecf63dd079 Optimize Array min/max methods
Updated Array::min and Array::max to not copy Variants for comparison, and store index instead of copying each time new min/max is found.
2025-04-14 15:40:06 -04:00
Windy Darian
effd1b71ce allow inserting at end of array again 2025-04-12 22:16:19 -04:00
Thaddeus Crews
0d267e7b1e Core: Add dedicated BitField template 2025-04-11 11:53:26 -05:00
Thaddeus Crews
717df3ee88 Merge pull request #105249 from Repiteo/core/math-defs-namespace
Core: Use `Math` namespace for constants
2025-04-11 09:51:04 -05:00
Thaddeus Crews
31bb3be5a6 Merge pull request #105145 from bruvzg/swap_pba
Add bswap methods to the `PackedByteArray` bindings.
2025-04-10 16:53:46 -05:00
Thaddeus Crews
94282d88f9 Core: Use Math namespace for constants 2025-04-10 16:29:30 -05:00
Priahoud
bf963e767e Add Options, Functions and Settings to convert Node-Names and Strings to kebab-case
- refactored and renamed String::_camelcase_to_underscore to String:_separate_compound_words
- refactored String::to_snake_case to work with the refactored String::_separate_compound_words
- created char_utils::is_hyphen to catch all hyphen variants in kebab-case conversion
- created String::to_kebab_case using the new String::_separate_compound_words
- created corresponding Documentation in String and StringName
- simplified both switch statements in EditorNode and ProjectDialog
- added new kebab-casing Option for Node Names in ProjectSettings
- added missing camelCase Options to Scene- and Node-Names in ProjectSettings
- simplified Mono RuntimeInterop Functions
- hooked up the ConnectionsDialog
- created additional Unit Tests
2025-04-10 21:22:21 +02:00
A Thousand Ships
889410dcda Add String::replace_char(s) methods for performance and convenience 2025-04-10 13:08:45 +02:00
Thaddeus Crews
7b74eb1a9b Merge pull request #105205 from aaronp64/dictionary_has_validated_key
Use validated key in `Dictionary::has`
2025-04-09 18:12:02 -05:00
Thaddeus Crews
7a6c3b309f Merge pull request #105130 from bruvzg/uri_fix_plus
Add uri_file_decode to handle + in file names.
2025-04-09 18:11:56 -05:00
aaronp64
117b1c3da1 Use validated key in Dictionary::has
Updated Dictionary::has to use validated key when checking variant_map, to handle cases when passed in key is converted to Dictionary's key type.
2025-04-09 12:22:48 -04:00
Pāvels Nadtočajevs
7c4d45ba3b Add bswap methods to the PackedByteArray bindings. 2025-04-09 18:51:50 +03:00
Thaddeus Crews
ec675fc329 Merge pull request #100333 from YYF233333/reduce_list
Use `LocalVector` instead of `List` as arg of `Dictionary::get_key_list`
2025-04-09 08:51:45 -05:00
Yufeng Ying
f7e4987d0e Dictionary::get_key_list use LocalVector instead of List. 2025-04-09 02:46:24 +08:00
Rarysson Guilherme
fe39ffeb7d Add negative index to Array.remove_at and Array.insert 2025-04-08 14:55:39 -03:00
Pāvels Nadtočajevs
9abe2e5294 Add uri_file_decode to handle + in file names. 2025-04-07 23:49:17 +03:00
Thaddeus Crews
b9665b9ee9 Merge pull request #104991 from nikitalita/fix_inf_neg
`VariantWriter::write`: fix writing negative infinity when `p_compat` is true
2025-04-07 08:43:21 -05:00
Thaddeus Crews
8a93218aab Core: Natively convert enum/BitField with Variant 2025-04-05 12:35:34 -05:00
Thaddeus Crews
21db8487a2 Merge pull request #104664 from tomfull123/missing-typed-dictionary-initializer-list
Add missing `initializer_list` constructor to TypedDictionary
2025-04-03 16:50:23 -05:00
nikitalita
046651e729 VariantWriter::write: fix writing negative infinity when p_compat is true 2025-04-03 14:36:34 -07:00
Thaddeus Crews
207a2b6472 Core: Integrate warning suppression macro helpers 2025-04-03 10:13:46 -05:00
Tom
8a3f9846c5 Add missing initializer_list constructor for TypedDictionary 2025-04-03 00:17:44 +01:00
Yufeng Ying
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
Thaddeus Crews
780cf03051 Merge pull request #104556 from Ivorforce/string-extend-instead-of-parse
Use `append_` instead of `parse_` for `String` methods.
2025-03-29 10:16:33 -05:00
Rémi Verschelde
be1333dc0a Merge pull request #97002 from bruvzg/mbchar_iconv
Add methods to decode/encode multibyte encodings.
2025-03-28 17:29:47 +01:00
bruvzg
48bfe13e4f Add methods to decode/encode multibyte encodings. 2025-03-28 17:32:34 +02:00
Lukas Tenbrink
ffa6ef220b Use append_ instead of parse_ for String methods. 2025-03-27 17:51:02 +01:00
kobewi
75881f8322 Use initializer list in Arrays 2025-03-26 18:38:15 +01:00
Thaddeus Crews
1cb3cfaa8e Style: Convert namespaces to PascalCase 2025-03-23 19:10:24 -05:00
Thaddeus Crews
325c698331 Merge pull request #103647 from aaronp64/dictionary_multiple_lookup
Avoid multiple lookups in `Dictionary::operator[]`
2025-03-23 19:04:00 -05:00
Rémi Verschelde
3f14e6a1b7 Merge pull request #104374 from aaronp64/array_swap_move
Optimize `Array` methods with `SWAP`/`std::move`
2025-03-21 13:04:04 +01:00