Keep a weak reference to orphan subclasses to reuse on class reload

This commit is contained in:
ChibiDenDen 2020-01-14 01:19:37 +02:00
parent 3d88a7bb22
commit 86aa12e806
3 changed files with 63 additions and 5 deletions

View file

@ -132,6 +132,8 @@ class GDScript : public Script {
bool _update_exports();
void _save_orphaned_subclasses();
protected:
bool _get(const StringName &p_name, Variant &r_ret) const;
bool _set(const StringName &p_name, const Variant &p_value);
@ -355,6 +357,8 @@ class GDScriptLanguage : public ScriptLanguage {
bool profiling;
uint64_t script_frame_time;
Map<String, ObjectID> orphan_subclasses;
public:
int calls;
@ -506,6 +510,9 @@ public:
virtual bool handles_global_class_type(const String &p_type) const;
virtual String get_global_class_name(const String &p_path, String *r_base_type = NULL, String *r_icon_path = NULL) const;
void add_orphan_subclass(const String &p_qualified_name, const ObjectID &p_subclass);
Ref<GDScript> get_orphan_subclass(const String &p_qualified_name);
GDScriptLanguage();
~GDScriptLanguage();
};