diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/SCsub | 2 | ||||
-rw-r--r-- | core/input/input.cpp | 1 | ||||
-rw-r--r-- | core/io/resource_loader.h | 4 | ||||
-rw-r--r-- | core/object/message_queue.h | 1 | ||||
-rw-r--r-- | core/variant/callable.cpp | 2 | ||||
-rw-r--r-- | core/variant/variant_call.cpp | 16 |
6 files changed, 21 insertions, 5 deletions
diff --git a/core/SCsub b/core/SCsub index 52f3506416..1bd4eae16c 100644 --- a/core/SCsub +++ b/core/SCsub @@ -194,7 +194,7 @@ def version_info_builder(target, source, env): ) -env.CommandNoCache("version_generated.gen.h", "#version.py", env.Run(version_info_builder)) +env.CommandNoCache("version_generated.gen.h", env.Value(env.version_info), env.Run(version_info_builder)) # Generate version hash diff --git a/core/input/input.cpp b/core/input/input.cpp index aa4b47934e..56f616fac4 100644 --- a/core/input/input.cpp +++ b/core/input/input.cpp @@ -1504,6 +1504,7 @@ void Input::parse_mapping(const String &p_mapping) { JoyAxis output_axis = _get_output_axis(output); if (output_button == JoyButton::INVALID && output_axis == JoyAxis::INVALID) { print_verbose(vformat("Unrecognized output string \"%s\" in mapping:\n%s", output, p_mapping)); + continue; } ERR_CONTINUE_MSG(output_button != JoyButton::INVALID && output_axis != JoyAxis::INVALID, vformat("Output string \"%s\" matched both button and axis in mapping:\n%s", output, p_mapping)); diff --git a/core/io/resource_loader.h b/core/io/resource_loader.h index 486f7bbf37..11abb4dc18 100644 --- a/core/io/resource_loader.h +++ b/core/io/resource_loader.h @@ -226,7 +226,7 @@ public: // Loaders can safely use this regardless which thread they are running on. static void notify_load_error(const String &p_err) { if (err_notify) { - callable_mp_static(err_notify).call_deferred(p_err); + MessageQueue::get_main_singleton()->push_callable(callable_mp_static(err_notify).bind(p_err)); } } static void set_error_notify_func(ResourceLoadErrorNotify p_err_notify) { @@ -239,7 +239,7 @@ public: if (Thread::get_caller_id() == Thread::get_main_id()) { dep_err_notify(p_path, p_dependency, p_type); } else { - callable_mp_static(dep_err_notify).call_deferred(p_path, p_dependency, p_type); + MessageQueue::get_main_singleton()->push_callable(callable_mp_static(dep_err_notify).bind(p_path, p_dependency, p_type)); } } } diff --git a/core/object/message_queue.h b/core/object/message_queue.h index 9f567e4dd0..673eb3845b 100644 --- a/core/object/message_queue.h +++ b/core/object/message_queue.h @@ -164,6 +164,7 @@ class MessageQueue : public CallQueue { public: _FORCE_INLINE_ static CallQueue *get_singleton() { return thread_singleton ? thread_singleton : main_singleton; } + _FORCE_INLINE_ static CallQueue *get_main_singleton() { return main_singleton; } static void set_thread_singleton_override(CallQueue *p_thread_singleton); diff --git a/core/variant/callable.cpp b/core/variant/callable.cpp index c6fbfd93a1..667aae879c 100644 --- a/core/variant/callable.cpp +++ b/core/variant/callable.cpp @@ -324,6 +324,7 @@ void Callable::operator=(const Callable &p_callable) { if (custom->ref_count.unref()) { memdelete(custom); + custom = nullptr; } } @@ -428,6 +429,7 @@ Callable::~Callable() { if (is_custom()) { if (custom->ref_count.unref()) { memdelete(custom); + custom = nullptr; } } } diff --git a/core/variant/variant_call.cpp b/core/variant/variant_call.cpp index 099653f938..0157232d5e 100644 --- a/core/variant/variant_call.cpp +++ b/core/variant/variant_call.cpp @@ -1631,7 +1631,7 @@ int Variant::get_enum_value(Variant::Type p_type, const StringName &p_enum_name, VARARG_CLASS1(m_type, m_name, m_method, m_arg_type) \ register_builtin_method<Method_##m_type##_##m_name>(sarray(m_arg_name), Vector<Variant>()); -static void _register_variant_builtin_methods() { +static void _register_variant_builtin_methods_string() { _VariantCall::constant_data = memnew_arr(_VariantCall::ConstantData, Variant::VARIANT_MAX); _VariantCall::enum_data = memnew_arr(_VariantCall::EnumData, Variant::VARIANT_MAX); builtin_method_info = memnew_arr(BuiltinMethodMap, Variant::VARIANT_MAX); @@ -1761,7 +1761,9 @@ static void _register_variant_builtin_methods() { /* StringName */ bind_method(StringName, hash, sarray(), varray()); +} +static void _register_variant_builtin_methods_math() { /* Vector2 */ bind_method(Vector2, angle, sarray(), varray()); @@ -2059,7 +2061,9 @@ static void _register_variant_builtin_methods() { bind_static_method(Color, from_ok_hsl, sarray("h", "s", "l", "alpha"), varray(1.0)); bind_static_method(Color, from_rgbe9995, sarray("rgbe"), varray()); +} +static void _register_variant_builtin_methods_misc() { /* RID */ bind_method(RID, is_valid, sarray(), varray()); @@ -2261,7 +2265,9 @@ static void _register_variant_builtin_methods() { bind_method(Dictionary, get_or_add, sarray("key", "default"), varray(Variant())); bind_method(Dictionary, make_read_only, sarray(), varray()); bind_method(Dictionary, is_read_only, sarray(), varray()); +} +static void _register_variant_builtin_methods_array() { /* Array */ bind_method(Array, size, sarray(), varray()); @@ -2591,7 +2597,9 @@ static void _register_variant_builtin_methods() { bind_method(PackedVector4Array, find, sarray("value", "from"), varray(0)); bind_method(PackedVector4Array, rfind, sarray("value", "from"), varray(-1)); bind_method(PackedVector4Array, count, sarray("value"), varray()); +} +static void _register_variant_builtin_constants() { /* Register constants */ int ncc = Color::get_named_color_count(); @@ -2749,7 +2757,11 @@ static void _register_variant_builtin_methods() { } void Variant::_register_variant_methods() { - _register_variant_builtin_methods(); //needs to be out due to namespace + _register_variant_builtin_methods_string(); + _register_variant_builtin_methods_math(); + _register_variant_builtin_methods_misc(); + _register_variant_builtin_methods_array(); + _register_variant_builtin_constants(); } void Variant::_unregister_variant_methods() { |