diff --git a/src/openrct2/object/ObjectManager.cpp b/src/openrct2/object/ObjectManager.cpp index 6595db6fa1..3763f5a590 100644 --- a/src/openrct2/object/ObjectManager.cpp +++ b/src/openrct2/object/ObjectManager.cpp @@ -131,7 +131,7 @@ public: return loadedObject; } - Object* LoadObject(const std::string_view& identifier) override + Object* LoadObject(std::string_view identifier) override { const ObjectRepositoryItem* ori = _objectRepository.FindObject(identifier); return RepositoryItemToObject(ori); diff --git a/src/openrct2/object/ObjectManager.h b/src/openrct2/object/ObjectManager.h index ea5f7145e5..85e8051eb6 100644 --- a/src/openrct2/object/ObjectManager.h +++ b/src/openrct2/object/ObjectManager.h @@ -30,7 +30,7 @@ struct IObjectManager virtual ObjectEntryIndex GetLoadedObjectEntryIndex(const Object* object) abstract; virtual std::vector GetInvalidObjects(const rct_object_entry* entries) abstract; - virtual Object* LoadObject(const std::string_view& identifier) abstract; + virtual Object* LoadObject(std::string_view identifier) abstract; virtual Object* LoadObject(const rct_object_entry* entry) abstract; virtual void LoadObjects(const rct_object_entry* entries, size_t count) abstract; virtual void LoadDefaultObjects() abstract; diff --git a/src/openrct2/object/ObjectRepository.cpp b/src/openrct2/object/ObjectRepository.cpp index 4c9503b3dd..78864f511e 100644 --- a/src/openrct2/object/ObjectRepository.cpp +++ b/src/openrct2/object/ObjectRepository.cpp @@ -49,11 +49,10 @@ using namespace OpenRCT2; struct ObjectIdentifierHash { - size_t operator()(const std::string_view& identifier) const + size_t operator()(std::string_view identifier) const { - std::string copy = identifier.data(); uint32_t hash = 5381; - for (auto i : copy) + for (auto i : identifier) { hash = ((hash << 5) + hash) + i; } @@ -63,7 +62,7 @@ struct ObjectIdentifierHash struct ObjectIdentifierEqual { - bool operator()(const std::string_view& lhs, const std::string_view& rhs) const + bool operator()(std::string_view lhs, std::string_view rhs) const { return lhs == rhs; } @@ -306,9 +305,9 @@ public: return nullptr; } - const ObjectRepositoryItem* FindObject(const std::string_view& identifier) const override final + const ObjectRepositoryItem* FindObject(std::string_view identifier) const override final { - auto kvp = _newItemMap.find(identifier.data()); + auto kvp = _newItemMap.find(std::string(identifier)); if (kvp != _newItemMap.end()) { return &_items[kvp->second]; diff --git a/src/openrct2/object/ObjectRepository.h b/src/openrct2/object/ObjectRepository.h index 838c95f2df..5b3a7cf877 100644 --- a/src/openrct2/object/ObjectRepository.h +++ b/src/openrct2/object/ObjectRepository.h @@ -73,7 +73,7 @@ struct IObjectRepository virtual size_t GetNumObjects() const abstract; virtual const ObjectRepositoryItem* GetObjects() const abstract; virtual const ObjectRepositoryItem* FindObjectLegacy(const std::string_view& legacyIdentifier) const abstract; - virtual const ObjectRepositoryItem* FindObject(const std::string_view& identifier) const abstract; + virtual const ObjectRepositoryItem* FindObject(std::string_view identifier) const abstract; virtual const ObjectRepositoryItem* FindObject(const rct_object_entry* objectEntry) const abstract; virtual std::unique_ptr LoadObject(const ObjectRepositoryItem* ori) abstract;