Fix implicit GDScript Reference inheritance

This commit is contained in:
eska 2016-06-05 14:52:07 +02:00
parent 56348cbbfe
commit 3acbf8e71f
2 changed files with 8 additions and 5 deletions

View file

@ -1588,6 +1588,12 @@ Error GDCompiler::_parse_class(GDScript *p_script, GDScript *p_owner, const GDPa
} }
} else {
// without extends, implicitly extend Reference
int native_idx = GDScriptLanguage::get_singleton()->get_global_map()["Reference"];
native = GDScriptLanguage::get_singleton()->get_global_array()[native_idx];
ERR_FAIL_COND_V(native.is_null(), ERR_BUG);
p_script->native=native;
} }

View file

@ -145,11 +145,8 @@ Variant GDScript::_new(const Variant** p_args,int p_argcount,Variant::CallError&
_baseptr=_baseptr->_base; _baseptr=_baseptr->_base;
} }
if (_baseptr->native.ptr()) { ERR_FAIL_COND_V(_baseptr->native.is_null(), Variant());
owner=_baseptr->native->instance(); owner=_baseptr->native->instance();
} else {
owner=memnew( Reference ); //by default, no base means use reference
}
Reference *r=owner->cast_to<Reference>(); Reference *r=owner->cast_to<Reference>();
if (r) { if (r) {