diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2018-10-24 19:01:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-24 19:01:15 +0200 |
commit | 16bdfcfa4a9e99f158aa9381caeedfc2a7735914 (patch) | |
tree | 5fe86a10142d680152c4757431089ae9793ed9a6 /modules/gdscript/gdscript_function.h | |
parent | 7aea8502f6c72affa4bddf1841a96151852058bf (diff) | |
parent | 54bdc1e1f6a7fb85a5b193c9b8ecf0dcf06949e6 (diff) | |
download | redot-engine-16bdfcfa4a9e99f158aa9381caeedfc2a7735914.tar.gz |
Merge pull request #23094 from RandomShaper/fix-crash-signal-to-danling-obj
Fix crash on signal/resume to dangling target
Diffstat (limited to 'modules/gdscript/gdscript_function.h')
-rw-r--r-- | modules/gdscript/gdscript_function.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/modules/gdscript/gdscript_function.h b/modules/gdscript/gdscript_function.h index bfb6d673f1..a47070de4f 100644 --- a/modules/gdscript/gdscript_function.h +++ b/modules/gdscript/gdscript_function.h @@ -225,7 +225,7 @@ private: bool _static; MultiplayerAPI::RPCMode rpc_mode; - GDScript *_script; + Ref<GDScript> _script; StringName name; Vector<Variant> constants; @@ -272,15 +272,13 @@ private: public: struct CallState { - ObjectID instance_id; //by debug only - ObjectID script_id; - + ObjectID instance_id; GDScriptInstance *instance; Vector<uint8_t> stack; int stack_size; Variant self; uint32_t alloca_size; - GDScript *_class; + Ref<GDScript> script; int ip; int line; int defarg; @@ -299,7 +297,7 @@ public: int get_default_argument_addr(int p_idx) const; GDScriptDataType get_return_type() const; GDScriptDataType get_argument_type(int p_idx) const; - GDScript *get_script() const { return _script; } + GDScript *get_script() const { return const_cast<GDScript *>(_script.ptr()); } StringName get_source() const { return source; } void debug_get_stack_member_state(int p_line, List<Pair<StringName, int> > *r_stackvars) const; |