summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/SCsub1
-rw-r--r--core/config/SCsub1
-rw-r--r--core/crypto/SCsub1
-rw-r--r--core/debugger/SCsub1
-rw-r--r--core/error/SCsub1
-rw-r--r--core/extension/SCsub1
-rw-r--r--core/input/SCsub1
-rw-r--r--core/input/input_builders.py2
-rw-r--r--core/io/SCsub1
-rw-r--r--core/io/file_access_pack.cpp16
-rw-r--r--core/io/file_access_pack.h3
-rw-r--r--core/io/packet_peer.cpp2
-rw-r--r--core/io/resource_importer.cpp2
-rw-r--r--core/io/resource_importer.h2
-rw-r--r--core/math/SCsub1
-rw-r--r--core/math/convex_hull.cpp2
-rw-r--r--core/math/transform_2d.h13
-rw-r--r--core/object/SCsub1
-rw-r--r--core/object/callable_method_pointer.h137
-rw-r--r--core/object/undo_redo.cpp8
-rw-r--r--core/object/undo_redo.h1
-rw-r--r--core/os/SCsub1
-rw-r--r--core/string/SCsub1
-rw-r--r--core/templates/SCsub1
-rw-r--r--core/variant/SCsub1
-rw-r--r--core/variant/binder_common.h4
26 files changed, 101 insertions, 105 deletions
diff --git a/core/SCsub b/core/SCsub
index c8267ae960..8bda230b87 100644
--- a/core/SCsub
+++ b/core/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/config/SCsub b/core/config/SCsub
index bf70285490..1417a258c1 100644
--- a/core/config/SCsub
+++ b/core/config/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/crypto/SCsub b/core/crypto/SCsub
index 8cff3cf679..3cea6bfb47 100644
--- a/core/crypto/SCsub
+++ b/core/crypto/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/debugger/SCsub b/core/debugger/SCsub
index 19a6549225..ab81175894 100644
--- a/core/debugger/SCsub
+++ b/core/debugger/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/error/SCsub b/core/error/SCsub
index dfd6248a94..08089d31b0 100644
--- a/core/error/SCsub
+++ b/core/error/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/extension/SCsub b/core/extension/SCsub
index 6ab2d2b0a6..8688ca5b6e 100644
--- a/core/extension/SCsub
+++ b/core/extension/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/input/SCsub b/core/input/SCsub
index d8e6f33156..521f7702e4 100644
--- a/core/input/SCsub
+++ b/core/input/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/input/input_builders.py b/core/input/input_builders.py
index ae848f4e7c..3685e726b4 100644
--- a/core/input/input_builders.py
+++ b/core/input/input_builders.py
@@ -33,7 +33,7 @@ def make_default_controller_mappings(target, source, env):
guid = line_parts[0]
if guid in platform_mappings[current_platform]:
g.write(
- "// WARNING - DATABASE {} OVERWROTE PRIOR MAPPING: {} {}\n".format(
+ "// WARNING: DATABASE {} OVERWROTE PRIOR MAPPING: {} {}\n".format(
src_path, current_platform, platform_mappings[current_platform][guid]
)
)
diff --git a/core/io/SCsub b/core/io/SCsub
index 19a6549225..ab81175894 100644
--- a/core/io/SCsub
+++ b/core/io/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/io/file_access_pack.cpp b/core/io/file_access_pack.cpp
index eec27ce0aa..1340382eaa 100644
--- a/core/io/file_access_pack.cpp
+++ b/core/io/file_access_pack.cpp
@@ -102,6 +102,22 @@ void PackedData::add_pack_source(PackSource *p_source) {
}
}
+uint8_t *PackedData::get_file_hash(const String &p_path) {
+ PathMD5 pmd5(p_path.md5_buffer());
+ HashMap<PathMD5, PackedFile, PathMD5>::Iterator E = files.find(pmd5);
+ if (!E || E->value.offset == 0) {
+ return nullptr;
+ }
+
+ return E->value.md5;
+}
+
+void PackedData::clear() {
+ files.clear();
+ _free_packed_dirs(root);
+ root = memnew(PackedDir);
+}
+
PackedData *PackedData::singleton = nullptr;
PackedData::PackedData() {
diff --git a/core/io/file_access_pack.h b/core/io/file_access_pack.h
index 595a36bca4..57b7a5f87f 100644
--- a/core/io/file_access_pack.h
+++ b/core/io/file_access_pack.h
@@ -111,6 +111,7 @@ private:
public:
void add_pack_source(PackSource *p_source);
void add_path(const String &p_pkg_path, const String &p_path, uint64_t p_ofs, uint64_t p_size, const uint8_t *p_md5, PackSource *p_src, bool p_replace_files, bool p_encrypted = false); // for PackSource
+ uint8_t *get_file_hash(const String &p_path);
void set_disabled(bool p_disabled) { disabled = p_disabled; }
_FORCE_INLINE_ bool is_disabled() const { return disabled; }
@@ -118,6 +119,8 @@ public:
static PackedData *get_singleton() { return singleton; }
Error add_pack(const String &p_path, bool p_replace_files, uint64_t p_offset);
+ void clear();
+
_FORCE_INLINE_ Ref<FileAccess> try_open_path(const String &p_path);
_FORCE_INLINE_ bool has_path(const String &p_path);
diff --git a/core/io/packet_peer.cpp b/core/io/packet_peer.cpp
index 0329ace313..614f81c42a 100644
--- a/core/io/packet_peer.cpp
+++ b/core/io/packet_peer.cpp
@@ -299,7 +299,7 @@ Ref<StreamPeer> PacketPeerStream::get_stream_peer() const {
void PacketPeerStream::set_input_buffer_max_size(int p_max_size) {
ERR_FAIL_COND_MSG(p_max_size < 0, "Max size of input buffer size cannot be smaller than 0.");
- //warning may lose packets
+ // WARNING: May lose packets.
ERR_FAIL_COND_MSG(ring_buffer.data_left(), "Buffer in use, resizing would cause loss of data.");
ring_buffer.resize(nearest_shift(next_power_of_2(p_max_size + 4)) - 1);
input_buffer.resize(next_power_of_2(p_max_size + 4));
diff --git a/core/io/resource_importer.cpp b/core/io/resource_importer.cpp
index a572dd562e..1ae50d2d0d 100644
--- a/core/io/resource_importer.cpp
+++ b/core/io/resource_importer.cpp
@@ -507,7 +507,7 @@ bool ResourceFormatImporter::are_import_settings_valid(const String &p_path) con
for (int i = 0; i < importers.size(); i++) {
if (importers[i]->get_importer_name() == pat.importer) {
- if (!importers[i]->are_import_settings_valid(p_path)) { //importer thinks this is not valid
+ if (!importers[i]->are_import_settings_valid(p_path, pat.metadata)) { //importer thinks this is not valid
return false;
}
}
diff --git a/core/io/resource_importer.h b/core/io/resource_importer.h
index 6ea5d0972a..221f38494b 100644
--- a/core/io/resource_importer.h
+++ b/core/io/resource_importer.h
@@ -153,7 +153,7 @@ public:
virtual void import_threaded_end() {}
virtual Error import_group_file(const String &p_group_file, const HashMap<String, HashMap<StringName, Variant>> &p_source_file_options, const HashMap<String, String> &p_base_paths) { return ERR_UNAVAILABLE; }
- virtual bool are_import_settings_valid(const String &p_path) const { return true; }
+ virtual bool are_import_settings_valid(const String &p_path, const Dictionary &p_meta) const { return true; }
virtual String get_import_settings_string() const { return String(); }
};
diff --git a/core/math/SCsub b/core/math/SCsub
index c8fdac207e..6ea3ab6b12 100644
--- a/core/math/SCsub
+++ b/core/math/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/math/convex_hull.cpp b/core/math/convex_hull.cpp
index 80662c1b07..620a7541e4 100644
--- a/core/math/convex_hull.cpp
+++ b/core/math/convex_hull.cpp
@@ -204,7 +204,7 @@ public:
static Int128 mul(uint64_t a, uint64_t b);
Int128 operator-() const {
- return Int128((uint64_t) - (int64_t)low, ~high + (low == 0));
+ return Int128(uint64_t(-int64_t(low)), ~high + (low == 0));
}
Int128 operator+(const Int128 &b) const {
diff --git a/core/math/transform_2d.h b/core/math/transform_2d.h
index 476577508f..1ee7d3d84f 100644
--- a/core/math/transform_2d.h
+++ b/core/math/transform_2d.h
@@ -39,16 +39,19 @@
class String;
struct [[nodiscard]] Transform2D {
- // Warning #1: basis of Transform2D is stored differently from Basis. In terms of columns array, the basis matrix looks like "on paper":
+ // WARNING: The basis of Transform2D is stored differently from Basis.
+ // In terms of columns array, the basis matrix looks like "on paper":
// M = (columns[0][0] columns[1][0])
// (columns[0][1] columns[1][1])
- // This is such that the columns, which can be interpreted as basis vectors of the coordinate system "painted" on the object, can be accessed as columns[i].
- // Note that this is the opposite of the indices in mathematical texts, meaning: $M_{12}$ in a math book corresponds to columns[1][0] here.
+ // This is such that the columns, which can be interpreted as basis vectors
+ // of the coordinate system "painted" on the object, can be accessed as columns[i].
+ // NOTE: This is the opposite of the indices in mathematical texts,
+ // meaning: $M_{12}$ in a math book corresponds to columns[1][0] here.
// This requires additional care when working with explicit indices.
// See https://en.wikipedia.org/wiki/Row-_and_column-major_order for further reading.
- // Warning #2: 2D be aware that unlike 3D code, 2D code uses a left-handed coordinate system: Y-axis points down,
- // and angle is measure from +X to +Y in a clockwise-fashion.
+ // WARNING: Be aware that unlike 3D code, 2D code uses a left-handed coordinate system:
+ // Y-axis points down, and angle is measure from +X to +Y in a clockwise-fashion.
Vector2 columns[3];
diff --git a/core/object/SCsub b/core/object/SCsub
index 7c00bb719e..3d0d2c14dd 100644
--- a/core/object/SCsub
+++ b/core/object/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/object/callable_method_pointer.h b/core/object/callable_method_pointer.h
index 1b29e1778a..86c66593bd 100644
--- a/core/object/callable_method_pointer.h
+++ b/core/object/callable_method_pointer.h
@@ -37,6 +37,8 @@
#include "core/variant/binder_common.h"
#include "core/variant/callable.h"
+#include <type_traits>
+
class CallableCustomMethodPointerBase : public CallableCustom {
uint32_t *comp_ptr = nullptr;
uint32_t comp_size;
@@ -77,12 +79,13 @@ public:
virtual uint32_t hash() const;
};
-template <typename T, typename... P>
+template <typename T, typename R, typename... P>
class CallableCustomMethodPointer : public CallableCustomMethodPointerBase {
struct Data {
T *instance;
uint64_t object_id;
- void (T::*method)(P...);
+ R(T::*method)
+ (P...);
} data;
public:
@@ -100,10 +103,14 @@ public:
virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const {
ERR_FAIL_NULL_MSG(ObjectDB::get_instance(ObjectID(data.object_id)), "Invalid Object id '" + uitos(data.object_id) + "', can't call method.");
- call_with_variant_args(data.instance, data.method, p_arguments, p_argcount, r_call_error);
+ if constexpr (std::is_same<R, void>::value) {
+ call_with_variant_args(data.instance, data.method, p_arguments, p_argcount, r_call_error);
+ } else {
+ call_with_variant_args_ret(data.instance, data.method, p_arguments, p_argcount, r_return_value, r_call_error);
+ }
}
- CallableCustomMethodPointer(T *p_instance, void (T::*p_method)(P...)) {
+ CallableCustomMethodPointer(T *p_instance, R (T::*p_method)(P...)) {
memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
data.instance = p_instance;
data.object_id = p_instance->get_instance_id();
@@ -118,7 +125,7 @@ Callable create_custom_callable_function_pointer(T *p_instance,
const char *p_func_text,
#endif
void (T::*p_method)(P...)) {
- typedef CallableCustomMethodPointer<T, P...> CCMP; // Messes with memnew otherwise.
+ typedef CallableCustomMethodPointer<T, void, P...> CCMP; // Messes with memnew otherwise.
CCMP *ccmp = memnew(CCMP(p_instance, p_method));
#ifdef DEBUG_METHODS_ENABLED
ccmp->set_text(p_func_text + 1); // Try to get rid of the ampersand.
@@ -126,51 +133,13 @@ Callable create_custom_callable_function_pointer(T *p_instance,
return Callable(ccmp);
}
-// VERSION WITH RETURN
-
-template <typename T, typename R, typename... P>
-class CallableCustomMethodPointerRet : public CallableCustomMethodPointerBase {
- struct Data {
- T *instance;
- uint64_t object_id;
- R(T::*method)
- (P...);
- } data;
-
-public:
- virtual ObjectID get_object() const {
- if (ObjectDB::get_instance(ObjectID(data.object_id)) == nullptr) {
- return ObjectID();
- }
- return data.instance->get_instance_id();
- }
-
- virtual int get_argument_count(bool &r_is_valid) const {
- r_is_valid = true;
- return sizeof...(P);
- }
-
- virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const {
- ERR_FAIL_NULL_MSG(ObjectDB::get_instance(ObjectID(data.object_id)), "Invalid Object id '" + uitos(data.object_id) + "', can't call method.");
- call_with_variant_args_ret(data.instance, data.method, p_arguments, p_argcount, r_return_value, r_call_error);
- }
-
- CallableCustomMethodPointerRet(T *p_instance, R (T::*p_method)(P...)) {
- memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
- data.instance = p_instance;
- data.object_id = p_instance->get_instance_id();
- data.method = p_method;
- _setup((uint32_t *)&data, sizeof(Data));
- }
-};
-
template <typename T, typename R, typename... P>
Callable create_custom_callable_function_pointer(T *p_instance,
#ifdef DEBUG_METHODS_ENABLED
const char *p_func_text,
#endif
R (T::*p_method)(P...)) {
- typedef CallableCustomMethodPointerRet<T, R, P...> CCMP; // Messes with memnew otherwise.
+ typedef CallableCustomMethodPointer<T, R, P...> CCMP; // Messes with memnew otherwise.
CCMP *ccmp = memnew(CCMP(p_instance, p_method));
#ifdef DEBUG_METHODS_ENABLED
ccmp->set_text(p_func_text + 1); // Try to get rid of the ampersand.
@@ -178,10 +147,10 @@ Callable create_custom_callable_function_pointer(T *p_instance,
return Callable(ccmp);
}
-// CONST VERSION WITH RETURN
+// CONST VERSION
template <typename T, typename R, typename... P>
-class CallableCustomMethodPointerRetC : public CallableCustomMethodPointerBase {
+class CallableCustomMethodPointerC : public CallableCustomMethodPointerBase {
struct Data {
T *instance;
uint64_t object_id;
@@ -204,10 +173,14 @@ public:
virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const override {
ERR_FAIL_NULL_MSG(ObjectDB::get_instance(ObjectID(data.object_id)), "Invalid Object id '" + uitos(data.object_id) + "', can't call method.");
- call_with_variant_args_retc(data.instance, data.method, p_arguments, p_argcount, r_return_value, r_call_error);
+ if constexpr (std::is_same<R, void>::value) {
+ call_with_variant_argsc(data.instance, data.method, p_arguments, p_argcount, r_call_error);
+ } else {
+ call_with_variant_args_retc(data.instance, data.method, p_arguments, p_argcount, r_return_value, r_call_error);
+ }
}
- CallableCustomMethodPointerRetC(T *p_instance, R (T::*p_method)(P...) const) {
+ CallableCustomMethodPointerC(T *p_instance, R (T::*p_method)(P...) const) {
memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
data.instance = p_instance;
data.object_id = p_instance->get_instance_id();
@@ -216,13 +189,27 @@ public:
}
};
+template <typename T, typename... P>
+Callable create_custom_callable_function_pointer(T *p_instance,
+#ifdef DEBUG_METHODS_ENABLED
+ const char *p_func_text,
+#endif
+ void (T::*p_method)(P...) const) {
+ typedef CallableCustomMethodPointerC<T, void, P...> CCMP; // Messes with memnew otherwise.
+ CCMP *ccmp = memnew(CCMP(p_instance, p_method));
+#ifdef DEBUG_METHODS_ENABLED
+ ccmp->set_text(p_func_text + 1); // Try to get rid of the ampersand.
+#endif
+ return Callable(ccmp);
+}
+
template <typename T, typename R, typename... P>
Callable create_custom_callable_function_pointer(T *p_instance,
#ifdef DEBUG_METHODS_ENABLED
const char *p_func_text,
#endif
R (T::*p_method)(P...) const) {
- typedef CallableCustomMethodPointerRetC<T, R, P...> CCMP; // Messes with memnew otherwise.
+ typedef CallableCustomMethodPointerC<T, R, P...> CCMP; // Messes with memnew otherwise.
CCMP *ccmp = memnew(CCMP(p_instance, p_method));
#ifdef DEBUG_METHODS_ENABLED
ccmp->set_text(p_func_text + 1); // Try to get rid of the ampersand.
@@ -238,10 +225,11 @@ Callable create_custom_callable_function_pointer(T *p_instance,
// STATIC VERSIONS
-template <typename... P>
+template <typename R, typename... P>
class CallableCustomStaticMethodPointer : public CallableCustomMethodPointerBase {
struct Data {
- void (*method)(P...);
+ R(*method)
+ (P...);
} data;
public:
@@ -259,24 +247,27 @@ public:
}
virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const override {
- call_with_variant_args_static_ret(data.method, p_arguments, p_argcount, r_return_value, r_call_error);
- r_return_value = Variant();
+ if constexpr (std::is_same<R, void>::value) {
+ call_with_variant_args_static(data.method, p_arguments, p_argcount, r_call_error);
+ } else {
+ call_with_variant_args_static_ret(data.method, p_arguments, p_argcount, r_return_value, r_call_error);
+ }
}
- CallableCustomStaticMethodPointer(void (*p_method)(P...)) {
+ CallableCustomStaticMethodPointer(R (*p_method)(P...)) {
memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
data.method = p_method;
_setup((uint32_t *)&data, sizeof(Data));
}
};
-template <typename T, typename... P>
+template <typename... P>
Callable create_custom_callable_static_function_pointer(
#ifdef DEBUG_METHODS_ENABLED
const char *p_func_text,
#endif
void (*p_method)(P...)) {
- typedef CallableCustomStaticMethodPointer<P...> CCMP; // Messes with memnew otherwise.
+ typedef CallableCustomStaticMethodPointer<void, P...> CCMP; // Messes with memnew otherwise.
CCMP *ccmp = memnew(CCMP(p_method));
#ifdef DEBUG_METHODS_ENABLED
ccmp->set_text(p_func_text + 1); // Try to get rid of the ampersand.
@@ -285,44 +276,12 @@ Callable create_custom_callable_static_function_pointer(
}
template <typename R, typename... P>
-class CallableCustomStaticMethodPointerRet : public CallableCustomMethodPointerBase {
- struct Data {
- R(*method)
- (P...);
- } data;
-
-public:
- virtual bool is_valid() const override {
- return true;
- }
-
- virtual ObjectID get_object() const override {
- return ObjectID();
- }
-
- virtual int get_argument_count(bool &r_is_valid) const override {
- r_is_valid = true;
- return sizeof...(P);
- }
-
- virtual void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, Callable::CallError &r_call_error) const override {
- call_with_variant_args_static_ret(data.method, p_arguments, p_argcount, r_return_value, r_call_error);
- }
-
- CallableCustomStaticMethodPointerRet(R (*p_method)(P...)) {
- memset(&data, 0, sizeof(Data)); // Clear beforehand, may have padding bytes.
- data.method = p_method;
- _setup((uint32_t *)&data, sizeof(Data));
- }
-};
-
-template <typename R, typename... P>
Callable create_custom_callable_static_function_pointer(
#ifdef DEBUG_METHODS_ENABLED
const char *p_func_text,
#endif
R (*p_method)(P...)) {
- typedef CallableCustomStaticMethodPointerRet<R, P...> CCMP; // Messes with memnew otherwise.
+ typedef CallableCustomStaticMethodPointer<R, P...> CCMP; // Messes with memnew otherwise.
CCMP *ccmp = memnew(CCMP(p_method));
#ifdef DEBUG_METHODS_ENABLED
ccmp->set_text(p_func_text + 1); // Try to get rid of the ampersand.
diff --git a/core/object/undo_redo.cpp b/core/object/undo_redo.cpp
index 4d67cd930e..03537dbeb1 100644
--- a/core/object/undo_redo.cpp
+++ b/core/object/undo_redo.cpp
@@ -48,7 +48,7 @@ void UndoRedo::Operation::delete_reference() {
}
}
-void UndoRedo::_discard_redo() {
+void UndoRedo::discard_redo() {
if (current_action == actions.size() - 1) {
return;
}
@@ -89,7 +89,7 @@ void UndoRedo::create_action(const String &p_name, MergeMode p_mode, bool p_back
uint64_t ticks = OS::get_singleton()->get_ticks_msec();
if (action_level == 0) {
- _discard_redo();
+ discard_redo();
// Check if the merge operation is valid
if (p_mode != MERGE_DISABLE && actions.size() && actions[actions.size() - 1].name == p_name && actions[actions.size() - 1].backward_undo_ops == p_backward_undo_ops && actions[actions.size() - 1].last_tick + 800 > ticks) {
@@ -288,7 +288,7 @@ void UndoRedo::end_force_keep_in_merge_ends() {
}
void UndoRedo::_pop_history_tail() {
- _discard_redo();
+ discard_redo();
if (!actions.size()) {
return;
@@ -455,7 +455,7 @@ String UndoRedo::get_action_name(int p_id) {
void UndoRedo::clear_history(bool p_increase_version) {
ERR_FAIL_COND(action_level > 0);
- _discard_redo();
+ discard_redo();
while (actions.size()) {
_pop_history_tail();
diff --git a/core/object/undo_redo.h b/core/object/undo_redo.h
index 19d178635c..ded962670c 100644
--- a/core/object/undo_redo.h
+++ b/core/object/undo_redo.h
@@ -129,6 +129,7 @@ public:
int get_current_action();
String get_action_name(int p_id);
void clear_history(bool p_increase_version = true);
+ void discard_redo();
bool has_undo() const;
bool has_redo() const;
diff --git a/core/os/SCsub b/core/os/SCsub
index 19a6549225..ab81175894 100644
--- a/core/os/SCsub
+++ b/core/os/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/string/SCsub b/core/string/SCsub
index 3217166f18..b06e32eb88 100644
--- a/core/string/SCsub
+++ b/core/string/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/templates/SCsub b/core/templates/SCsub
index 8c4c843a33..7f806d5609 100644
--- a/core/templates/SCsub
+++ b/core/templates/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/variant/SCsub b/core/variant/SCsub
index 7f4c8b7788..8264503a22 100644
--- a/core/variant/SCsub
+++ b/core/variant/SCsub
@@ -1,4 +1,5 @@
#!/usr/bin/env python
+from misc.utility.scons_hints import *
Import("env")
diff --git a/core/variant/binder_common.h b/core/variant/binder_common.h
index fa49767d46..0aa49f6d68 100644
--- a/core/variant/binder_common.h
+++ b/core/variant/binder_common.h
@@ -466,7 +466,7 @@ void call_with_variant_argsc(T *p_instance, void (T::*p_method)(P...) const, con
return;
}
#endif
- call_with_variant_args_helper<T, P...>(p_instance, p_method, p_args, r_error, BuildIndexSequence<sizeof...(P)>{});
+ call_with_variant_argsc_helper<T, P...>(p_instance, p_method, p_args, r_error, BuildIndexSequence<sizeof...(P)>{});
}
template <typename T, typename... P>
@@ -830,7 +830,7 @@ void call_with_variant_args_static_ret(R (*p_method)(P...), const Variant **p_ar
}
template <typename... P>
-void call_with_variant_args_static_ret(void (*p_method)(P...), const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
+void call_with_variant_args_static(void (*p_method)(P...), const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
#ifdef DEBUG_METHODS_ENABLED
if ((size_t)p_argcount > sizeof...(P)) {
r_error.error = Callable::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS;