use make_unique

This commit is contained in:
Martchus 2015-10-06 22:30:05 +02:00
parent 5510c849f7
commit 6d99dd0097
1 changed files with 7 additions and 4 deletions

View File

@ -3,6 +3,8 @@
#include "./mediafileinfo.h" #include "./mediafileinfo.h"
#include "./exceptions.h" #include "./exceptions.h"
#include <c++utilities/misc/memory.h>
#include <sstream> #include <sstream>
using namespace std; using namespace std;
@ -123,16 +125,17 @@ void AbstractAttachment::clear()
*/ */
void AbstractAttachment::setFile(const std::string &path) void AbstractAttachment::setFile(const std::string &path)
{ {
m_data.reset(new FileDataBlock(path)); m_data.reset();
FileDataBlock &data = *static_cast<FileDataBlock *>(m_data.get()); auto file = make_unique<FileDataBlock>(path);
string fileName = data.fileInfo()->fileName(); const auto fileName = file->fileInfo()->fileName();
if(!fileName.empty()) { if(!fileName.empty()) {
m_name = fileName; m_name = fileName;
} }
const char *mimeType = data.fileInfo()->mimeType(); const char *mimeType = file->fileInfo()->mimeType();
if(*mimeType) { if(*mimeType) {
m_mimeType = mimeType; m_mimeType = mimeType;
} }
m_data = move(file);
} }
} // namespace Media } // namespace Media