diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2020-02-17 11:55:36 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2020-02-17 11:55:39 +0100 |
commit | 8312ead0d99cfc308f2f7635bae3da6bf0ff5489 (patch) | |
tree | 463c2c51c7b0840d493becc1235ef7ed138976bd /core | |
parent | c92c434299278e035916e4d793f667fa609ac0ba (diff) |
ClassDB: Workaround double-free for GDScript
This is a temporary hack until vnen and reduz can work on a proper fix.
The changes in 867d073b98344b848c96012418912a7e72841a31 exposed a
GDScript issue, which apparently triggers an automatic unreferencing.
This hack only makes it possible to use the editor again, but GDScript
is still broken.
Diffstat (limited to 'core')
-rw-r--r-- | core/class_db.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/core/class_db.cpp b/core/class_db.cpp index a2941d70f6..2fd0ee2d89 100644 --- a/core/class_db.cpp +++ b/core/class_db.cpp @@ -1410,7 +1410,10 @@ Variant ClassDB::class_get_default_property_value(const StringName &p_class, con cleanup_c = false; } else if (ClassDB::can_instance(p_class)) { c = ClassDB::instance(p_class); - cleanup_c = true; +#ifndef _MSC_VER +#warning FIXME: ObjectID refactoring broke GDScript handling of reference pointers, this needs a proper fix. +#endif + cleanup_c = (p_class != StringName("GDScript")); } if (c) { |