From 6966eabd25923557db7693a864b1e6fcede70583 Mon Sep 17 00:00:00 2001 From: skypjack Date: Tue, 5 Aug 2025 13:59:23 +0200 Subject: [PATCH] resource: minor changes --- TODO | 1 + src/entt/resource/resource.hpp | 2 +- test/entt/resource/resource.cpp | 14 +++++++------- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/TODO b/TODO index d3737c159..81be648f1 100644 --- a/TODO +++ b/TODO @@ -37,3 +37,4 @@ TODO: * use any for meta_custom_node * avoid copying meta_type/data/func nodes * paged vector as a standalone class +* resource: shared_from_this? diff --git a/src/entt/resource/resource.hpp b/src/entt/resource/resource.hpp index 51325dc8e..a13100190 100644 --- a/src/entt/resource/resource.hpp +++ b/src/entt/resource/resource.hpp @@ -175,7 +175,7 @@ public: * @brief Returns the underlying resource handle. * @return The underlying resource handle. */ - [[nodiscard]] const handle_type &handle() const noexcept { + [[nodiscard]] handle_type handle() const noexcept { return value; } diff --git a/test/entt/resource/resource.cpp b/test/entt/resource/resource.cpp index c6e5ff889..576f102e1 100644 --- a/test/entt/resource/resource.cpp +++ b/test/entt/resource/resource.cpp @@ -42,7 +42,7 @@ TEST(Resource, Functionalities) { ASSERT_EQ(other.operator->(), value.get()); ASSERT_EQ(&static_cast(other), value.get()); ASSERT_EQ(&*other, value.get()); - ASSERT_EQ(other.handle().use_count(), 2l); + ASSERT_EQ(other.handle().use_count(), 3l); entt::resource copy{resource}; entt::resource move{std::move(other)}; @@ -132,12 +132,12 @@ TEST(Resource, ConstNonConstAndAllInBetween) { ASSERT_TRUE(copy); ASSERT_EQ(copy, resource); ASSERT_NE(copy, entt::resource{}); - ASSERT_EQ(copy.handle().use_count(), 3); + ASSERT_EQ(copy.handle().use_count(), 4); ASSERT_TRUE(move); ASSERT_EQ(move, resource); ASSERT_NE(move, entt::resource{}); - ASSERT_EQ(move.handle().use_count(), 3); + ASSERT_EQ(move.handle().use_count(), 4); copy = resource; move = std::move(resource); @@ -148,7 +148,7 @@ TEST(Resource, ConstNonConstAndAllInBetween) { ASSERT_TRUE(copy); ASSERT_TRUE(move); - ASSERT_EQ(copy.handle().use_count(), 2); + ASSERT_EQ(copy.handle().use_count(), 3); } TEST(Resource, DynamicResourceHandleCast) { @@ -156,20 +156,20 @@ TEST(Resource, DynamicResourceHandleCast) { entt::resource other = resource; ASSERT_TRUE(other); - ASSERT_EQ(resource.handle().use_count(), 2); + ASSERT_EQ(resource.handle().use_count(), 3); ASSERT_EQ(resource, other); entt::resource cast = dynamic_resource_cast(other); ASSERT_TRUE(cast); - ASSERT_EQ(resource.handle().use_count(), 3); + ASSERT_EQ(resource.handle().use_count(), 4); ASSERT_EQ(resource, cast); other = entt::resource{std::make_shared()}; cast = dynamic_resource_cast(other); ASSERT_FALSE(cast); - ASSERT_EQ(resource.handle().use_count(), 1); + ASSERT_EQ(resource.handle().use_count(), 2); } TEST(Resource, Comparison) {