summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authormiwanczuk <miwanczuk7@gmail.com>2019-08-11 14:13:33 +0200
committermiwanczuk <mwianczuk7@gmail.com>2019-08-12 17:06:44 +0200
commit98a3b2e5f48444a95ac5382d18ae5ab1fe8683f7 (patch)
tree31eed03637cf6875de3baae5296b3f866e37072a /core
parent3418f76a9eab9f496e5b26310bd3bc1125b8119b (diff)
Fixes issue when inspecting nodes that are not in the tree
Diffstat (limited to 'core')
-rw-r--r--core/script_debugger_remote.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/core/script_debugger_remote.cpp b/core/script_debugger_remote.cpp
index 5f01e043c4..6dd9054aaa 100644
--- a/core/script_debugger_remote.cpp
+++ b/core/script_debugger_remote.cpp
@@ -601,9 +601,19 @@ void ScriptDebuggerRemote::_send_object_id(ObjectID p_id) {
}
}
}
+
if (Node *node = Object::cast_to<Node>(obj)) {
- PropertyInfo pi(Variant::NODE_PATH, String("Node/path"));
- properties.push_front(PropertyDesc(pi, node->get_path()));
+ // in some cases node will not be in tree here
+ // for instance where it created as variable and not yet added to tree
+ // in such cases we can't ask for it's path
+ if (node->is_inside_tree()) {
+ PropertyInfo pi(Variant::NODE_PATH, String("Node/path"));
+ properties.push_front(PropertyDesc(pi, node->get_path()));
+ } else {
+ PropertyInfo pi(Variant::STRING, String("Node/path"));
+ properties.push_front(PropertyDesc(pi, "[Orphan]"));
+ }
+
} else if (Resource *res = Object::cast_to<Resource>(obj)) {
if (Script *s = Object::cast_to<Script>(res)) {
Map<StringName, Variant> constants;