mirror of
https://github.com/godotengine/godot.git
synced 2025-10-25 18:54:43 +00:00
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
This commit is contained in:
parent
710b34b702
commit
0be6d925dc
1552 changed files with 1 additions and 33876 deletions
|
|
@ -35,12 +35,10 @@
|
|||
#include "gdscript_functions.h"
|
||||
|
||||
Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_instance, GDScript *p_script, Variant &self, Variant &static_ref, Variant *p_stack, String &r_error) const {
|
||||
|
||||
int address = p_address & ADDR_MASK;
|
||||
|
||||
//sequential table (jump table generated by compiler)
|
||||
switch ((p_address & ADDR_TYPE_MASK) >> ADDR_BITS) {
|
||||
|
||||
case ADDR_TYPE_SELF: {
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (unlikely(!p_instance)) {
|
||||
|
|
@ -51,7 +49,6 @@ Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_insta
|
|||
return &self;
|
||||
} break;
|
||||
case ADDR_TYPE_CLASS: {
|
||||
|
||||
return &static_ref;
|
||||
} break;
|
||||
case ADDR_TYPE_MEMBER: {
|
||||
|
|
@ -65,7 +62,6 @@ Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_insta
|
|||
return &p_instance->members.write[address];
|
||||
} break;
|
||||
case ADDR_TYPE_CLASS_CONSTANT: {
|
||||
|
||||
//todo change to index!
|
||||
GDScript *s = p_script;
|
||||
#ifdef DEBUG_ENABLED
|
||||
|
|
@ -76,7 +72,6 @@ Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_insta
|
|||
while (s) {
|
||||
GDScript *o = s;
|
||||
while (o) {
|
||||
|
||||
Map<StringName, Variant>::Element *E = o->constants.find(*sn);
|
||||
if (E) {
|
||||
return &E->get();
|
||||
|
|
@ -133,7 +128,6 @@ Variant *GDScriptFunction::_get_variant(int p_address, GDScriptInstance *p_insta
|
|||
|
||||
#ifdef DEBUG_ENABLED
|
||||
static String _get_var_type(const Variant *p_var) {
|
||||
|
||||
String basestr;
|
||||
|
||||
if (p_var->get_type() == Variant::OBJECT) {
|
||||
|
|
@ -161,7 +155,6 @@ static String _get_var_type(const Variant *p_var) {
|
|||
#endif // DEBUG_ENABLED
|
||||
|
||||
String GDScriptFunction::_get_call_error(const Callable::CallError &p_err, const String &p_where, const Variant **argptrs) const {
|
||||
|
||||
String err_text;
|
||||
|
||||
if (p_err.error == Callable::CallError::CALL_ERROR_INVALID_ARGUMENT) {
|
||||
|
|
@ -259,11 +252,9 @@ String GDScriptFunction::_get_call_error(const Callable::CallError &p_err, const
|
|||
#endif
|
||||
|
||||
Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_args, int p_argcount, Callable::CallError &r_err, CallState *p_state) {
|
||||
|
||||
OPCODES_TABLE;
|
||||
|
||||
if (!_code_ptr) {
|
||||
|
||||
return Variant();
|
||||
}
|
||||
|
||||
|
|
@ -300,22 +291,17 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
self = p_state->self;
|
||||
|
||||
} else {
|
||||
|
||||
if (p_argcount != _argument_count) {
|
||||
|
||||
if (p_argcount > _argument_count) {
|
||||
|
||||
r_err.error = Callable::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS;
|
||||
r_err.argument = _argument_count;
|
||||
|
||||
return Variant();
|
||||
} else if (p_argcount < _argument_count - _default_arg_count) {
|
||||
|
||||
r_err.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
|
||||
r_err.argument = _argument_count - _default_arg_count;
|
||||
return Variant();
|
||||
} else {
|
||||
|
||||
defarg = _argument_count - p_argcount;
|
||||
}
|
||||
}
|
||||
|
|
@ -323,11 +309,9 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
alloca_size = sizeof(Variant *) * _call_size + sizeof(Variant) * _stack_size;
|
||||
|
||||
if (alloca_size) {
|
||||
|
||||
uint8_t *aptr = (uint8_t *)alloca(alloca_size);
|
||||
|
||||
if (_stack_size) {
|
||||
|
||||
stack = (Variant *)aptr;
|
||||
for (int i = 0; i < p_argcount; i++) {
|
||||
if (!argument_types[i].has_type) {
|
||||
|
|
@ -356,10 +340,8 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
if (_call_size) {
|
||||
|
||||
call_args = (Variant **)&aptr[sizeof(Variant) * _stack_size];
|
||||
} else {
|
||||
|
||||
call_args = nullptr;
|
||||
}
|
||||
|
||||
|
|
@ -370,7 +352,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
if (p_instance) {
|
||||
if (p_instance->base_ref && static_cast<Reference *>(p_instance->owner)->is_referenced()) {
|
||||
|
||||
self = REF(static_cast<Reference *>(p_instance->owner));
|
||||
} else {
|
||||
self = p_instance->owner;
|
||||
|
|
@ -437,9 +418,7 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
#endif
|
||||
|
||||
OPCODE_SWITCH(_code_ptr[ip]) {
|
||||
|
||||
OPCODE(OPCODE_OPERATOR) {
|
||||
|
||||
CHECK_SPACE(5);
|
||||
|
||||
bool valid;
|
||||
|
|
@ -459,7 +438,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
#endif
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (!valid) {
|
||||
|
||||
if (ret.get_type() == Variant::STRING) {
|
||||
//return a string when invalid with the error
|
||||
err_text = ret;
|
||||
|
|
@ -476,7 +454,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_EXTENDS_TEST) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
|
||||
GET_VARIANT_PTR(a, 1);
|
||||
|
|
@ -485,7 +462,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (b->get_type() != Variant::OBJECT || b->operator Object *() == nullptr) {
|
||||
|
||||
err_text = "Right operand of 'is' is not a class.";
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
|
@ -493,7 +469,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
bool extends_ok = false;
|
||||
if (a->get_type() == Variant::OBJECT && a->operator Object *() != nullptr) {
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
bool was_freed;
|
||||
Object *obj_A = a->get_validated_object_with_check(was_freed);
|
||||
|
|
@ -522,11 +497,9 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
//in other situation, this shoul return false.
|
||||
|
||||
if (obj_A->get_script_instance() && obj_A->get_script_instance()->get_language() == GDScriptLanguage::get_singleton()) {
|
||||
|
||||
GDScript *cmp = static_cast<GDScript *>(obj_A->get_script_instance()->get_script().ptr());
|
||||
//bool found=false;
|
||||
while (cmp) {
|
||||
|
||||
if (cmp == scr_B) {
|
||||
//inherits from script, all ok
|
||||
extends_ok = true;
|
||||
|
|
@ -538,12 +511,10 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
} else {
|
||||
|
||||
GDScriptNativeClass *nc = Object::cast_to<GDScriptNativeClass>(obj_B);
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (!nc) {
|
||||
|
||||
err_text = "Right operand of 'is' is not a class (type: '" + obj_B->get_class() + "').";
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
|
@ -558,7 +529,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_IS_BUILTIN) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
|
||||
GET_VARIANT_PTR(value, 1);
|
||||
|
|
@ -573,7 +543,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_SET) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
|
||||
GET_VARIANT_PTR(dst, 1);
|
||||
|
|
@ -600,7 +569,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_GET) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
|
||||
GET_VARIANT_PTR(src, 1);
|
||||
|
|
@ -633,7 +601,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_SET_NAMED) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
|
||||
GET_VARIANT_PTR(dst, 1);
|
||||
|
|
@ -659,7 +626,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_GET_NAMED) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
|
||||
GET_VARIANT_PTR(src, 1);
|
||||
|
|
@ -694,7 +660,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_SET_MEMBER) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
int indexname = _code_ptr[ip + 1];
|
||||
GD_ERR_BREAK(indexname < 0 || indexname >= _global_names_count);
|
||||
|
|
@ -719,7 +684,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_GET_MEMBER) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
int indexname = _code_ptr[ip + 1];
|
||||
GD_ERR_BREAK(indexname < 0 || indexname >= _global_names_count);
|
||||
|
|
@ -740,7 +704,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ASSIGN) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
GET_VARIANT_PTR(dst, 1);
|
||||
GET_VARIANT_PTR(src, 2);
|
||||
|
|
@ -752,7 +715,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ASSIGN_TRUE) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
GET_VARIANT_PTR(dst, 1);
|
||||
|
||||
|
|
@ -763,7 +725,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ASSIGN_FALSE) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
GET_VARIANT_PTR(dst, 1);
|
||||
|
||||
|
|
@ -774,7 +735,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ASSIGN_TYPED_BUILTIN) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
GET_VARIANT_PTR(dst, 2);
|
||||
GET_VARIANT_PTR(src, 3);
|
||||
|
|
@ -804,7 +764,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ASSIGN_TYPED_NATIVE) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
GET_VARIANT_PTR(dst, 2);
|
||||
GET_VARIANT_PTR(src, 3);
|
||||
|
|
@ -833,7 +792,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ASSIGN_TYPED_SCRIPT) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
GET_VARIANT_PTR(dst, 2);
|
||||
GET_VARIANT_PTR(src, 3);
|
||||
|
|
@ -850,7 +808,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
if (src->get_type() != Variant::NIL && src->operator Object *() != nullptr) {
|
||||
|
||||
ScriptInstance *scr_inst = src->operator Object *()->get_script_instance();
|
||||
if (!scr_inst) {
|
||||
err_text = "Trying to assign value of type '" + src->operator Object *()->get_class_name() +
|
||||
|
|
@ -884,7 +841,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CAST_TO_BUILTIN) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
Variant::Type to_type = (Variant::Type)_code_ptr[ip + 1];
|
||||
GET_VARIANT_PTR(src, 2);
|
||||
|
|
@ -907,7 +863,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CAST_TO_NATIVE) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
GET_VARIANT_PTR(to_type, 1);
|
||||
GET_VARIANT_PTR(src, 2);
|
||||
|
|
@ -935,7 +890,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CAST_TO_SCRIPT) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
GET_VARIANT_PTR(to_type, 1);
|
||||
GET_VARIANT_PTR(src, 2);
|
||||
|
|
@ -955,11 +909,9 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
bool valid = false;
|
||||
|
||||
if (src->get_type() != Variant::NIL && src->operator Object *() != nullptr) {
|
||||
|
||||
ScriptInstance *scr_inst = src->operator Object *()->get_script_instance();
|
||||
|
||||
if (scr_inst) {
|
||||
|
||||
Script *src_type = src->operator Object *()->get_script_instance()->get_script().ptr();
|
||||
|
||||
while (src_type) {
|
||||
|
|
@ -983,7 +935,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CONSTRUCT) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
Variant::Type t = Variant::Type(_code_ptr[ip + 1]);
|
||||
int argc = _code_ptr[ip + 2];
|
||||
|
|
@ -1000,7 +951,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (err.error != Callable::CallError::CALL_OK) {
|
||||
|
||||
err_text = _get_call_error(err, "'" + Variant::get_type_name(t) + "' constructor", (const Variant **)argptrs);
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
|
@ -1012,7 +962,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CONSTRUCT_ARRAY) {
|
||||
|
||||
CHECK_SPACE(1);
|
||||
int argc = _code_ptr[ip + 1];
|
||||
Array array; //arrays are always shared
|
||||
|
|
@ -1033,7 +982,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CONSTRUCT_DICTIONARY) {
|
||||
|
||||
CHECK_SPACE(1);
|
||||
int argc = _code_ptr[ip + 1];
|
||||
Dictionary dict; //arrays are always shared
|
||||
|
|
@ -1041,7 +989,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
CHECK_SPACE(argc * 2 + 2);
|
||||
|
||||
for (int i = 0; i < argc; i++) {
|
||||
|
||||
GET_VARIANT_PTR(k, 2 + i * 2 + 0);
|
||||
GET_VARIANT_PTR(v, 2 + i * 2 + 1);
|
||||
dict[*k] = *v;
|
||||
|
|
@ -1057,7 +1004,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
OPCODE(OPCODE_CALL_RETURN)
|
||||
OPCODE(OPCODE_CALL) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
bool call_ret = _code_ptr[ip] == OPCODE_CALL_RETURN;
|
||||
|
||||
|
|
@ -1088,11 +1034,9 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
#endif
|
||||
Callable::CallError err;
|
||||
if (call_ret) {
|
||||
|
||||
GET_VARIANT_PTR(ret, argc);
|
||||
base->call_ptr(*methodname, (const Variant **)argptrs, argc, ret, err);
|
||||
} else {
|
||||
|
||||
base->call_ptr(*methodname, (const Variant **)argptrs, argc, nullptr, err);
|
||||
}
|
||||
#ifdef DEBUG_ENABLED
|
||||
|
|
@ -1101,7 +1045,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
if (err.error != Callable::CallError::CALL_OK) {
|
||||
|
||||
String methodstr = *methodname;
|
||||
String basestr = _get_var_type(base);
|
||||
|
||||
|
|
@ -1113,14 +1056,11 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
}
|
||||
} else if (methodstr == "free") {
|
||||
|
||||
if (err.error == Callable::CallError::CALL_ERROR_INVALID_METHOD) {
|
||||
|
||||
if (base->is_ref()) {
|
||||
err_text = "Attempted to free a reference.";
|
||||
OPCODE_BREAK;
|
||||
} else if (base->get_type() == Variant::OBJECT) {
|
||||
|
||||
err_text = "Attempted to free a locked object (calling or emitting).";
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
|
@ -1137,7 +1077,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CALL_BUILT_IN) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
|
||||
GDScriptFunctions::Function func = GDScriptFunctions::Function(_code_ptr[ip + 1]);
|
||||
|
|
@ -1161,7 +1100,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (err.error != Callable::CallError::CALL_OK) {
|
||||
|
||||
String methodstr = GDScriptFunctions::get_func_name(func);
|
||||
if (dst->get_type() == Variant::STRING) {
|
||||
//call provided error string
|
||||
|
|
@ -1177,18 +1115,15 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_CALL_SELF) {
|
||||
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
||||
OPCODE(OPCODE_CALL_SELF_BASE) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
int self_fun = _code_ptr[ip + 1];
|
||||
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (self_fun < 0 || self_fun >= _global_names_count) {
|
||||
|
||||
err_text = "compiler bug, function name not found";
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
|
@ -1221,12 +1156,9 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
Callable::CallError err;
|
||||
|
||||
if (E) {
|
||||
|
||||
*dst = E->get()->call(p_instance, (const Variant **)argptrs, argc, err);
|
||||
} else if (gds->native.ptr()) {
|
||||
|
||||
if (*methodname != GDScriptLanguage::get_singleton()->strings._init) {
|
||||
|
||||
MethodBind *mb = ClassDB::get_method(gds->native->get_name(), *methodname);
|
||||
if (!mb) {
|
||||
err.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
|
|
@ -1237,7 +1169,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
err.error = Callable::CallError::CALL_OK;
|
||||
}
|
||||
} else {
|
||||
|
||||
if (*methodname != GDScriptLanguage::get_singleton()->strings._init) {
|
||||
err.error = Callable::CallError::CALL_ERROR_INVALID_METHOD;
|
||||
} else {
|
||||
|
|
@ -1246,7 +1177,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
if (err.error != Callable::CallError::CALL_OK) {
|
||||
|
||||
String methodstr = *methodname;
|
||||
err_text = _get_call_error(err, "function '" + methodstr + "'", (const Variant **)argptrs);
|
||||
|
||||
|
|
@ -1259,7 +1189,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
|
||||
OPCODE(OPCODE_YIELD)
|
||||
OPCODE(OPCODE_YIELD_SIGNAL) {
|
||||
|
||||
int ipofs = 1;
|
||||
if (_code_ptr[ip] == OPCODE_YIELD_SIGNAL) {
|
||||
CHECK_SPACE(4);
|
||||
|
|
@ -1332,7 +1261,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
OPCODE_BREAK;
|
||||
}
|
||||
if (signal.length() == 0) {
|
||||
|
||||
err_text = "Second argument of yield() is an empty string (for signal name).";
|
||||
OPCODE_BREAK;
|
||||
}
|
||||
|
|
@ -1358,7 +1286,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
OPCODE(OPCODE_YIELD_RESUME) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
#ifdef DEBUG_ENABLED
|
||||
if (!p_state) {
|
||||
|
|
@ -1373,7 +1300,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_JUMP) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
int to = _code_ptr[ip + 1];
|
||||
|
||||
|
|
@ -1383,7 +1309,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_JUMP_IF) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
|
||||
GET_VARIANT_PTR(test, 1);
|
||||
|
|
@ -1401,7 +1326,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_JUMP_IF_NOT) {
|
||||
|
||||
CHECK_SPACE(3);
|
||||
|
||||
GET_VARIANT_PTR(test, 1);
|
||||
|
|
@ -1419,14 +1343,12 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_JUMP_TO_DEF_ARGUMENT) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
ip = _default_arg_ptr[defarg];
|
||||
}
|
||||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_RETURN) {
|
||||
|
||||
CHECK_SPACE(2);
|
||||
GET_VARIANT_PTR(r, 1);
|
||||
retvalue = *r;
|
||||
|
|
@ -1437,7 +1359,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
OPCODE(OPCODE_ITERATE_BEGIN) {
|
||||
|
||||
CHECK_SPACE(8); //space for this a regular iterate
|
||||
|
||||
GET_VARIANT_PTR(counter, 1);
|
||||
|
|
@ -1470,7 +1391,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
DISPATCH_OPCODE;
|
||||
|
||||
OPCODE(OPCODE_ITERATE) {
|
||||
|
||||
CHECK_SPACE(4);
|
||||
|
||||
GET_VARIANT_PTR(counter, 1);
|
||||
|
|
@ -1546,7 +1466,6 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
bool do_break = false;
|
||||
|
||||
if (EngineDebugger::get_script_debugger()->get_lines_left() > 0) {
|
||||
|
||||
if (EngineDebugger::get_script_debugger()->get_depth() <= 0)
|
||||
EngineDebugger::get_script_debugger()->set_lines_left(EngineDebugger::get_script_debugger()->get_lines_left() - 1);
|
||||
if (EngineDebugger::get_script_debugger()->get_lines_left() <= 0)
|
||||
|
|
@ -1645,32 +1564,26 @@ Variant GDScriptFunction::call(GDScriptInstance *p_instance, const Variant **p_a
|
|||
}
|
||||
|
||||
const int *GDScriptFunction::get_code() const {
|
||||
|
||||
return _code_ptr;
|
||||
}
|
||||
int GDScriptFunction::get_code_size() const {
|
||||
|
||||
return _code_size;
|
||||
}
|
||||
|
||||
Variant GDScriptFunction::get_constant(int p_idx) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_idx, constants.size(), "<errconst>");
|
||||
return constants[p_idx];
|
||||
}
|
||||
|
||||
StringName GDScriptFunction::get_global_name(int p_idx) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_idx, global_names.size(), "<errgname>");
|
||||
return global_names[p_idx];
|
||||
}
|
||||
|
||||
int GDScriptFunction::get_default_argument_count() const {
|
||||
|
||||
return _default_arg_count;
|
||||
}
|
||||
int GDScriptFunction::get_default_argument_addr(int p_idx) const {
|
||||
|
||||
ERR_FAIL_INDEX_V(p_idx, default_arguments.size(), -1);
|
||||
return default_arguments[p_idx];
|
||||
}
|
||||
|
|
@ -1685,45 +1598,37 @@ GDScriptDataType GDScriptFunction::get_argument_type(int p_idx) const {
|
|||
}
|
||||
|
||||
StringName GDScriptFunction::get_name() const {
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
int GDScriptFunction::get_max_stack_size() const {
|
||||
|
||||
return _stack_size;
|
||||
}
|
||||
|
||||
struct _GDFKC {
|
||||
|
||||
int order;
|
||||
List<int> pos;
|
||||
};
|
||||
|
||||
struct _GDFKCS {
|
||||
|
||||
int order;
|
||||
StringName id;
|
||||
int pos;
|
||||
|
||||
bool operator<(const _GDFKCS &p_r) const {
|
||||
|
||||
return order < p_r.order;
|
||||
}
|
||||
};
|
||||
|
||||
void GDScriptFunction::debug_get_stack_member_state(int p_line, List<Pair<StringName, int>> *r_stackvars) const {
|
||||
|
||||
int oc = 0;
|
||||
Map<StringName, _GDFKC> sdmap;
|
||||
for (const List<StackDebug>::Element *E = stack_debug.front(); E; E = E->next()) {
|
||||
|
||||
const StackDebug &sd = E->get();
|
||||
if (sd.line > p_line)
|
||||
break;
|
||||
|
||||
if (sd.added) {
|
||||
|
||||
if (!sdmap.has(sd.identifier)) {
|
||||
_GDFKC d;
|
||||
d.order = oc++;
|
||||
|
|
@ -1734,7 +1639,6 @@ void GDScriptFunction::debug_get_stack_member_state(int p_line, List<Pair<String
|
|||
sdmap[sd.identifier].pos.push_back(sd.pos);
|
||||
}
|
||||
} else {
|
||||
|
||||
ERR_CONTINUE(!sdmap.has(sd.identifier));
|
||||
|
||||
sdmap[sd.identifier].pos.pop_back();
|
||||
|
|
@ -1745,7 +1649,6 @@ void GDScriptFunction::debug_get_stack_member_state(int p_line, List<Pair<String
|
|||
|
||||
List<_GDFKCS> stackpositions;
|
||||
for (Map<StringName, _GDFKC>::Element *E = sdmap.front(); E; E = E->next()) {
|
||||
|
||||
_GDFKCS spp;
|
||||
spp.id = E->key();
|
||||
spp.order = E->get().order;
|
||||
|
|
@ -1756,7 +1659,6 @@ void GDScriptFunction::debug_get_stack_member_state(int p_line, List<Pair<String
|
|||
stackpositions.sort();
|
||||
|
||||
for (List<_GDFKCS>::Element *E = stackpositions.front(); E; E = E->next()) {
|
||||
|
||||
Pair<StringName, int> p;
|
||||
p.first = E->get().id;
|
||||
p.second = E->get().pos;
|
||||
|
|
@ -1766,7 +1668,6 @@ void GDScriptFunction::debug_get_stack_member_state(int p_line, List<Pair<String
|
|||
|
||||
GDScriptFunction::GDScriptFunction() :
|
||||
function_list(this) {
|
||||
|
||||
_stack_size = 0;
|
||||
_call_size = 0;
|
||||
rpc_mode = MultiplayerAPI::RPC_MODE_DISABLED;
|
||||
|
|
@ -1805,7 +1706,6 @@ GDScriptFunction::~GDScriptFunction() {
|
|||
/////////////////////
|
||||
|
||||
Variant GDScriptFunctionState::_signal_callback(const Variant **p_args, int p_argcount, Callable::CallError &r_error) {
|
||||
|
||||
Variant arg;
|
||||
r_error.error = Callable::CallError::CALL_OK;
|
||||
|
||||
|
|
@ -1838,7 +1738,6 @@ Variant GDScriptFunctionState::_signal_callback(const Variant **p_args, int p_ar
|
|||
}
|
||||
|
||||
bool GDScriptFunctionState::is_valid(bool p_extended_check) const {
|
||||
|
||||
if (function == nullptr)
|
||||
return false;
|
||||
|
||||
|
|
@ -1859,7 +1758,6 @@ bool GDScriptFunctionState::is_valid(bool p_extended_check) const {
|
|||
}
|
||||
|
||||
Variant GDScriptFunctionState::resume(const Variant &p_arg) {
|
||||
|
||||
ERR_FAIL_COND_V(!function, Variant());
|
||||
{
|
||||
MutexLock lock(GDScriptLanguage::singleton->lock);
|
||||
|
|
@ -1921,7 +1819,6 @@ Variant GDScriptFunctionState::resume(const Variant &p_arg) {
|
|||
}
|
||||
|
||||
void GDScriptFunctionState::_clear_stack() {
|
||||
|
||||
if (state.stack_size) {
|
||||
Variant *stack = (Variant *)state.stack.ptr();
|
||||
for (int i = 0; i < state.stack_size; i++)
|
||||
|
|
@ -1931,7 +1828,6 @@ void GDScriptFunctionState::_clear_stack() {
|
|||
}
|
||||
|
||||
void GDScriptFunctionState::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("resume", "arg"), &GDScriptFunctionState::resume, DEFVAL(Variant()));
|
||||
ClassDB::bind_method(D_METHOD("is_valid", "extended_check"), &GDScriptFunctionState::is_valid, DEFVAL(false));
|
||||
ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "_signal_callback", &GDScriptFunctionState::_signal_callback, MethodInfo("_signal_callback"));
|
||||
|
|
@ -1942,12 +1838,10 @@ void GDScriptFunctionState::_bind_methods() {
|
|||
GDScriptFunctionState::GDScriptFunctionState() :
|
||||
scripts_list(this),
|
||||
instances_list(this) {
|
||||
|
||||
function = nullptr;
|
||||
}
|
||||
|
||||
GDScriptFunctionState::~GDScriptFunctionState() {
|
||||
|
||||
_clear_stack();
|
||||
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue