From 755bf0b04bc2334a635402b827f43ff9b4bef0c1 Mon Sep 17 00:00:00 2001 From: Lynix Date: Tue, 2 Aug 2016 12:52:49 +0200 Subject: [PATCH] Core/RefCounted: Remove persistent boolean Former-commit-id: 6661b29e0e5e1dee8f4588688dc42865ce76e9ba [formerly 55e47c5ec3851e55243fb0e8e85d7fcc22f6cc1b] Former-commit-id: 5442ab91a3a4b7da93c10bd06889785ac1faf034 --- include/Nazara/Audio/SoundBuffer.inl | 2 - include/Nazara/Core/RefCounted.hpp | 7 +--- include/Nazara/Graphics/Billboard.inl | 2 - include/Nazara/Graphics/ColorBackground.inl | 2 - include/Nazara/Graphics/Material.inl | 2 - include/Nazara/Graphics/Model.inl | 2 - include/Nazara/Graphics/SkyboxBackground.inl | 2 - include/Nazara/Graphics/Sprite.inl | 2 - include/Nazara/Graphics/TextSprite.inl | 2 - include/Nazara/Graphics/TextureBackground.inl | 2 - include/Nazara/Graphics/TileMap.inl | 2 - include/Nazara/Physics/Geom.inl | 16 -------- include/Nazara/Renderer/RenderBuffer.inl | 2 - include/Nazara/Renderer/Shader.inl | 2 - include/Nazara/Renderer/Texture.inl | 2 - .../Renderer/UberShaderPreprocessor.inl | 2 - include/Nazara/Utility/Animation.inl | 2 - include/Nazara/Utility/Buffer.inl | 2 - include/Nazara/Utility/Font.inl | 2 - include/Nazara/Utility/Image.inl | 2 - include/Nazara/Utility/IndexBuffer.inl | 2 - include/Nazara/Utility/Mesh.inl | 2 - include/Nazara/Utility/SkeletalMesh.inl | 2 - include/Nazara/Utility/Skeleton.inl | 2 - include/Nazara/Utility/StaticMesh.inl | 2 - include/Nazara/Utility/VertexBuffer.inl | 2 - include/Nazara/Utility/VertexDeclaration.inl | 2 - src/Nazara/Core/RefCounted.cpp | 41 ++----------------- 28 files changed, 4 insertions(+), 110 deletions(-) diff --git a/include/Nazara/Audio/SoundBuffer.inl b/include/Nazara/Audio/SoundBuffer.inl index a4c42be69..22ed4b19a 100644 --- a/include/Nazara/Audio/SoundBuffer.inl +++ b/include/Nazara/Audio/SoundBuffer.inl @@ -18,8 +18,6 @@ namespace Nz SoundBufferRef SoundBuffer::New(Args&&... args) { std::unique_ptr object(new SoundBuffer(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Core/RefCounted.hpp b/include/Nazara/Core/RefCounted.hpp index 542784787..42936ff7e 100644 --- a/include/Nazara/Core/RefCounted.hpp +++ b/include/Nazara/Core/RefCounted.hpp @@ -22,7 +22,7 @@ namespace Nz class NAZARA_CORE_API RefCounted { public: - RefCounted(bool persistent = true); + RefCounted(); RefCounted(const RefCounted&) = delete; RefCounted(RefCounted&&) = default; virtual ~RefCounted(); @@ -31,17 +31,12 @@ namespace Nz unsigned int GetReferenceCount() const; - bool IsPersistent() const; - bool RemoveReference() const; - bool SetPersistent(bool persistent = true, bool checkReferenceCount = false); - RefCounted& operator=(const RefCounted&) = delete; RefCounted& operator=(RefCounted&&) = default; private: - std::atomic_bool m_persistent; mutable std::atomic_uint m_referenceCount; }; } diff --git a/include/Nazara/Graphics/Billboard.inl b/include/Nazara/Graphics/Billboard.inl index 6c4a1e0a9..95a0e5b87 100644 --- a/include/Nazara/Graphics/Billboard.inl +++ b/include/Nazara/Graphics/Billboard.inl @@ -234,8 +234,6 @@ namespace Nz BillboardRef Billboard::New(Args&&... args) { std::unique_ptr object(new Billboard(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/ColorBackground.inl b/include/Nazara/Graphics/ColorBackground.inl index 67b1f2558..49efd4874 100644 --- a/include/Nazara/Graphics/ColorBackground.inl +++ b/include/Nazara/Graphics/ColorBackground.inl @@ -18,8 +18,6 @@ namespace Nz ColorBackgroundRef ColorBackground::New(Args&&... args) { std::unique_ptr object(new ColorBackground(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/Material.inl b/include/Nazara/Graphics/Material.inl index 6d5315640..801e341ae 100644 --- a/include/Nazara/Graphics/Material.inl +++ b/include/Nazara/Graphics/Material.inl @@ -1099,8 +1099,6 @@ namespace Nz MaterialRef Material::New(Args&&... args) { std::unique_ptr object(new Material(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/Model.inl b/include/Nazara/Graphics/Model.inl index a2b4c3967..fba9655ec 100644 --- a/include/Nazara/Graphics/Model.inl +++ b/include/Nazara/Graphics/Model.inl @@ -18,8 +18,6 @@ namespace Nz ModelRef Model::New(Args&&... args) { std::unique_ptr object(new Model(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/SkyboxBackground.inl b/include/Nazara/Graphics/SkyboxBackground.inl index 6171f1e28..15d3eb137 100644 --- a/include/Nazara/Graphics/SkyboxBackground.inl +++ b/include/Nazara/Graphics/SkyboxBackground.inl @@ -119,8 +119,6 @@ namespace Nz SkyboxBackgroundRef SkyboxBackground::New(Args&&... args) { std::unique_ptr object(new SkyboxBackground(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/Sprite.inl b/include/Nazara/Graphics/Sprite.inl index 840a930e6..166807f2b 100644 --- a/include/Nazara/Graphics/Sprite.inl +++ b/include/Nazara/Graphics/Sprite.inl @@ -271,8 +271,6 @@ namespace Nz SpriteRef Sprite::New(Args&&... args) { std::unique_ptr object(new Sprite(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/TextSprite.inl b/include/Nazara/Graphics/TextSprite.inl index baeeb50db..48b0c061b 100644 --- a/include/Nazara/Graphics/TextSprite.inl +++ b/include/Nazara/Graphics/TextSprite.inl @@ -210,8 +210,6 @@ namespace Nz TextSpriteRef TextSprite::New(Args&&... args) { std::unique_ptr object(new TextSprite(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/TextureBackground.inl b/include/Nazara/Graphics/TextureBackground.inl index 31067f36c..423ab5a81 100644 --- a/include/Nazara/Graphics/TextureBackground.inl +++ b/include/Nazara/Graphics/TextureBackground.inl @@ -41,8 +41,6 @@ namespace Nz TextureBackgroundRef TextureBackground::New(Args&&... args) { std::unique_ptr object(new TextureBackground(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Graphics/TileMap.inl b/include/Nazara/Graphics/TileMap.inl index 405683f40..0f7c8faca 100644 --- a/include/Nazara/Graphics/TileMap.inl +++ b/include/Nazara/Graphics/TileMap.inl @@ -432,8 +432,6 @@ namespace Nz TileMapRef TileMap::New(Args&&... args) { std::unique_ptr object(new TileMap(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Physics/Geom.inl b/include/Nazara/Physics/Geom.inl index 9699cac96..0a21fbd23 100644 --- a/include/Nazara/Physics/Geom.inl +++ b/include/Nazara/Physics/Geom.inl @@ -11,8 +11,6 @@ namespace Nz BoxGeomRef BoxGeom::New(Args&&... args) { std::unique_ptr object(new BoxGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -20,8 +18,6 @@ namespace Nz CapsuleGeomRef CapsuleGeom::New(Args&&... args) { std::unique_ptr object(new CapsuleGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -29,8 +25,6 @@ namespace Nz CompoundGeomRef CompoundGeom::New(Args&&... args) { std::unique_ptr object(new CompoundGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -38,8 +32,6 @@ namespace Nz ConeGeomRef ConeGeom::New(Args&&... args) { std::unique_ptr object(new ConeGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -47,8 +39,6 @@ namespace Nz ConvexHullGeomRef ConvexHullGeom::New(Args&&... args) { std::unique_ptr object(new ConvexHullGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -56,8 +46,6 @@ namespace Nz CylinderGeomRef CylinderGeom::New(Args&&... args) { std::unique_ptr object(new CylinderGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -65,8 +53,6 @@ namespace Nz NullGeomRef NullGeom::New(Args&&... args) { std::unique_ptr object(new NullGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } @@ -74,8 +60,6 @@ namespace Nz SphereGeomRef SphereGeom::New(Args&&... args) { std::unique_ptr object(new SphereGeom(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Renderer/RenderBuffer.inl b/include/Nazara/Renderer/RenderBuffer.inl index bd81e7a17..59a9a5dd8 100644 --- a/include/Nazara/Renderer/RenderBuffer.inl +++ b/include/Nazara/Renderer/RenderBuffer.inl @@ -11,8 +11,6 @@ namespace Nz RenderBufferRef RenderBuffer::New(Args&&... args) { std::unique_ptr object(new RenderBuffer(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Renderer/Shader.inl b/include/Nazara/Renderer/Shader.inl index b868c540e..0e8309008 100644 --- a/include/Nazara/Renderer/Shader.inl +++ b/include/Nazara/Renderer/Shader.inl @@ -11,8 +11,6 @@ namespace Nz ShaderRef Shader::New(Args&&... args) { std::unique_ptr object(new Shader(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Renderer/Texture.inl b/include/Nazara/Renderer/Texture.inl index 4dc53464b..c9813ac73 100644 --- a/include/Nazara/Renderer/Texture.inl +++ b/include/Nazara/Renderer/Texture.inl @@ -11,8 +11,6 @@ namespace Nz TextureRef Texture::New(Args&&... args) { std::unique_ptr object(new Texture(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } diff --git a/include/Nazara/Renderer/UberShaderPreprocessor.inl b/include/Nazara/Renderer/UberShaderPreprocessor.inl index 1e6528775..fb9477030 100644 --- a/include/Nazara/Renderer/UberShaderPreprocessor.inl +++ b/include/Nazara/Renderer/UberShaderPreprocessor.inl @@ -11,8 +11,6 @@ namespace Nz UberShaderPreprocessorRef UberShaderPreprocessor::New(Args&&... args) { std::unique_ptr object(new UberShaderPreprocessor(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/Animation.inl b/include/Nazara/Utility/Animation.inl index 0ae58c0f4..f742e4c0e 100644 --- a/include/Nazara/Utility/Animation.inl +++ b/include/Nazara/Utility/Animation.inl @@ -11,8 +11,6 @@ namespace Nz AnimationRef Animation::New(Args&&... args) { std::unique_ptr object(new Animation(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/Buffer.inl b/include/Nazara/Utility/Buffer.inl index 8703fd82c..39c1960f7 100644 --- a/include/Nazara/Utility/Buffer.inl +++ b/include/Nazara/Utility/Buffer.inl @@ -11,8 +11,6 @@ namespace Nz BufferRef Buffer::New(Args&&... args) { std::unique_ptr object(new Buffer(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/Font.inl b/include/Nazara/Utility/Font.inl index 241915a3e..5f8e94c2c 100644 --- a/include/Nazara/Utility/Font.inl +++ b/include/Nazara/Utility/Font.inl @@ -11,8 +11,6 @@ namespace Nz FontRef Font::New(Args&&... args) { std::unique_ptr object(new Font(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/Image.inl b/include/Nazara/Utility/Image.inl index 5cb8ef42f..ca111f9e9 100644 --- a/include/Nazara/Utility/Image.inl +++ b/include/Nazara/Utility/Image.inl @@ -11,8 +11,6 @@ namespace Nz ImageRef Image::New(Args&&... args) { std::unique_ptr object(new Image(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/IndexBuffer.inl b/include/Nazara/Utility/IndexBuffer.inl index 1c1d16a18..789019f91 100644 --- a/include/Nazara/Utility/IndexBuffer.inl +++ b/include/Nazara/Utility/IndexBuffer.inl @@ -11,8 +11,6 @@ namespace Nz IndexBufferRef IndexBuffer::New(Args&&... args) { std::unique_ptr object(new IndexBuffer(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/Mesh.inl b/include/Nazara/Utility/Mesh.inl index 4877e03fe..21d52bf7d 100644 --- a/include/Nazara/Utility/Mesh.inl +++ b/include/Nazara/Utility/Mesh.inl @@ -11,8 +11,6 @@ namespace Nz MeshRef Mesh::New(Args&&... args) { std::unique_ptr object(new Mesh(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/SkeletalMesh.inl b/include/Nazara/Utility/SkeletalMesh.inl index 69119dc87..f6a590902 100644 --- a/include/Nazara/Utility/SkeletalMesh.inl +++ b/include/Nazara/Utility/SkeletalMesh.inl @@ -11,8 +11,6 @@ namespace Nz SkeletalMeshRef SkeletalMesh::New(Args&&... args) { std::unique_ptr object(new SkeletalMesh(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/Skeleton.inl b/include/Nazara/Utility/Skeleton.inl index 4c0ef4546..839227462 100644 --- a/include/Nazara/Utility/Skeleton.inl +++ b/include/Nazara/Utility/Skeleton.inl @@ -11,8 +11,6 @@ namespace Nz SkeletonRef Skeleton::New(Args&&... args) { std::unique_ptr object(new Skeleton(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/StaticMesh.inl b/include/Nazara/Utility/StaticMesh.inl index 06afcec95..a18ae32f5 100644 --- a/include/Nazara/Utility/StaticMesh.inl +++ b/include/Nazara/Utility/StaticMesh.inl @@ -11,8 +11,6 @@ namespace Nz StaticMeshRef StaticMesh::New(Args&&... args) { std::unique_ptr object(new StaticMesh(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/VertexBuffer.inl b/include/Nazara/Utility/VertexBuffer.inl index 24268e9cb..a4ebef1be 100644 --- a/include/Nazara/Utility/VertexBuffer.inl +++ b/include/Nazara/Utility/VertexBuffer.inl @@ -11,8 +11,6 @@ namespace Nz VertexBufferRef VertexBuffer::New(Args&&... args) { std::unique_ptr object(new VertexBuffer(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/include/Nazara/Utility/VertexDeclaration.inl b/include/Nazara/Utility/VertexDeclaration.inl index beed900d5..f74e29a7c 100644 --- a/include/Nazara/Utility/VertexDeclaration.inl +++ b/include/Nazara/Utility/VertexDeclaration.inl @@ -11,8 +11,6 @@ namespace Nz VertexDeclarationRef VertexDeclaration::New(Args&&... args) { std::unique_ptr object(new VertexDeclaration(std::forward(args)...)); - object->SetPersistent(false); - return object.release(); } } diff --git a/src/Nazara/Core/RefCounted.cpp b/src/Nazara/Core/RefCounted.cpp index 31e749515..f37300c32 100644 --- a/src/Nazara/Core/RefCounted.cpp +++ b/src/Nazara/Core/RefCounted.cpp @@ -23,13 +23,10 @@ namespace Nz */ /*! - * \brief Constructs a RefCounted object with a persistance aspect - * - * \param persistent if false, object is destroyed when no more referenced + * \brief Constructs a RefCounted object */ - RefCounted::RefCounted(bool persistent) : - m_persistent(persistent), + RefCounted::RefCounted() : m_referenceCount(0) { } @@ -67,16 +64,6 @@ namespace Nz return m_referenceCount; } - /*! - * \brief Checks whether the object is persistent - * \return true if object is not destroyed when no more referenced - */ - - bool RefCounted::IsPersistent() const - { - return m_persistent; - } - /*! * \brief Removes a reference to the object * \return true if object is deleted because no more referenced @@ -94,7 +81,7 @@ namespace Nz } #endif - if (--m_referenceCount == 0 && !m_persistent) + if (--m_referenceCount == 0) { delete this; // Suicide @@ -103,26 +90,4 @@ namespace Nz else return false; } - - /*! - * \brief Sets the persistence of the object - * \return true if object is deleted because no more referenced - * - * \param persistent Sets the persistence of the object - * \param checkReferenceCount Checks if the object should be destroyed if true - */ - - bool RefCounted::SetPersistent(bool persistent, bool checkReferenceCount) - { - m_persistent = persistent; - - if (checkReferenceCount && !persistent && m_referenceCount == 0) - { - delete this; - - return true; - } - else - return false; - } }