diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2020-02-25 16:45:12 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-25 16:45:12 +0100 |
commit | dace1ec9126c752792a0566cfd9485a8ad40c0d1 (patch) | |
tree | 8030a4387299f7dec6dbe63c43842fccf7a3f6d0 /scene | |
parent | 2f237d181b6fd769b52bded49cafc9bc5eb9f087 (diff) | |
parent | d8ba07ea8f2a17e77549c56ce8eddcbc2fcead7c (diff) |
Merge pull request #36532 from Faless/debugger/weakref_crash_vulkan
Fix debugger crash inspecting freed object.
Diffstat (limited to 'scene')
-rw-r--r-- | scene/debugger/scene_debugger.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/scene/debugger/scene_debugger.cpp b/scene/debugger/scene_debugger.cpp index 9b9f0455a1..22ff0611a7 100644 --- a/scene/debugger/scene_debugger.cpp +++ b/scene/debugger/scene_debugger.cpp @@ -347,13 +347,17 @@ void SceneDebuggerObject::serialize(Array &r_arr, int p_max_size) { const PropertyInfo &pi = properties[i].first; Variant &var = properties[i].second; - WeakRef *ref = Object::cast_to<WeakRef>(var); - if (ref) { - var = ref->get_ref(); - } - RES res = var; + if (var.get_type() == Variant::OBJECT && var.is_ref()) { + REF r = var; + if (r.is_valid()) { + res = *r; + } else { + res = RES(); + } + } + Array prop; prop.push_back(pi.name); prop.push_back(pi.type); |