1
0
Fork 0
Commit Graph

8437 Commits

Author SHA1 Message Date
Thaddeus Crews 5538850d87
Core: Convert `Pair`/`KeyValue` to `constexpr` 2025-05-15 10:37:41 -05:00
Pedro J. Estébanez 820380817a Exclude RD creation test functions from templates 2025-05-15 10:12:38 +02:00
Yufeng Ying 3bf400ffae Move bisect to Span and deduplicate code.
Co-authored-by: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-05-14 18:19:09 +08:00
Thaddeus Crews 0717136785
Merge pull request #106353 from YYF233333/hashmap_zst
Optimize `HashMap` size for zero-sized Allocators
2025-05-13 16:22:28 -05:00
Thaddeus Crews 1c4b660312
Merge pull request #96611 from Dynamic-Pistol/master
Add `PROPERTY_HINT_INPUT_NAME` for use with `@export_custom` to allow using input actions
2025-05-13 16:22:25 -05:00
Thaddeus Crews f648eea7f4
Merge pull request #106209 from YYF233333/opt_get_actions
Optimize `InputMap::get_actions`
2025-05-13 16:22:23 -05:00
Thaddeus Crews 243c8932d3
Merge pull request #82497 from Repiteo/typed-array-consolidation
Typed array equality operator update
2025-05-13 16:22:15 -05:00
Thaddeus Crews a2b49d0800
Merge pull request #93883 from TV4Fun/variant_join
Consolidate and simplify string joining code in `VariantUtilityFunctions`
2025-05-13 16:22:13 -05:00
Thaddeus Crews 172794337c
Merge pull request #99985 from allenwp/release-only-crash-99797
Print error message when index is out of range in `Variant::iter_get`
2025-05-13 16:22:11 -05:00
Thaddeus Crews 5b935881fc
Typed array equality operator logic updated
• Instead of calling to `_ref`, the same effect is achieved by calling to the base class assignment operator
• No longer need to be expose `_ref`; set back to private & remove reference from gdextension_interface
2025-05-13 14:41:16 -05:00
Allen Pestaluky 5657ecc542 Print error message when index is out of range in `Variant::iter_get` of `DEBUG_ENABLED` builds.
Mitigates #99797
2025-05-13 13:57:16 -04:00
Yufeng Ying 0babb2ab02 Optimize HashMap size for zero-sized Allocators. 2025-05-13 21:44:39 +08:00
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
Rémi Verschelde 03cae12314
Merge pull request #106295 from timothyqiu/legacy-l10n
Remove translation loading logic that was never used
2025-05-13 01:05:31 +02:00
Rémi Verschelde 4c62c8aceb
Merge pull request #106020 from Ivorforce/hashmap-duplicate-hash
Optimize `HashMap` insertion by removing duplicate computation of hash and position
2025-05-13 01:04:57 +02:00
Rémi Verschelde a529abc361
Merge pull request #101339 from Ivorforce/remove-nothing
Remove unintentional use of zero-width space.
2025-05-13 01:04:19 +02:00
Rémi Verschelde 2b037e8989
Merge pull request #93276 from mashumafi/avoid-vec-copy
Avoid unnecessary copy-on-write Vector/Array
2025-05-13 01:04:16 +02:00
Rémi Verschelde b8fba34c17
Merge pull request #75629 from RedworkDE/non-atomic-error-macros
Remove pointless use of atomics in error macros
2025-05-13 01:04:12 +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
Lukas Tenbrink e8c3409d40 Remove 4 unintentional uses of zero-width space and zero-width non-joiner. 2025-05-12 22:00:37 +02:00
RedworkDE c5777c43d9 Remove pointless use of atomics in error macros 2025-05-12 17:06:19 +02:00
mashumafi b73346ef19 Avoid copy-on-write when reading vectors 2025-05-12 16:08:05 +02:00
Haoyu Qiu bbc6643e4c Remove translation loading logic that was never used 2025-05-12 19:05:20 +08:00
Yufeng Ying 55a61cbd4a Optimize InputMap::get_actions. 2025-05-12 17:51:27 +08:00
Thaddeus Crews 1b439d49a9
Merge pull request #100446 from YYF233333/vmap
Replace `VMap` used in `VisualShader` with `HashMap` and remove `VMap`
2025-05-09 11:29:25 -05:00
Thaddeus Crews ba710dfde3
Merge pull request #106170 from IphStich/fix-typed-dictionary
Fix for debugging typed dictionaries
2025-05-09 11:29:18 -05:00
Thaddeus Crews 0bf9d88797
Merge pull request #106167 from Faless/mbedtls/fix_enable_threading
mbedTLS: Fix concurrency issues with TLS
2025-05-09 11:29:17 -05:00
Yufeng Ying 2db0a44519 Remove vmap.h 2025-05-09 19:05:28 +08:00
Thaddeus Crews 16aaa0a213
Merge pull request #103944 from KoBeWi/more_red_info
Improve error messages for `add_property_info()`
2025-05-08 07:19:33 -05:00
Elise 057759d413 Fix for debugging typed dictionaries 2025-05-08 21:11:23 +10:00
Fabio Alessandrelli 2c789788c0 mbedTLS: Fix concurrency issues with TLS
When we first integrated mbedTLS, we decided not to enable
MBEDTLS_THREADING_C (which adds mutex locking to calls modifying the
state), and instead to simply create separate contexts ("states") for
each connection.

This worked fine until recently.
Sadly, mbedTLS 3 added a global state for the new PSA crypto
functionalities (which are required to support TLSv1.3).
This results in TLSv1.3 connections to access and modify the global
state concurrently when running in threads.

This commit enables MBEDTLS_THREADING_C, and MBEDTLS_THREADING_C_ALT to
provide a generic Godot implementation using the engine Mutex class.
2025-05-08 11:45:00 +02:00
Thaddeus Crews 090d244b16
Merge pull request #101356 from Ivorforce/inline-utf-creation-functions
Inline `String::utf8` and `String::utf16` for their simplicity.
2025-05-07 12:48:32 -05:00
Thaddeus Crews 075b55068e
Merge pull request #100067 from aaronp64/randi_range_overflow
Fix `RandomPCG::random(int, int)` overflow bug
2025-05-07 12:48:30 -05: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
Thaddeus Crews 0ce3d75c20
Merge pull request #93783 from aaronp64/json_stringify_performance
Improve `JSON::stringify` performance
2025-05-07 12:48:28 -05:00
Thaddeus Crews aa1ca2b244
Merge pull request #93517 from Repiteo/core/nodiscard-strings
Core: Add `[[nodiscard]]` to string-like classes/structs
2025-05-07 12:48:27 -05:00
aaronp64 f13b4b760a Improve JSON::stringify performance
- Changed stringify to call static function _stringify directly, instead of creating JSON object
- Changed colon and end_statement from String to const char * to avoid extra allocations in each _stringify call
- Pass result String reference to each _stringify call to append to instead of allocating new String in each call

These changes make JSON::stringify around 2-3x faster in most cases
2025-05-06 18:27:32 -04:00
aaronp64 1089f61868 Fix RandomPCG::random(int, int) overflow bug
- Use int64_t for subtraction before converting to uint32_t
- Don't add one to uint32_t max value for rand() bounds
2025-05-06 17:54:12 -04:00
Thaddeus Crews 579feb387c
Core: Add `[[nodiscard]]` to string-like classes 2025-05-06 12:23:41 -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
Lukas Tenbrink 26a6d4062d Inline `String::utf8` and `String::utf16` for their simplicity. 2025-05-06 17:20:03 +02:00
Thaddeus Crews e085acd71c
Merge pull request #104815 from Ivorforce/strnlen
Rename `_strlen_clipped` to `strnlen` (and use the system equivalent for `char *` inputs)
2025-05-06 08:38:06 -05:00
Thaddeus Crews bd22587170
Merge pull request #106093 from KoBeWi/deprecated_forever
Remove registration of deprecated classes
2025-05-06 08:38:05 -05:00
Thaddeus Crews 4cb030d6bf
Merge pull request #106089 from mihe/rogue-newlines
Fix empty lines being added for errors with no script backtrace
2025-05-06 08:38:04 -05:00
Thaddeus Crews 7efe897343
Merge pull request #106085 from clayjohn/texture-decompress-import
Fix loading BPTC/ASTC textures on devices that don't support them
2025-05-06 08:38:04 -05: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
Thaddeus Crews aa24e3b671
Merge pull request #105884 from stuartcarnie/macos_embedded
macOS: Embedded window support.
2025-05-06 08:37:59 -05:00
Lukas Tenbrink ec32dae1da Rename `_strlen_clipped` to `strnlen` (and use the system equivalent for `char *` inputs).
Add `strnlen` for `char16_t *` and `wchar_t *`.
2025-05-06 15:17:07 +02:00