1
0
Fork 0
forked from suyu/suyu

vfs_offset: std::move file and name parameters of OffsetVfsFile

Avoids potentially unnecessary atomic reference count incrementing and
decrementing, as well as string copying.
This commit is contained in:
Lioncash 2018-07-20 00:04:51 -04:00
parent d3cfaf95c8
commit 0e9d58e82a
2 changed files with 5 additions and 3 deletions

View file

@ -2,13 +2,15 @@
// Licensed under GPLv2 or any later version // Licensed under GPLv2 or any later version
// Refer to the license.txt file included. // Refer to the license.txt file included.
#include <utility>
#include "core/file_sys/vfs_offset.h" #include "core/file_sys/vfs_offset.h"
namespace FileSys { namespace FileSys {
OffsetVfsFile::OffsetVfsFile(std::shared_ptr<VfsFile> file_, size_t size_, size_t offset_, OffsetVfsFile::OffsetVfsFile(std::shared_ptr<VfsFile> file_, size_t size_, size_t offset_,
const std::string& name_) std::string name_)
: file(file_), offset(offset_), size(size_), name(name_) {} : file(std::move(file_)), offset(offset_), size(size_), name(std::move(name_)) {}
std::string OffsetVfsFile::GetName() const { std::string OffsetVfsFile::GetName() const {
return name.empty() ? file->GetName() : name; return name.empty() ? file->GetName() : name;

View file

@ -14,7 +14,7 @@ namespace FileSys {
// the size of this wrapper. // the size of this wrapper.
struct OffsetVfsFile : public VfsFile { struct OffsetVfsFile : public VfsFile {
OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0, OffsetVfsFile(std::shared_ptr<VfsFile> file, size_t size, size_t offset = 0,
const std::string& new_name = ""); std::string new_name = "");
std::string GetName() const override; std::string GetName() const override;
size_t GetSize() const override; size_t GetSize() const override;