summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/SCsub2
-rw-r--r--core/input/input.cpp1
-rw-r--r--core/io/resource_loader.h4
-rw-r--r--core/object/message_queue.h1
-rw-r--r--core/variant/callable.cpp2
-rw-r--r--core/variant/variant_call.cpp16
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() {