|
@@ -954,7 +954,8 @@ bool GDScript::_get(const StringName &p_name, Variant &r_ret) const {
|
|
if (E) {
|
|
if (E) {
|
|
if (likely(top->valid) && E->value.getter) {
|
|
if (likely(top->valid) && E->value.getter) {
|
|
Callable::CallError ce;
|
|
Callable::CallError ce;
|
|
- r_ret = const_cast<GDScript *>(this)->callp(E->value.getter, nullptr, 0, ce);
|
|
|
|
|
|
+ const Variant ret = const_cast<GDScript *>(this)->callp(E->value.getter, nullptr, 0, ce);
|
|
|
|
+ r_ret = (ce.error == Callable::CallError::CALL_OK) ? ret : Variant();
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
r_ret = top->static_variables[E->value.index];
|
|
r_ret = top->static_variables[E->value.index];
|
|
@@ -1727,10 +1728,9 @@ bool GDScriptInstance::get(const StringName &p_name, Variant &r_ret) const {
|
|
if (E) {
|
|
if (E) {
|
|
if (likely(script->valid) && E->value.getter) {
|
|
if (likely(script->valid) && E->value.getter) {
|
|
Callable::CallError err;
|
|
Callable::CallError err;
|
|
- r_ret = const_cast<GDScriptInstance *>(this)->callp(E->value.getter, nullptr, 0, err);
|
|
|
|
- if (err.error == Callable::CallError::CALL_OK) {
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
|
|
+ const Variant ret = const_cast<GDScriptInstance *>(this)->callp(E->value.getter, nullptr, 0, err);
|
|
|
|
+ r_ret = (err.error == Callable::CallError::CALL_OK) ? ret : Variant();
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
r_ret = members[E->value.index];
|
|
r_ret = members[E->value.index];
|
|
return true;
|
|
return true;
|
|
@@ -1752,7 +1752,8 @@ bool GDScriptInstance::get(const StringName &p_name, Variant &r_ret) const {
|
|
if (E) {
|
|
if (E) {
|
|
if (likely(sptr->valid) && E->value.getter) {
|
|
if (likely(sptr->valid) && E->value.getter) {
|
|
Callable::CallError ce;
|
|
Callable::CallError ce;
|
|
- r_ret = const_cast<GDScript *>(sptr)->callp(E->value.getter, nullptr, 0, ce);
|
|
|
|
|
|
+ const Variant ret = const_cast<GDScript *>(sptr)->callp(E->value.getter, nullptr, 0, ce);
|
|
|
|
+ r_ret = (ce.error == Callable::CallError::CALL_OK) ? ret : Variant();
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
r_ret = sptr->static_variables[E->value.index];
|
|
r_ret = sptr->static_variables[E->value.index];
|