1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-07 12:30:27 +00:00
Commit Graph

741 Commits

Author SHA1 Message Date
Thaddeus Crews
fb8d2ee044 Merge pull request #100582 from bruvzg/fix_in_ops
[GDScript] Fix `Packed*Array` `OP_IN` using low precision int and float as input.
2024-12-19 20:00:06 -06:00
Thaddeus Crews
bf9ef5f8a5 Merge pull request #100564 from YYF233333/iwyu
Remove unused headers in core
2024-12-19 19:59:55 -06:00
Pāvels Nadtočajevs
eaf2d7c5b0 [GDScript] Fix Packed*Array OP_IN using low precision int and float as input. 2024-12-18 23:41:27 +02:00
Yufeng Ying
be86ce3103 Apply iwyu suggestion in core. 2024-12-19 00:43:47 +08:00
Rémi Verschelde
851d8e49e8 Merge pull request #100386 from hpvb/core-ubsan
Core: Fix UBSAN reports
2024-12-18 17:23:32 +01:00
HP van Braam
240f510fa7 Core ubsan fixes
This fixes UBSAN errors reported by running our testsuite, importing the
TPS demo, and running the TPS demo. I have tried, wherever possible, to
fix issues related to reported issues but not directly reported by UBSAN
because thse code paths just happened to not have been exercised in
these cases.

These fixes apply only to errors reported, and caused by, core/

The following things have been changed:

* Make sure there are no implicit sign changing casts in core.
* Explicitly type enums that are part of a public API such that users of
  the API cannot pass in wrongly-sized values leading to potential stack
  corruption.
* Ensure that memcpy is never called with invalid or null pointers as
  this is undefined behavior, and when the engine is built with
  optimizations turned on leads to memory corruption and hard to debug
  crashes.
* Replace enum values only used as static values with constexpr static
  const values instead. This has no runtime overhead. This makes it so
  that the size of the enums is explicit.
* Make sure that nan and inf is handled consistently in String.
* Implement a _to_int template to ensure that all of the paths use the
  same algorhithm, and correct the negative integer case.
* Changed the way the json serializer precision work, and added tests to
  verify the new behavior. The behavior doesn't quite match master in
  particulary for negative doubles as the original code tried to cast -inf
  to an int. This then led to negative doubles losing all but one of
  their decimal points when serializing. Behavior in GDScript remains
  unchanged.
2024-12-18 14:31:12 +01:00
Lukas Tenbrink
34fa0bf3ec Add move assignment and move constructor to Variant.
Add `_to_variant` helper functions to `gdvirtual.gen.inc` to work around an MSVC bug.
2024-12-15 14:38:46 +01:00
Thaddeus Crews
9c290c4c56 Merge pull request #100033 from Daylily-Zeleen/daylily-zeleen/optimize_callable_to_string
Optimize callable's stringify text.
2024-12-12 16:13:23 -06:00
Rémi Verschelde
819db4daf5 Merge pull request #99559 from mayoff/OperatorEvaluatorModNZ-ptr_evaluate
Fix `Variant` modulo operation
2024-12-12 14:09:59 +01:00
Thaddeus Crews
8f16f864a6 Merge pull request #99765 from dalexeev/core-fix-json-from-to-native
Core: Fix `JSON.{from,to}_native()` issues
2024-12-10 14:15:53 -06:00
Lukas Tenbrink
b5c31ebb41 Add contains_char() for single-character 'contains' calls. 2024-12-06 20:23:35 +01:00
Daylily-Zeleen
614a51f293 Optimize callable's stringify text. 2024-12-05 14:24:39 +08:00
rune-scape
d58b2e879f Get rid of easily removable uses of const_cast 2024-12-01 17:50:13 -08:00
Pāvels Nadtočajevs
54945c4d28 Add std::initializer_list constructor for Dictionary. 2024-11-29 14:12:40 +02:00
Danil Alexeev
bd1a35ce9e Core: Fix JSON.{from,to}_native() issues 2024-11-29 12:43:06 +03:00
Rob Mayoff
daa665c4cb fix copy/paste error (fixes #99518)
Replace erroneous use of `/` with `%`.
2024-11-22 13:21:02 -06:00
Danil Alexeev
03b05cf9ac Core: Fix built-in enum constant bindings 2024-11-22 14:03:21 +03:00
Thaddeus Crews
cc6ee3e956 Merge pull request #98713 from dalexeev/core-fix-callable-get-bound-arguments
Core: Fix `Callable.get_bound_arguments{,_count}()` return incorrect data
2024-11-12 12:13:04 -06:00
Thaddeus Crews
f233d186ef Merge pull request #93885 from dalexeev/core-fix-freed-object-booleanization
Core: Fix `Freed Object` booleanization
2024-11-11 14:18:18 -06:00
Thaddeus Crews
30d87229ed Merge pull request #82845 from Hysterelius/master
Color: Expose OKHSL properties
2024-11-11 14:18:04 -06:00
Hysterelius
2126df2dfd Color: Expose OKHSL properties 2024-11-11 20:41:57 +01:00
Stanislav Labzyuk
824ddeea3f Fix comparison of callables 2024-11-11 17:15:52 +01:00
Danil Alexeev
e379cc76e5 Core: Fix Callable.get_bound_arguments{,_count}() return incorrect data 2024-11-04 22:41:56 +03:00
Thaddeus Crews
89a311205f Style: Apply clang-tidy fixes
• `modernize-use-default-member-init` and `readability-redundant-member-init`
• Minor adjustments to `.clang-tidy` to improve syntax & remove redundancies
2024-11-04 12:11:06 -06:00
Thaddeus Crews
363c0b5fec Merge pull request #47502 from KoBeWi/add_0
Always add decimal when converting float to string
2024-10-31 20:14:39 -05:00
A Thousand Ships
38f9769bc6 [Core] Improve error messages with vformat 2024-10-30 15:55:51 +01:00
Clay John
b4ba0f983a Merge pull request #98363 from dustdfg/rid_in_operator_fix
Allow using RID with `in` operator for Arrays and Dictionaries
2024-10-24 19:04:41 -07:00
kobewi
5c0f2414cd Always add decimal when printing float 2024-10-23 15:00:21 +02:00
Yevhen Babiichuk (DustDFG)
ee5d90853f Allow use RID with in operator for Arrays and Dictionaries
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-21 11:50:41 +03:00
A Thousand Ships
79f654ced5 [Core] Fix sorting of Dictionary keys
`StringName` keys were sorted as `StringName` which is unstable.
2024-10-18 08:47:05 +02:00
Aaron Franke
a7f6ec0e4c Add a sort method to Dictionary and HashMap 2024-10-02 14:26:33 -07:00
Rémi Verschelde
9ce149c7a3 Merge pull request #93299 from rune-scape/fix-ref
Fix RefCounted releasing early and not clearing reference
2024-10-02 15:00:47 +02:00
Aaron Franke
cc9f2b58a0 Bind Array get and set functions 2024-09-26 13:00:17 -07:00
Rémi Verschelde
9d5b59b2ae Merge pull request #94864 from rune-scape/add-missing-method-bind
Add missing CallableCustomMethodPointer for const methods
2024-09-26 12:45:27 +02:00
Thaddeus Crews
9f9ee0c813 SCons: Add unobtrusive type hints in SCons files 2024-09-25 09:34:35 -05:00
rune-scape
a84c480049 Add missing CallableCustomMethodPointer for const methods 2024-09-23 11:46:10 -07:00
Rémi Verschelde
1b19ecb360 Merge pull request #95166 from aaronp64/variant_op_err_return
Assign return value on `Variant` operator failure
2024-09-23 12:27:51 +02:00
rune-scape
cee0e6667a Refactor ref-counting code and fix ref counted releasing before aquiring 2024-09-21 11:36:58 -07:00
A Thousand Ships
203d3be200 [Core] Add way to check if a signal has any connections
Added to `Object` and `Signal`
2024-09-20 16:39:09 +02:00
Rémi Verschelde
6bf8a3e3f8 Merge pull request #95449 from SlashScreen/array_functions
Add callable support for `find` and `rfind` `Array` methods
2024-09-20 16:06:13 +02:00
aaronp64
714357e55c Assign return value on Variant operator failure
Variant operators for String formatting and "in" could result in errors, which would return from validated_evaluate without assigning r_ret.  This would cause scripts using the return value from these operators to get results from previously run code.  Updated to return the original String value in the String formatting case, and false for "in" when an error occurs.
2024-09-19 11:22:35 -04:00
Slashscreen
89491f4403 Add callable support for find and rfind Array methods 2024-09-13 00:01:53 -07:00
Thaddeus Crews
b3d7960df4 Core: Fix operator[] for typed dictionaries 2024-09-12 11:10:17 -05:00
Rémi Verschelde
60ffa9645a Merge pull request #96864 from KoBeWi/dictionerrory
Fix `Dictionary.merge()` type validation
2024-09-12 09:25:42 +02:00
Rémi Verschelde
f8fbb860f5 Merge pull request #95840 from raulsntos/char_metadata
Add metadata for `char16_t` and `char32_t`
2024-09-12 09:25:19 +02:00
Raul Santos
aaffab8afb Add metadata for char16_t and char32_t
We don't seem to expose any API that uses `char16_t` yet, but I added it anyway since we make the type info for it.

I didn't add anything for `wchar_t` because we are not making a type info so maybe we don't have a need for it yet, it could be added in the future.

To prevent breaking compatibility with the C# bindings, we ignore the `char32_t` metadata and still use `System.Int64`.
2024-09-12 02:15:55 +02:00
Hilderin
27d1fb63e1 Fix Unable to use ResourceLoader in C# after threaded load in GDScript #92798 2024-09-11 19:03:55 -04:00
kobewi
48d5b8a8b8 Fix Dictionary.merge() type validation 2024-09-11 17:22:49 +02:00
Rémi Verschelde
0b4ae20156 Merge pull request #78656 from Repiteo/typed-dictionary
Implement typed dictionaries
2024-09-06 22:38:13 +02:00
Rémi Verschelde
4629f7d040 Merge pull request #96496 from aXu-AP/lerp-transform
Add support for Transform2D/3D in `lerp()`
2024-09-05 17:44:11 +02:00