summaryrefslogtreecommitdiffstats
path: root/modules/gdscript/gdscript.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2019-02-28 11:00:20 +0100
committerGitHub <noreply@github.com>2019-02-28 11:00:20 +0100
commitf2003b1a7e5d3fce6448bd578a15bbf8f9462183 (patch)
tree0d2605c99da9765117b55411e0865e359c808ff5 /modules/gdscript/gdscript.cpp
parenta4b687bdab773f7b8bcaed677febd9e05c9f0b27 (diff)
parent8f22c2684f3f5982d8ca8871df0b6a73d41ed196 (diff)
downloadredot-engine-f2003b1a7e5d3fce6448bd578a15bbf8f9462183.tar.gz
Merge pull request #26034 from QbieShay/issue_25596
Inheriting from virtual class no longer causes the engine to crash.
Diffstat (limited to 'modules/gdscript/gdscript.cpp')
-rw-r--r--modules/gdscript/gdscript.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/modules/gdscript/gdscript.cpp b/modules/gdscript/gdscript.cpp
index dd9b36fd8c..e07911fa44 100644
--- a/modules/gdscript/gdscript.cpp
+++ b/modules/gdscript/gdscript.cpp
@@ -152,12 +152,13 @@ Variant GDScript::_new(const Variant **p_args, int p_argcount, Variant::CallErro
}
ERR_FAIL_COND_V(_baseptr->native.is_null(), Variant());
-
if (_baseptr->native.ptr()) {
owner = _baseptr->native->instance();
} else {
owner = memnew(Reference); //by default, no base means use reference
}
+ ERR_EXPLAIN("Can't inherit from a virtual class");
+ ERR_FAIL_COND_V(!owner, Variant());
Reference *r = Object::cast_to<Reference>(owner);
if (r) {