Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind(). Changed all uses of it to Callable.bind()
This commit is contained in:
@@ -441,7 +441,7 @@ Array Array::filter(const Callable &p_callable) const {
|
||||
|
||||
Variant result;
|
||||
Callable::CallError ce;
|
||||
p_callable.call(argptrs, 1, result, ce);
|
||||
p_callable.callp(argptrs, 1, result, ce);
|
||||
if (ce.error != Callable::CallError::CALL_OK) {
|
||||
ERR_FAIL_V_MSG(Array(), "Error calling method from 'filter': " + Variant::get_callable_error_text(p_callable, argptrs, 1, ce));
|
||||
}
|
||||
@@ -467,7 +467,7 @@ Array Array::map(const Callable &p_callable) const {
|
||||
|
||||
Variant result;
|
||||
Callable::CallError ce;
|
||||
p_callable.call(argptrs, 1, result, ce);
|
||||
p_callable.callp(argptrs, 1, result, ce);
|
||||
if (ce.error != Callable::CallError::CALL_OK) {
|
||||
ERR_FAIL_V_MSG(Array(), "Error calling method from 'map': " + Variant::get_callable_error_text(p_callable, argptrs, 1, ce));
|
||||
}
|
||||
@@ -493,7 +493,7 @@ Variant Array::reduce(const Callable &p_callable, const Variant &p_accum) const
|
||||
|
||||
Variant result;
|
||||
Callable::CallError ce;
|
||||
p_callable.call(argptrs, 2, result, ce);
|
||||
p_callable.callp(argptrs, 2, result, ce);
|
||||
if (ce.error != Callable::CallError::CALL_OK) {
|
||||
ERR_FAIL_V_MSG(Variant(), "Error calling method from 'reduce': " + Variant::get_callable_error_text(p_callable, argptrs, 2, ce));
|
||||
}
|
||||
@@ -510,7 +510,7 @@ bool Array::any(const Callable &p_callable) const {
|
||||
|
||||
Variant result;
|
||||
Callable::CallError ce;
|
||||
p_callable.call(argptrs, 1, result, ce);
|
||||
p_callable.callp(argptrs, 1, result, ce);
|
||||
if (ce.error != Callable::CallError::CALL_OK) {
|
||||
ERR_FAIL_V_MSG(false, "Error calling method from 'any': " + Variant::get_callable_error_text(p_callable, argptrs, 1, ce));
|
||||
}
|
||||
@@ -532,7 +532,7 @@ bool Array::all(const Callable &p_callable) const {
|
||||
|
||||
Variant result;
|
||||
Callable::CallError ce;
|
||||
p_callable.call(argptrs, 1, result, ce);
|
||||
p_callable.callp(argptrs, 1, result, ce);
|
||||
if (ce.error != Callable::CallError::CALL_OK) {
|
||||
ERR_FAIL_V_MSG(false, "Error calling method from 'all': " + Variant::get_callable_error_text(p_callable, argptrs, 1, ce));
|
||||
}
|
||||
|
||||
@@ -36,11 +36,11 @@
|
||||
#include "core/object/ref_counted.h"
|
||||
#include "core/object/script_language.h"
|
||||
|
||||
void Callable::call_deferred(const Variant **p_arguments, int p_argcount) const {
|
||||
void Callable::call_deferredp(const Variant **p_arguments, int p_argcount) const {
|
||||
MessageQueue::get_singleton()->push_callablep(*this, p_arguments, p_argcount);
|
||||
}
|
||||
|
||||
void Callable::call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, CallError &r_call_error) const {
|
||||
void Callable::callp(const Variant **p_arguments, int p_argcount, Variant &r_return_value, CallError &r_call_error) const {
|
||||
if (is_null()) {
|
||||
r_call_error.error = CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_call_error.argument = 0;
|
||||
@@ -63,7 +63,7 @@ void Callable::call(const Variant **p_arguments, int p_argcount, Variant &r_retu
|
||||
}
|
||||
}
|
||||
|
||||
Error Callable::rpc(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const {
|
||||
Error Callable::rpcp(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const {
|
||||
if (is_null()) {
|
||||
r_call_error.error = CallError::CALL_ERROR_INSTANCE_IS_NULL;
|
||||
r_call_error.argument = 0;
|
||||
@@ -79,7 +79,7 @@ Error Callable::rpc(int p_id, const Variant **p_arguments, int p_argcount, CallE
|
||||
}
|
||||
}
|
||||
|
||||
Callable Callable::bind(const Variant **p_arguments, int p_argcount) const {
|
||||
Callable Callable::bindp(const Variant **p_arguments, int p_argcount) const {
|
||||
Vector<Variant> args;
|
||||
args.resize(p_argcount);
|
||||
for (int i = 0; i < p_argcount; i++) {
|
||||
@@ -390,7 +390,7 @@ Error Signal::connect(const Callable &p_callable, uint32_t p_flags) {
|
||||
Object *object = get_object();
|
||||
ERR_FAIL_COND_V(!object, ERR_UNCONFIGURED);
|
||||
|
||||
return object->connect(name, p_callable, varray(), p_flags);
|
||||
return object->connect(name, p_callable, p_flags);
|
||||
}
|
||||
|
||||
void Signal::disconnect(const Callable &p_callable) {
|
||||
@@ -438,7 +438,7 @@ bool CallableComparator::operator()(const Variant &p_l, const Variant &p_r) cons
|
||||
const Variant *args[2] = { &p_l, &p_r };
|
||||
Callable::CallError err;
|
||||
Variant res;
|
||||
func.call(args, 2, res, err);
|
||||
func.callp(args, 2, res, err);
|
||||
ERR_FAIL_COND_V_MSG(err.error != Callable::CallError::CALL_OK, false,
|
||||
"Error calling compare method: " + Variant::get_callable_error_text(func, args, 2, err));
|
||||
return res;
|
||||
|
||||
@@ -45,6 +45,7 @@ class CallableCustom;
|
||||
// but can be optimized or customized.
|
||||
|
||||
// Enforce 16 bytes with `alignas` to avoid arch-specific alignment issues on x86 vs armv7.
|
||||
|
||||
class Callable {
|
||||
alignas(8) StringName method;
|
||||
union {
|
||||
@@ -68,10 +69,10 @@ public:
|
||||
int expected = 0;
|
||||
};
|
||||
|
||||
void call(const Variant **p_arguments, int p_argcount, Variant &r_return_value, CallError &r_call_error) const;
|
||||
void call_deferred(const Variant **p_arguments, int p_argcount) const;
|
||||
void callp(const Variant **p_arguments, int p_argcount, Variant &r_return_value, CallError &r_call_error) const;
|
||||
void call_deferredp(const Variant **p_arguments, int p_argcount) const;
|
||||
|
||||
Error rpc(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const;
|
||||
Error rpcp(int p_id, const Variant **p_arguments, int p_argcount, CallError &r_call_error) const;
|
||||
|
||||
_FORCE_INLINE_ bool is_null() const {
|
||||
return method == StringName() && object == 0;
|
||||
@@ -84,7 +85,10 @@ public:
|
||||
}
|
||||
bool is_valid() const;
|
||||
|
||||
Callable bind(const Variant **p_arguments, int p_argcount) const;
|
||||
template <typename... VarArgs>
|
||||
Callable bind(VarArgs... p_args);
|
||||
|
||||
Callable bindp(const Variant **p_arguments, int p_argcount) const;
|
||||
Callable unbind(int p_argcount) const;
|
||||
|
||||
Object *get_object() const;
|
||||
|
||||
@@ -96,7 +96,7 @@ void CallableCustomBind::call(const Variant **p_arguments, int p_argcount, Varia
|
||||
args[i + p_argcount] = (const Variant *)&binds[i];
|
||||
}
|
||||
|
||||
callable.call(args, p_argcount + binds.size(), r_return_value, r_call_error);
|
||||
callable.callp(args, p_argcount + binds.size(), r_return_value, r_call_error);
|
||||
}
|
||||
|
||||
CallableCustomBind::CallableCustomBind(const Callable &p_callable, const Vector<Variant> &p_binds) {
|
||||
@@ -171,7 +171,7 @@ void CallableCustomUnbind::call(const Variant **p_arguments, int p_argcount, Var
|
||||
r_call_error.expected = argcount;
|
||||
return;
|
||||
}
|
||||
callable.call(p_arguments, p_argcount - argcount, r_return_value, r_call_error);
|
||||
callable.callp(p_arguments, p_argcount - argcount, r_return_value, r_call_error);
|
||||
}
|
||||
|
||||
CallableCustomUnbind::CallableCustomUnbind(const Callable &p_callable, int p_argcount) {
|
||||
@@ -181,28 +181,3 @@ CallableCustomUnbind::CallableCustomUnbind(const Callable &p_callable, int p_arg
|
||||
|
||||
CallableCustomUnbind::~CallableCustomUnbind() {
|
||||
}
|
||||
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1) {
|
||||
const Variant *args[1] = { &p_arg1 };
|
||||
return p_callable.bind(args, 1);
|
||||
}
|
||||
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2) {
|
||||
const Variant *args[2] = { &p_arg1, &p_arg2 };
|
||||
return p_callable.bind(args, 2);
|
||||
}
|
||||
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3) {
|
||||
const Variant *args[3] = { &p_arg1, &p_arg2, &p_arg3 };
|
||||
return p_callable.bind(args, 3);
|
||||
}
|
||||
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3, const Variant &p_arg4) {
|
||||
const Variant *args[4] = { &p_arg1, &p_arg2, &p_arg3, &p_arg4 };
|
||||
return p_callable.bind(args, 4);
|
||||
}
|
||||
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3, const Variant &p_arg4, const Variant &p_arg5) {
|
||||
const Variant *args[5] = { &p_arg1, &p_arg2, &p_arg3, &p_arg4, &p_arg5 };
|
||||
return p_callable.bind(args, 5);
|
||||
}
|
||||
|
||||
@@ -84,10 +84,4 @@ public:
|
||||
virtual ~CallableCustomUnbind();
|
||||
};
|
||||
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1);
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2);
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3);
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3, const Variant &p_arg4);
|
||||
Callable callable_bind(const Callable &p_callable, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3, const Variant &p_arg4, const Variant &p_arg5);
|
||||
|
||||
#endif // CALLABLE_BIND_H
|
||||
|
||||
@@ -784,4 +784,14 @@ const Variant::ObjData &Variant::_get_obj() const {
|
||||
|
||||
String vformat(const String &p_text, const Variant &p1 = Variant(), const Variant &p2 = Variant(), const Variant &p3 = Variant(), const Variant &p4 = Variant(), const Variant &p5 = Variant());
|
||||
|
||||
template <typename... VarArgs>
|
||||
Callable Callable::bind(VarArgs... p_args) {
|
||||
Variant args[sizeof...(p_args) + 1] = { p_args..., Variant() }; // +1 makes sure zero sized arrays are also supported.
|
||||
const Variant *argptrs[sizeof...(p_args) + 1];
|
||||
for (uint32_t i = 0; i < sizeof...(p_args); i++) {
|
||||
argptrs[i] = &args[i];
|
||||
}
|
||||
return bindp(sizeof...(p_args) == 0 ? nullptr : (const Variant **)argptrs, sizeof...(p_args));
|
||||
}
|
||||
|
||||
#endif // VARIANT_H
|
||||
|
||||
@@ -895,17 +895,17 @@ struct _VariantCall {
|
||||
|
||||
static void func_Callable_call(Variant *v, const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
|
||||
Callable *callable = VariantGetInternalPtr<Callable>::get_ptr(v);
|
||||
callable->call(p_args, p_argcount, r_ret, r_error);
|
||||
callable->callp(p_args, p_argcount, r_ret, r_error);
|
||||
}
|
||||
|
||||
static void func_Callable_call_deferred(Variant *v, const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
|
||||
Callable *callable = VariantGetInternalPtr<Callable>::get_ptr(v);
|
||||
callable->call_deferred(p_args, p_argcount);
|
||||
callable->call_deferredp(p_args, p_argcount);
|
||||
}
|
||||
|
||||
static void func_Callable_rpc(Variant *v, const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
|
||||
Callable *callable = VariantGetInternalPtr<Callable>::get_ptr(v);
|
||||
callable->rpc(0, p_args, p_argcount, r_error);
|
||||
callable->rpcp(0, p_args, p_argcount, r_error);
|
||||
}
|
||||
|
||||
static void func_Callable_rpc_id(Variant *v, const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
|
||||
@@ -920,13 +920,13 @@ struct _VariantCall {
|
||||
r_error.expected = Variant::INT;
|
||||
} else {
|
||||
Callable *callable = VariantGetInternalPtr<Callable>::get_ptr(v);
|
||||
callable->rpc(*p_args[0], &p_args[1], p_argcount - 1, r_error);
|
||||
callable->rpcp(*p_args[0], &p_args[1], p_argcount - 1, r_error);
|
||||
}
|
||||
}
|
||||
|
||||
static void func_Callable_bind(Variant *v, const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
|
||||
Callable *callable = VariantGetInternalPtr<Callable>::get_ptr(v);
|
||||
r_ret = callable->bind(p_args, p_argcount);
|
||||
r_ret = callable->bindp(p_args, p_argcount);
|
||||
}
|
||||
|
||||
static void func_Signal_emit(Variant *v, const Variant **p_args, int p_argcount, Variant &r_ret, Callable::CallError &r_error) {
|
||||
|
||||
Reference in New Issue
Block a user