From df092b558b326cbcb43c343242e09b9b1d7f6efd Mon Sep 17 00:00:00 2001 From: elsid Date: Fri, 8 Apr 2022 22:04:32 +0200 Subject: [PATCH] Replace shared_ptr by unique_ptr --- apps/openmw/mwgui/mapwindow.hpp | 6 ++++-- apps/openmw/mwrender/animation.hpp | 4 ++-- apps/openmw/mwrender/localmap.cpp | 4 ++-- apps/openmw/mwrender/npcanimation.cpp | 12 ++++++------ apps/openmw/mwsound/movieaudiofactory.cpp | 4 ++-- apps/openmw/mwsound/movieaudiofactory.hpp | 2 +- apps/openmw/mwworld/cellstore.cpp | 4 ++-- apps/openmw/mwworld/cellstore.hpp | 6 +++--- extern/osg-ffmpeg-videoplayer/audiofactory.hpp | 2 +- extern/osg-ffmpeg-videoplayer/videostate.hpp | 2 +- 10 files changed, 24 insertions(+), 22 deletions(-) diff --git a/apps/openmw/mwgui/mapwindow.hpp b/apps/openmw/mwgui/mapwindow.hpp index c50a92dac3..37c971cd19 100644 --- a/apps/openmw/mwgui/mapwindow.hpp +++ b/apps/openmw/mwgui/mapwindow.hpp @@ -6,6 +6,8 @@ #include +#include + #include "windowpinnablebase.hpp" #include @@ -142,8 +144,8 @@ namespace MWGui MyGUI::ImageBox* mMapWidget; MyGUI::ImageBox* mFogWidget; - std::shared_ptr mMapTexture; - std::shared_ptr mFogTexture; + std::unique_ptr mMapTexture; + std::unique_ptr mFogTexture; int mCellX; int mCellY; }; diff --git a/apps/openmw/mwrender/animation.hpp b/apps/openmw/mwrender/animation.hpp index d37d548dd3..1bad0f8d95 100644 --- a/apps/openmw/mwrender/animation.hpp +++ b/apps/openmw/mwrender/animation.hpp @@ -61,7 +61,7 @@ public: ~PartHolder(); - osg::ref_ptr getNode() + const osg::ref_ptr& getNode() const { return mNode; } @@ -72,7 +72,7 @@ private: void operator= (const PartHolder&); PartHolder(const PartHolder&); }; -typedef std::shared_ptr PartHolderPtr; +using PartHolderPtr = std::unique_ptr; struct EffectParams { diff --git a/apps/openmw/mwrender/localmap.cpp b/apps/openmw/mwrender/localmap.cpp index a3c8d6b2ce..98eebf0b75 100644 --- a/apps/openmw/mwrender/localmap.cpp +++ b/apps/openmw/mwrender/localmap.cpp @@ -135,7 +135,7 @@ void LocalMap::saveFogOfWar(MWWorld::CellStore* cell) segment.saveFogOfWar(fog->mFogTextures.back()); - cell->setFog(fog.release()); + cell->setFog(std::move(fog)); } } else @@ -169,7 +169,7 @@ void LocalMap::saveFogOfWar(MWWorld::CellStore* cell) } } - cell->setFog(fog.release()); + cell->setFog(std::move(fog)); } } diff --git a/apps/openmw/mwrender/npcanimation.cpp b/apps/openmw/mwrender/npcanimation.cpp index 3fdfaed72d..a1a0dafb02 100644 --- a/apps/openmw/mwrender/npcanimation.cpp +++ b/apps/openmw/mwrender/npcanimation.cpp @@ -425,8 +425,8 @@ int NpcAnimation::getSlot(const osg::NodePath &path) const { for (int i=0; igetNode().get()) != path.end()) { @@ -1023,8 +1023,8 @@ void NpcAnimation::releaseArrow(float attackStrength) osg::Group* NpcAnimation::getArrowBone() { - PartHolderPtr part = mObjectParts[ESM::PRT_Weapon]; - if (!part) + const PartHolder* const part = mObjectParts[ESM::PRT_Weapon].get(); + if (part == nullptr) return nullptr; const MWWorld::InventoryStore& inv = mPtr.getClass().getInventoryStore(mPtr); @@ -1048,8 +1048,8 @@ osg::Group* NpcAnimation::getArrowBone() osg::Node* NpcAnimation::getWeaponNode() { - PartHolderPtr part = mObjectParts[ESM::PRT_Weapon]; - if (!part) + const PartHolder* const part = mObjectParts[ESM::PRT_Weapon].get(); + if (part == nullptr) return nullptr; return part->getNode(); } diff --git a/apps/openmw/mwsound/movieaudiofactory.cpp b/apps/openmw/mwsound/movieaudiofactory.cpp index d8c1c928ee..83f8398e8b 100644 --- a/apps/openmw/mwsound/movieaudiofactory.cpp +++ b/apps/openmw/mwsound/movieaudiofactory.cpp @@ -153,9 +153,9 @@ namespace MWSound - std::shared_ptr MovieAudioFactory::createDecoder(Video::VideoState* videoState) + std::unique_ptr MovieAudioFactory::createDecoder(Video::VideoState* videoState) { - std::shared_ptr decoder(new MWSound::MovieAudioDecoder(videoState)); + std::unique_ptr decoder(new MWSound::MovieAudioDecoder(videoState)); decoder->setupFormat(); MWBase::SoundManager *sndMgr = MWBase::Environment::get().getSoundManager(); diff --git a/apps/openmw/mwsound/movieaudiofactory.hpp b/apps/openmw/mwsound/movieaudiofactory.hpp index 63b8fd7e90..0af1066af5 100644 --- a/apps/openmw/mwsound/movieaudiofactory.hpp +++ b/apps/openmw/mwsound/movieaudiofactory.hpp @@ -8,7 +8,7 @@ namespace MWSound class MovieAudioFactory : public Video::MovieAudioFactory { - std::shared_ptr createDecoder(Video::VideoState* videoState) override; + std::unique_ptr createDecoder(Video::VideoState* videoState) override; }; } diff --git a/apps/openmw/mwworld/cellstore.cpp b/apps/openmw/mwworld/cellstore.cpp index 594bdcf6f2..0c7cc631b7 100644 --- a/apps/openmw/mwworld/cellstore.cpp +++ b/apps/openmw/mwworld/cellstore.cpp @@ -1029,9 +1029,9 @@ namespace MWWorld return !(left==right); } - void CellStore::setFog(ESM::FogState *fog) + void CellStore::setFog(std::unique_ptr&& fog) { - mFogState.reset(fog); + mFogState = std::move(fog); } ESM::FogState* CellStore::getFog() const diff --git a/apps/openmw/mwworld/cellstore.hpp b/apps/openmw/mwworld/cellstore.hpp index 551924857b..7eea398f6e 100644 --- a/apps/openmw/mwworld/cellstore.hpp +++ b/apps/openmw/mwworld/cellstore.hpp @@ -31,6 +31,7 @@ #include #include #include +#include #include "timestamp.hpp" #include "ptr.hpp" @@ -39,7 +40,6 @@ namespace ESM { struct Cell; struct CellState; - struct FogState; struct CellId; struct RefNum; } @@ -66,7 +66,7 @@ namespace MWWorld // Even though fog actually belongs to the player and not cells, // it makes sense to store it here since we need it once for each cell. // Note this is nullptr until the cell is explored to save some memory - std::shared_ptr mFogState; + std::unique_ptr mFogState; const ESM::Cell *mCell; State mState; @@ -254,7 +254,7 @@ namespace MWWorld void setWaterLevel (float level); - void setFog (ESM::FogState* fog); + void setFog(std::unique_ptr&& fog); ///< \note Takes ownership of the pointer ESM::FogState* getFog () const; diff --git a/extern/osg-ffmpeg-videoplayer/audiofactory.hpp b/extern/osg-ffmpeg-videoplayer/audiofactory.hpp index 023d536e2d..803c7e9cfb 100644 --- a/extern/osg-ffmpeg-videoplayer/audiofactory.hpp +++ b/extern/osg-ffmpeg-videoplayer/audiofactory.hpp @@ -10,7 +10,7 @@ namespace Video class MovieAudioFactory { public: - virtual std::shared_ptr createDecoder(VideoState* videoState) = 0; + virtual std::unique_ptr createDecoder(VideoState* videoState) = 0; virtual ~MovieAudioFactory() {} }; diff --git a/extern/osg-ffmpeg-videoplayer/videostate.hpp b/extern/osg-ffmpeg-videoplayer/videostate.hpp index d1592bd910..8fdbbe64bf 100644 --- a/extern/osg-ffmpeg-videoplayer/videostate.hpp +++ b/extern/osg-ffmpeg-videoplayer/videostate.hpp @@ -161,7 +161,7 @@ struct VideoState { osg::ref_ptr mTexture; MovieAudioFactory* mAudioFactory; - std::shared_ptr mAudioDecoder; + std::unique_ptr mAudioDecoder; ExternalClock mExternalClock;