summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2020-11-19 07:33:45 +0100
committerGitHub <noreply@github.com>2020-11-19 07:33:45 +0100
commiteebd3e8aa12fa53b473f389493323869a8fba9c0 (patch)
tree465ea38e75af9420b14deea8bded4841a14523e1
parenta3a3b02bed3137e0ccac2cbb544a71502a659b80 (diff)
parente99cf6bfe5ac659de503040c3da9a90b135d7619 (diff)
Merge pull request #43657 from RandomShaper/fix_dupe_crash
Fix crash duplicating local-to-scene resources
-rw-r--r--core/io/resource.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/core/io/resource.cpp b/core/io/resource.cpp
index 08f5021889..58ab9a8cde 100644
--- a/core/io/resource.cpp
+++ b/core/io/resource.cpp
@@ -147,8 +147,8 @@ Ref<Resource> Resource::duplicate_for_local_scene(Node *p_for_scene, Map<Ref<Res
List<PropertyInfo> plist;
get_property_list(&plist);
- Resource *r = Object::cast_to<Resource>(ClassDB::instance(get_class()));
- ERR_FAIL_COND_V(!r, Ref<Resource>());
+ Ref<Resource> r = Object::cast_to<Resource>(ClassDB::instance(get_class()));
+ ERR_FAIL_COND_V(r.is_null(), Ref<Resource>());
r->local_scene = p_for_scene;
@@ -175,9 +175,7 @@ Ref<Resource> Resource::duplicate_for_local_scene(Node *p_for_scene, Map<Ref<Res
r->set(E->get().name, p);
}
- RES res = Ref<Resource>(r);
-
- return res;
+ return r;
}
void Resource::configure_for_local_scene(Node *p_for_scene, Map<Ref<Resource>, Ref<Resource>> &remap_cache) {