mirror of
https://github.com/godotengine/godot-visual-script.git
synced 2026-01-03 10:09:19 +03:00
Remove VARIANT_ARG* macros
* Very old macros from the time Godot was created. * Limited arguments to 5 (then later changed to 8) in many places. * They were replaced by C++11 Variadic Templates. * Renamed methods that take argument pointers to have a "p" suffix. This was used in some places and not in others, so made it standard. * Also added a dereference check for Variant*. Helped catch a couple of bugs.
This commit is contained in:
@@ -1621,7 +1621,7 @@ void VisualScriptEditor::_remove_output_port(int p_id, int p_port) {
|
||||
conn_map.get_key_list(&keys);
|
||||
for (const int &E : keys) {
|
||||
for (const Set<int>::Element *F = conn_map[E].front(); F; F = F->next()) {
|
||||
undo_redo->add_undo_method(script.ptr(), "data_connect", p_id, p_port, E, F);
|
||||
undo_redo->add_undo_method(script.ptr(), "data_connect", p_id, p_port, E, F->get());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1705,7 +1705,7 @@ Variant VisualScriptInstance::_call_internal(const StringName &p_method, void *p
|
||||
return return_value;
|
||||
}
|
||||
|
||||
Variant VisualScriptInstance::call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
Variant VisualScriptInstance::callp(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
r_error.error = Callable::CallError::CALL_OK; //ok by default
|
||||
|
||||
Map<StringName, Function>::Element *F = functions.find(p_method);
|
||||
@@ -1798,13 +1798,13 @@ void VisualScriptInstance::notification(int p_notification) {
|
||||
Variant what = p_notification;
|
||||
const Variant *whatp = &what;
|
||||
Callable::CallError ce;
|
||||
call(VisualScriptLanguage::singleton->notification, &whatp, 1, ce); // Do as call.
|
||||
callp(VisualScriptLanguage::singleton->notification, &whatp, 1, ce); // Do as call.
|
||||
}
|
||||
|
||||
String VisualScriptInstance::to_string(bool *r_valid) {
|
||||
if (has_method(CoreStringNames::get_singleton()->_to_string)) {
|
||||
Callable::CallError ce;
|
||||
Variant ret = call(CoreStringNames::get_singleton()->_to_string, nullptr, 0, ce);
|
||||
Variant ret = callp(CoreStringNames::get_singleton()->_to_string, nullptr, 0, ce);
|
||||
if (ce.error == Callable::CallError::CALL_OK) {
|
||||
if (ret.get_type() != Variant::STRING) {
|
||||
if (r_valid) {
|
||||
|
||||
@@ -410,7 +410,7 @@ public:
|
||||
|
||||
virtual void get_method_list(List<MethodInfo> *p_list) const;
|
||||
virtual bool has_method(const StringName &p_method) const;
|
||||
virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error);
|
||||
virtual Variant callp(const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error);
|
||||
virtual void notification(int p_notification);
|
||||
String to_string(bool *r_valid);
|
||||
|
||||
|
||||
@@ -1500,7 +1500,7 @@ public:
|
||||
argp.write[i] = &arr[i];
|
||||
}
|
||||
|
||||
base.call(call->method, (const Variant **)argp.ptr(), argp.size(), r_ret, ce);
|
||||
base.callp(call->method, (const Variant **)argp.ptr(), argp.size(), r_ret, ce);
|
||||
|
||||
if (ce.error != Callable::CallError::CALL_OK) {
|
||||
r_error_str = "On call to '" + String(call->method) + "':";
|
||||
|
||||
@@ -772,9 +772,9 @@ public:
|
||||
if (rpc_mode) {
|
||||
call_rpc(object, p_inputs, input_args);
|
||||
} else if (returns) {
|
||||
*p_outputs[0] = object->call(function, p_inputs, input_args, r_error);
|
||||
*p_outputs[0] = object->callp(function, p_inputs, input_args, r_error);
|
||||
} else {
|
||||
object->call(function, p_inputs, input_args, r_error);
|
||||
object->callp(function, p_inputs, input_args, r_error);
|
||||
}
|
||||
} break;
|
||||
case VisualScriptFunctionCall::CALL_MODE_NODE_PATH: {
|
||||
@@ -795,9 +795,9 @@ public:
|
||||
if (rpc_mode) {
|
||||
call_rpc(node, p_inputs, input_args);
|
||||
} else if (returns) {
|
||||
*p_outputs[0] = another->call(function, p_inputs, input_args, r_error);
|
||||
*p_outputs[0] = another->callp(function, p_inputs, input_args, r_error);
|
||||
} else {
|
||||
another->call(function, p_inputs, input_args, r_error);
|
||||
another->callp(function, p_inputs, input_args, r_error);
|
||||
}
|
||||
|
||||
} break;
|
||||
@@ -813,21 +813,21 @@ public:
|
||||
} else if (returns) {
|
||||
if (call_mode == VisualScriptFunctionCall::CALL_MODE_INSTANCE) {
|
||||
if (returns >= 2) {
|
||||
v.call(function, p_inputs + 1, input_args, *p_outputs[1], r_error);
|
||||
v.callp(function, p_inputs + 1, input_args, *p_outputs[1], r_error);
|
||||
} else if (returns == 1) {
|
||||
Variant ret;
|
||||
v.call(function, p_inputs + 1, input_args, ret, r_error);
|
||||
v.callp(function, p_inputs + 1, input_args, ret, r_error);
|
||||
} else {
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
r_error_str = "Invalid returns count for call_mode == CALL_MODE_INSTANCE";
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
v.call(function, p_inputs + 1, input_args, *p_outputs[0], r_error);
|
||||
v.callp(function, p_inputs + 1, input_args, *p_outputs[0], r_error);
|
||||
}
|
||||
} else {
|
||||
Variant ret;
|
||||
v.call(function, p_inputs + 1, input_args, ret, r_error);
|
||||
v.callp(function, p_inputs + 1, input_args, ret, r_error);
|
||||
}
|
||||
|
||||
if (call_mode == VisualScriptFunctionCall::CALL_MODE_INSTANCE) {
|
||||
@@ -846,9 +846,9 @@ public:
|
||||
if (rpc_mode) {
|
||||
call_rpc(object, p_inputs, input_args);
|
||||
} else if (returns) {
|
||||
*p_outputs[0] = object->call(function, p_inputs, input_args, r_error);
|
||||
*p_outputs[0] = object->callp(function, p_inputs, input_args, r_error);
|
||||
} else {
|
||||
object->call(function, p_inputs, input_args, r_error);
|
||||
object->callp(function, p_inputs, input_args, r_error);
|
||||
}
|
||||
} break;
|
||||
}
|
||||
@@ -2373,7 +2373,7 @@ public:
|
||||
virtual int step(const Variant **p_inputs, Variant **p_outputs, StartMode p_start_mode, Variant *p_working_mem, Callable::CallError &r_error, String &r_error_str) {
|
||||
Object *obj = instance->get_owner_ptr();
|
||||
|
||||
obj->emit_signal(name, p_inputs, argcount);
|
||||
obj->emit_signalp(name, p_inputs, argcount);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3174,7 +3174,7 @@ public:
|
||||
r_error.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
return 0;
|
||||
}
|
||||
*p_outputs[0] = subcall->call(VisualScriptLanguage::singleton->_subcall, p_inputs, input_args, r_error);
|
||||
*p_outputs[0] = subcall->callp(VisualScriptLanguage::singleton->_subcall, p_inputs, input_args, r_error);
|
||||
return 0;
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user