summaryrefslogtreecommitdiffstats
path: root/core/io/resource.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/io/resource.cpp')
-rw-r--r--core/io/resource.cpp25
1 files changed, 8 insertions, 17 deletions
diff --git a/core/io/resource.cpp b/core/io/resource.cpp
index 432adb88da..598c99c188 100644
--- a/core/io/resource.cpp
+++ b/core/io/resource.cpp
@@ -416,21 +416,15 @@ void Resource::_take_over_path(const String &p_path) {
}
RID Resource::get_rid() const {
- if (get_script_instance()) {
- Callable::CallError ce;
- RID ret = get_script_instance()->callp(SNAME("_get_rid"), nullptr, 0, ce);
- if (ce.error == Callable::CallError::CALL_OK && ret.is_valid()) {
- return ret;
- }
- }
- if (_get_extension() && _get_extension()->get_rid) {
- RID ret = RID::from_uint64(_get_extension()->get_rid(_get_extension_instance()));
- if (ret.is_valid()) {
- return ret;
+ RID ret;
+ if (!GDVIRTUAL_CALL(_get_rid, ret)) {
+#ifndef DISABLE_DEPRECATED
+ if (_get_extension() && _get_extension()->get_rid) {
+ ret = RID::from_uint64(_get_extension()->get_rid(_get_extension_instance()));
}
+#endif
}
-
- return RID();
+ return ret;
}
#ifdef TOOLS_ENABLED
@@ -558,11 +552,8 @@ void Resource::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::STRING, "resource_name"), "set_name", "get_name");
ADD_PROPERTY(PropertyInfo(Variant::STRING, "resource_scene_unique_id", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_scene_unique_id", "get_scene_unique_id");
- MethodInfo get_rid_bind("_get_rid");
- get_rid_bind.return_val.type = Variant::RID;
-
- ::ClassDB::add_virtual_method(get_class_static(), get_rid_bind, true, Vector<String>(), true);
GDVIRTUAL_BIND(_setup_local_to_scene);
+ GDVIRTUAL_BIND(_get_rid);
}
Resource::Resource() :