Keep a weak reference to orphan subclasses to reuse on class reload
This commit is contained in:
parent
3d88a7bb22
commit
86aa12e806
3 changed files with 63 additions and 5 deletions
|
|
@ -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();
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue