1
0
Fork 0
Commit Graph

848 Commits

Author SHA1 Message Date
Thaddeus Crews 686b56fae9
Merge pull request #106434 from Ivorforce/invert-hashfuncs
Reduce cross project includes by rewriting `HashMapHasherDefault`.
2025-10-06 09:06:37 -05:00
Thaddeus Crews dd6ffaabdc
Merge pull request #105793 from Ivorforce/gdtype-the-first
Core: Add initial architecture for first-class `Object` types. Optimize `is_class`
2025-10-06 09:06:36 -05:00
Lukas Tenbrink 9d44b68867 Remove `rw_lock.h` and `rb_map.h` includes from `object.h`. 2025-10-05 23:29:04 +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
Thaddeus Crews f6aa5ba23c
Merge pull request #97210 from AleksLitynski/object-snapshot-debugger
Add an ObjectDB Profiling Tool
2025-10-03 12:01:11 -05:00
Thaddeus Crews f44aa13a9f
Merge pull request #111090 from dsnopek/gdextension-compat-unexposed-classes-redo
GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once
2025-10-02 15:12:00 -05:00
Lukas Tenbrink ac85d24e64 Add `GDType` and `Object::_gdtype_ptr` for first-class `Object` typing.
The type is currently bare-bones, but will be expanded in future PRs.
2025-10-01 18:49:48 +02:00
Thaddeus Crews 93fd5c7ad0
Merge pull request #110907 from beicause/extension-deconstruct-before-object
Free script and extension instance before object deconstructing
2025-09-30 18:35:10 -05:00
David Snopek 2c707a911f GDExtension: Prevent breaking compatibility for unexposed classes that can only be created once 2025-09-30 14:48:06 -05:00
Thaddeus Crews fdf32d1b2a
Merge pull request #108577 from YYF233333/global_class_list
Simplify `ScriptServer::get_global_class_list`
2025-09-30 11:19:10 -05:00
Luo Zhihao 727066fe1f Free script and extension instance before object deconstructing
Co-Authored-By: Lukas Tenbrink <lukas.tenbrink@gmail.com>
2025-09-26 18:15:08 +08:00
A Thousand Ships bd65cfa876
Revert "Replace many uses of `is_class` with `derives_from`."
This reverts commit 78b743cf4a.
2025-09-25 13:48:53 +02:00
Lukas Tenbrink 8ef4a43ada Replace many uses of `is_class` with `derives_from`. 2025-09-23 19:59:00 +02:00
Thaddeus Crews a20ca7bbfe
Merge pull request #110459 from YeldhamDev/let_the_poor_ints_slide
Allow to use sliders for integers in `EditorSpinSlider`
2025-09-22 13:28:52 -05:00
Michael Alexsander f16ff829f0
Allow to use sliders for integers in `EditorSpinSlider` 2025-09-22 11:23:15 -03:00
Lukas Tenbrink 96619d46a1 Use `AncestralClass` to speed up Object::cast_to when possible. 2025-09-22 13:21:51 +02:00
Thaddeus Crews 149a4b4ca1
Merge pull request #107868 from lawnjelly/quick_ancestry4
Provide quick access to `Object` ancestry
2025-09-20 13:41:39 -05:00
Thaddeus Crews 3fa7c65914
Merge pull request #108504 from precup/optimize-duplicate
Avoid unnecessary copy in ClassDB::get_property_list
2025-09-18 12:42:27 -05:00
Thaddeus Crews 38d80598f5
Merge pull request #108121 from Repiteo/core/disabled-class-rework
Core: Handle disabled class detection in `ClassDB`
2025-09-17 11:34:16 -05:00
Yufeng Ying a50fc5acd8 Change ClassDB::get_class_list and related stuff. 2025-09-16 15:00:33 +08:00
aaronp64 cfde73ac17 Remove unused parameter in __constant_get_enum_name/__constant_get_bitfield_name
Removed unused String parameter in __constant_get_enum_name() and __constant_get_bitfield_name() to avoid creating/destroying extra Strings.
2025-09-02 13:13:12 -04:00
Clay John 6339f31a02
Merge pull request #109770 from RandomShaper/fix_signal_antifree
Fix regression in mechanism to hold objects while emitting
2025-09-01 19:42:13 -07:00
Pedro J. Estébanez a25846507d Fix regression in mechanism to hold objects while emitting 2025-08-28 18:23:27 +02:00
Thaddeus Crews 221731f30e
Merge pull request #110003 from WinnerWind/fix-zero-threadcount
Revert "Prevent crashing if `max_threads` is zero."
2025-08-27 13:39:44 -05:00
WinnerWind 976016b701 Revert "Prevent crashing if `max_threads` is zero."
This reverts commit a1788e09bf.
2025-08-27 09:02:34 +05:30
Thaddeus Crews 555e7ad073
Core: Handle disabled class detection in ClassDB 2025-08-26 09:31:14 -05:00
Yarvin b2e4c4f334 Fix typo - is_deprecated was being set twice, skipping is_experimental. 2025-08-19 13:54:41 +02:00
Thaddeus Crews f5152699bc
Merge pull request #108768 from WinnerWind/fix-zero-threadcount
FIX: Prevent crashing if `max_threads` is zero.
2025-08-18 08:29:04 -05:00
WinnerWind a1788e09bf Prevent crashing if `max_threads` is zero.
Adds a note in the docs that a thread count of 0 has the same effect as a thread count of -1.

Change language of WorkerThreadPool in ProjectSettings

Co-Authored-By: Tomasz Chabora <kobewi4e@gmail.com>
2025-08-17 20:12:41 +05:30
David Snopek 3eed53686b Don't use `alloca()` in `Object::emit_signalp()` to prevent stack overflow 2025-08-14 09:54:59 -05:00
Pāvels Nadtočajevs 9fd98410df
Automatically unregister loggers when script language is deinitialized. 2025-08-02 18:29:00 +03:00
clayjohn 2a8ac1c05b Allow processing low priority threads on calling thread in the WTP.
This fixes a recent regression. In theory, low priority tasks should always go to the queue and never be executed on the calling thread. However, when using NO_THREADS build, all tasks need to execute on the calling thread.
2025-07-30 23:15:38 -07:00
clayjohn 782b9e328c Ensure that threads only process one pump task.
This is necessary because we will always deadlock if a thread takes on multiple pump tasks since pump tasks never return.

This means when using separate threads for certain systems (like physics or rendering), we need to be sure that there are enough threads to have at least one per system (to ensure forward progress).
2025-07-29 07:15:34 -07:00
kobewi 188e313dd8 Fix Variant properties losing value upon script update 2025-07-12 20:29:19 +02:00
Mike Precup 047edb8933 Avoid unnecessary copy in get_property_list 2025-07-10 17:06:13 -07:00
Mikael Hermansson 3528e83ff3 Various fixes and style nitpicks 2025-07-09 14:27:48 +02:00
Aleksander Litynski 78f1543e35 Add an ObjectDB Profiling Tool
A new tab is added to the debugger that can help profile a game's memory usage.

Specifically, this lets you save a snapshot of all the objects in a running
game's ObjectDB to disk. It then lets you view the snapshot and diff two
snapshots against each other. This is meant to work similarly to Chrome's
heap snapshot tool or Unity's memory profiler.
2025-07-08 16:39:24 +02:00
lawnjelly 14a814586a Provide quick access to `Object` ancestry 2025-06-23 07:11:11 +01:00
Haoyu Qiu a7ab249a2a Make `PROPERTY_HINT_GROUP_ENABLE` hide properties by default 2025-06-16 20:03:49 +08:00
Rémi Verschelde 22702244f8
Merge pull request #105414 from KoBeWi/disable_uid_here
Add `@export_file_path` to export raw paths (no UID)
2025-06-13 01:30:24 +02:00
Lukas Tenbrink df7dab4946 Use idiomatic templating vargs in a few places to reduce code. 2025-06-08 12:24:07 +02:00
Pāvels Nadtočajevs b6461a3bd5
Add `WorkerThreadPool.get_caller_group_id` 2025-06-05 14:23:26 +03:00
Rémi Verschelde 8862d4c9b5
Merge pull request #107029 from mhilbrunner/expose-workerthreadpool-gettaskid
Expose `WorkerThreadPool.get_caller_task_id()`
2025-06-05 13:12:48 +02:00
Rémi Verschelde 0518bd5fee
Merge pull request #106683 from dalexeev/gds-remove-leftmost-rightmost-column
GDScript: Remove `leftmost_column` and `rightmost_column` fields
2025-06-05 13:12:02 +02:00
Thaddeus Crews 57bf364f36
Merge pull request #107058 from mihe/script-backtrace-deadlock
Fix various race conditions with capturing of script backtraces
2025-06-03 15:30:16 -05:00
Michael Alexsander 454e4f817c
Make build profile project detection also set build options 2025-06-03 11:11:33 -03:00
Max Hilbrunner 7ef1cf3c2e Expose WorkerThreadPool.get_caller_task_id() 2025-06-02 22:00:24 +02:00
Mikael Hermansson 6929823838 Fix various race conditions with capturing of script backtraces 2025-06-02 19:46:19 +02:00
Thaddeus Crews f619ca2519
Merge pull request #60143 from Rindbee/better-connection-dialog
Add a flag to make the connection automatically emit the source object.
2025-05-27 09:39:34 -05:00
Thaddeus Crews 91b3a26438
Merge pull request #106848 from Faless/mp/rpc_config_revert
Expose `get_rpc_config` and `get_node_rpc_config`
2025-05-27 09:39:32 -05:00