Browse Source

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

Avoids potentially unnecessary atomic reference count incrementing and
decrementing, as well as string copying.
nce_cpp
Lioncash 8 years ago
parent
commit
02e5e6fba3
  1. 6
      src/core/file_sys/vfs_offset.cpp
  2. 2
      src/core/file_sys/vfs_offset.h

6
src/core/file_sys/vfs_offset.cpp

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

2
src/core/file_sys/vfs_offset.h

@ -14,7 +14,7 @@ namespace FileSys {
// the size of this wrapper.
struct OffsetVfsFile : public VfsFile {
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;
size_t GetSize() const override;

Loading…
Cancel
Save