Rémi Verschelde
7e083e53c3
Merge pull request #81020 from AThousandShips/object_register_fix
...
Add check to ensure registered classes are declared
2023-08-29 12:45:33 +02:00
Rémi Verschelde
76d318dbd1
Merge pull request #75778 from KoBeWi/_vp
...
Expose `_validate_property()` for scripting
2023-08-29 12:41:27 +02:00
Rémi Verschelde
91c5273ec5
Merge pull request #75656 from YuriSizov/core-iconic-builtins
...
Add a script method to get its class icon
2023-08-29 12:41:03 +02:00
kobewi
67db4693eb
Expose _validate_property() for scripting
2023-08-28 15:18:48 +02:00
A Thousand Ships
c638238fae
Add check to ensure registered classes are declared
...
Checks that all classes registered to `ClassDB` have been properly
declared with `GDCLASS`
2023-08-28 12:16:49 +02:00
Yuri Sizov
2c77f07aaa
Add a script method to get its class icon
...
Co-authored-by: Danil Alexeev <danil@alexeev.xyz>
2023-08-24 13:05:41 +02:00
Ricardo Buring
acf9d4e4de
Fix GDExtension classes derived from abstract GDExtension classes always being registered as abstract
2023-08-22 09:53:03 +02:00
clayjohn
fcc6c6a697
Revert "Let user know about dead instances in deferred calls"
...
This reverts commit 3a6527d6d3
.
2023-07-31 10:45:20 +02:00
Pedro J. Estébanez
f34d580861
Revert "Implement parallel foreach() for easier multithreading"
...
This reverts commit e28868e30c
.
2023-07-27 13:41:27 +02:00
Yuri Sizov
a68137bf18
Merge pull request #79683 from Zylann/fix_gdext_get_property_list
...
GDExtension: Fix `_get_property_list` not working correctly in parent classes
2023-07-26 18:40:18 +02:00
Yuri Sizov
2c8cbcd1a0
Merge pull request #78987 from RandomShaper/err_bad_deferred_target
...
Let user know about dead instances in deferred calls
2023-07-26 18:39:38 +02:00
Yuri Sizov
92960b7a22
Merge pull request #78615 from RandomShaper/fix_doc_cache
...
Re-enable docs cache with fixes
2023-07-26 18:39:22 +02:00
Yuri Sizov
53ba9ccb19
Merge pull request #72346 from myaaaaaaaaa/disconnect-order
...
Avoid sorting CallableCustomMethodPointers by their actual address values
2023-07-26 18:39:08 +02:00
rune-scape
83b01708b2
Script editor: Show depended script errors
2023-07-24 15:49:39 +02:00
Gilles Roudière
b4d86cb42a
Add _get_bind_compatibility_methods to Object
...
Co-authored-by: RedworkDE <10944644+RedworkDE@users.noreply.github.com>
2023-07-20 12:55:00 +02:00
Marc Gilleron
e8731f4821
GDExtension: fix _get_property_list not working correctly in parent classes
2023-07-20 02:24:04 +01:00
Yuri Sizov
acd34153ba
Merge pull request #78612 from RandomShaper/mq_flush_ref
...
Refactor CallQueue flushing for clarity
2023-07-14 18:49:08 +02:00
Yuri Sizov
2a595c26d9
Merge pull request #72784 from myaaaaaaaaa/parallel-foreach
...
Implement parallel `foreach()` for easier multithreading
2023-07-14 18:48:49 +02:00
Angad Kambli
9c6c2f09e0
Check parameter validity in Object::set_script
...
Fixes #46120 .
2023-07-07 16:13:33 +02:00
Rémi Verschelde
862a2841c0
Merge pull request #78845 from RandomShaper/fix_wtp_zero_batch_lazy
...
Fix zero-sized WorkerThreadPool not processing group tasks
2023-07-07 08:27:43 +02:00
Pedro J. Estébanez
cac4d44cde
Re-enable docs cache with fixes
2023-07-05 10:44:58 +02:00
Pedro J. Estébanez
3a6527d6d3
Let user know about dead instances in deferred calls
2023-07-03 17:57:49 +02:00
Pedro J. Estébanez
30925fcfb0
Fix management of safe-for-nodes flag in ResourceLoader and WorkerThreadPool
2023-07-03 12:27:57 +02:00
Pedro J. Estébanez
28d0d56a69
Fix zero-sized WorkerThreadPool not processing group tasks
2023-06-29 19:44:42 +02:00
Valery Zhuk
818cee6184
add explicit default initialization for flag in undo redo operation
2023-06-28 21:57:47 +03:00
Pedro J. Estébanez
c85beb8106
Refactor CallQueue flushing for clarity
2023-06-23 13:27:34 +02:00
Ryan Roden-Corrent
731a13a1ba
Fix race in ScriptServer.
...
Fixes #76581 .
TSAN flagged this issue on starting the editor:
1. main calls register_core_types, which calls IP::create(), which calls Thread::start on the resolver thread
2. Thread::callback calls ScriptServer::thread_enter(), as "Scripts may need to attach a stack."
3. ScriptServer::thread_enter() accesses ScriptServer::_languages, which is still being initialized on the main thread by initialize_gdscript_module
This fixes the issue by skipping thread enter/exit notifications if languages have not finished initializing yet.
I'm assuming that notifying un-initialized languages of thread starts/stops would have been pointless anyways. If we need to somehow notify languages of threads before the languages initialize, we'll need a different solution.
```
Godot Engine v4.0.2.stable.custom_build.7a0977ce2 - https://godotengine.org
==================
WARNING: ThreadSanitizer: data race (pid=9426)
Write of size 4 at 0x55615b187cd0 by main thread:
#0 ScriptServer::register_language(ScriptLanguage*) /home/rcorre/src/godot/godot/core/object/script_language.cpp:177:28 (godot.linuxbsd.editor.x86_64.llvm.san+0x9e52ab9) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#1 initialize_gdscript_module(ModuleInitializationLevel) /home/rcorre/src/godot/godot/modules/gdscript/register_types.cpp:118:3 (godot.linuxbsd.editor.x86_64.llvm.san+0x36f9c6f) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#2 initialize_modules(ModuleInitializationLevel) /home/rcorre/src/godot/godot/modules/register_module_types.gen.cpp:93:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f50499) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#3 Main::setup2(unsigned long) /home/rcorre/src/godot/godot/main/main.cpp:1961:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f1d40d) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#4 Main::setup(char const*, int, char**, bool) /home/rcorre/src/godot/godot/main/main.cpp:1879:10 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f16370) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#5 main /home/rcorre/src/godot/godot/platform/linuxbsd/godot_linuxbsd.cpp:61:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x2e67e1f) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
Previous read of size 4 at 0x55615b187cd0 by thread T1:
#0 ScriptServer::thread_enter() /home/rcorre/src/godot/godot/core/object/script_language.cpp:244:22 (godot.linuxbsd.editor.x86_64.llvm.san+0x9e54aed) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#1 Thread::callback(unsigned long, Thread::Settings const&, void (*)(void*), void*) /home/rcorre/src/godot/godot/core/os/thread.cpp:61:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x9464ab0) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#2 void std::__invoke_impl<void, void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>(std::__invoke_other, void (*&&)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:61:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#3 std::__invoke_result<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>::type std::__invoke<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>(void (*&&)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long&&, Thread::Settings&&, void (*&&)(void*), void*&&) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/invoke.h:96:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#4 void std:🧵 :_Invoker<std::tuple<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>>::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul>(std::_Index_tuple<0ul, 1ul, 2ul, 3ul, 4ul>) /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:258:13 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#5 std:🧵 :_Invoker<std::tuple<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>>::operator()() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:265:11 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#6 std:🧵 :_State_impl<std:🧵 :_Invoker<std::tuple<void (*)(unsigned long, Thread::Settings const&, void (*)(void*), void*), unsigned long, Thread::Settings, void (*)(void*), void*>>>::_M_run() /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/12.2.1/../../../../include/c++/12.2.1/bits/std_thread.h:210:13 (godot.linuxbsd.editor.x86_64.llvm.san+0x9465283)
#7 execute_native_thread_routine /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:82:18 (libstdc++.so.6+0xd72c2) (BuildId: 6fe66a2d539a78c993bd2d377e00fad389220963)
Location is global 'ScriptServer::_language_count' of size 4 at 0x55615b187cd0 (godot.linuxbsd.editor.x86_64.llvm.san+0xbf46cd0)
Thread T1 (tid=9431, running) created by main thread at:
#0 pthread_create <null> (godot.linuxbsd.editor.x86_64.llvm.san+0x2de5776) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#1 __gthread_create /usr/src/debug/gcc/gcc-build/x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu/bits/gthr-default.h:663:35 (libstdc++.so.6+0xd73a9) (BuildId: 6fe66a2d539a78c993bd2d377e00fad389220963)
#2 std:🧵 :_M_start_thread(std::unique_ptr<std:🧵 :_State, std::default_delete<std:🧵 :_State>>, void (*)()) /usr/src/debug/gcc/gcc/libstdc++-v3/src/c++11/thread.cc:147:37 (libstdc++.so.6+0xd73a9)
#3 IP::IP() /home/rcorre/src/godot/godot/core/io/ip.cpp:347:19 (godot.linuxbsd.editor.x86_64.llvm.san+0x962cbcd) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#4 IPUnix::IPUnix() /home/rcorre/src/godot/godot/drivers/unix/ip_unix.cpp:261:9 (godot.linuxbsd.editor.x86_64.llvm.san+0x4aee599) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#5 IPUnix::_create_unix() /home/rcorre/src/godot/godot/drivers/unix/ip_unix.cpp:258:9 (godot.linuxbsd.editor.x86_64.llvm.san+0x4aee599)
#6 IP::create() /home/rcorre/src/godot/godot/core/io/ip.cpp:339:9 (godot.linuxbsd.editor.x86_64.llvm.san+0x962ca5e) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#7 register_core_types() /home/rcorre/src/godot/godot/core/register_core_types.cpp:279:7 (godot.linuxbsd.editor.x86_64.llvm.san+0x93e2333) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#8 Main::setup(char const*, int, char**, bool) /home/rcorre/src/godot/godot/main/main.cpp:690:2 (godot.linuxbsd.editor.x86_64.llvm.san+0x2f08a49) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
#9 main /home/rcorre/src/godot/godot/platform/linuxbsd/godot_linuxbsd.cpp:61:14 (godot.linuxbsd.editor.x86_64.llvm.san+0x2e67e1f) (BuildId: 780a9db7c37d88e78d5ee659c4fa1cd378abd048)
SUMMARY: ThreadSanitizer: data race /home/rcorre/src/godot/godot/core/object/script_language.cpp:177:28 in ScriptServer::register_language(ScriptLanguage*)
```
Co-authored-by: Pedro J. Estébanez <RandomShaper@users.noreply.github.com>
2023-06-21 09:52:10 -04:00
Yuri Sizov
329652b6fe
Merge pull request #78392 from Gallilus/master
...
Fix `Ref<>.is_valid()` for ScriptInstanceExtension
2023-06-20 21:19:20 +02:00
David Cambré
ceed30c442
Fix Ref<>.is_valid() for ScriptInstanceExtension
...
Only check the reference not the value.
2023-06-20 19:45:47 +02:00
myaaaaaaaaa
5cc961627d
Avoid sorting CallableCustomMethodPointers by their actual address values
2023-06-20 08:40:01 -04:00
Rémi Verschelde
c9c941e339
CI: Update static checks to black 23.3.0
...
And apply it to the codebase, removing empty lines at the start of blocks.
2023-06-19 23:33:02 +02:00
fuzzy@home
09fa22002a
fixes #76473 , where filling a large amount of tiles all at once crashes
...
the engine due to segmentation fault.
2023-06-18 22:32:23 +09:00
ajreckof
e9a2060b27
Fix wrong alphabetical order in autocompletion sorting.
...
Co-Authored-By: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2023-06-16 14:04:07 +02:00
Rémi Verschelde
8c5c29f2a3
Merge pull request #78061 from dsnopek/gdextension-class-not-exposed
...
Fix wrapping Object's in GDExtension that aren't exposed
2023-06-15 10:50:27 +02:00
ajreckof
81aa5ad999
add backward_undo_ops as property for action
2023-06-13 15:32:05 +02:00
Rémi Verschelde
37d1dfef9d
Merge pull request #78000 from RandomShaper/let_users_mess_up
...
Let user scripts disable thread safety checks
2023-06-10 12:12:13 +02:00
David Snopek
36f4b99638
Fix wrapping Object's in GDExtension that aren't exposed
2023-06-09 13:41:57 -05:00
Pedro J. Estébanez
2b001db76e
Let user scripts disable thread safety checks
2023-06-09 18:24:01 +02:00
myaaaaaaaaa
e28868e30c
Implement parallel foreach() for easier multithreading
2023-06-09 08:27:32 -04:00
Rémi Verschelde
577ab3c565
Merge pull request #75746 from ajreckof/order_autocomplete
...
Sort code autocompletion with rules
2023-06-08 18:14:31 +02:00
Rémi Verschelde
aa5dfff3f0
Merge pull request #77410 from dsnopek/object-pointer-pointer-encoding
...
Standardize Object ptrcall encoding on `Object **`
2023-06-07 13:31:49 +02:00
Yuri Sizov
97a6b40e4e
Merge pull request #70386 from sfrembling/70141
...
Add Human Readable Error Message for Object::set_meta
2023-05-29 17:24:25 +02:00
David Snopek
77733faede
Attempt to standardize Object ptrcall encoding on Object **
2023-05-25 21:46:22 -05:00
ajreckof
006e899bb3
sort code completions with rules
...
Fixups
Add levenshtein distance for comparisons, remove kind sort order, try to improve as many different use cases as possible
Trying again to improve code completion
Sort code autocompletion options by similarity based on input
To make it really brief, uses a combination `String.similiary`, the category system introduced in a previous PR, and some filtering to yield more predictable results, instead of scattering every completion option at seemingly random.
It also gives much higher priority to strings that contain the base in full, closer to the beginning or are perfect matches.
Also moves CodeCompletionOptionCompare to code_edit.cpp
Co-Authored-By: Micky <66727710+Mickeon@users.noreply.github.com>
Co-Authored-By: Eric M <41730826+EricEzaM@users.noreply.github.com>
2023-05-23 05:12:34 +02:00
Rémi Verschelde
80bf8fd186
Merge pull request #73511 from dsnopek/gdextension-object-name
...
Add GDExtension function to get Object class name
2023-05-22 14:02:59 +02:00
David Snopek
c6b0d4aae3
Add GDExtension function to get Object class name
2023-05-22 06:58:59 -05:00
Rémi Verschelde
9ad9820f5d
Merge pull request #77229 from RandomShaper/fix_mt_issues
...
Fix message queue issues
2023-05-19 14:30:10 +02:00
Pedro J. Estébanez
c450260e3e
Fix message queue issues
...
- Missing flush in resource loading.
- Wrong checks about message queue instance.
2023-05-19 13:11:34 +02:00
RedworkDE
9c9fd9ffbf
Improve error message when disconnecting callable from signal it was not connected to
2023-05-18 00:46:27 +02:00
Rémi Verschelde
26f96aec9d
Merge pull request #77143 from RandomShaper/fix_wtp_deadlocks
...
Avoid multiple possibilites of deadlock in resource loading
2023-05-17 15:59:18 +02:00