Don't call Move if there is no need to move

This commit is contained in:
Cheng Zhao 2015-12-02 11:04:47 +08:00
parent c691094aa1
commit c3645e3f95
2 changed files with 12 additions and 9 deletions

View file

@ -28,23 +28,26 @@ ScopedTemporaryFile::~ScopedTemporaryFile() {
}
}
bool ScopedTemporaryFile::Init(const base::FilePath::StringType ext) {
bool ScopedTemporaryFile::Init(const base::FilePath::StringType& ext) {
if (!path_.empty())
return true;
base::ThreadRestrictions::ScopedAllowIO allow_io;
base::FilePath temporaryPath_;
if (!base::CreateTemporaryFile(&temporaryPath_)) {
base::FilePath temp_path;
if (!base::CreateTemporaryFile(&temp_path))
return false;
}
path_ = temporaryPath_.AddExtension(ext);
return base::Move(temporaryPath_, path_);
if (ext.empty())
return true;
// Keep the original extension.
path_ = temp_path.AddExtension(ext);
return base::Move(temp_path, path_);
}
bool ScopedTemporaryFile::InitFromFile(base::File* src,
const base::FilePath::StringType ext,
const base::FilePath::StringType& ext,
uint64 offset, uint64 size) {
if (!src->IsValid())
return false;

View file

@ -23,11 +23,11 @@ class ScopedTemporaryFile {
virtual ~ScopedTemporaryFile();
// Init an empty temporary file with a certain extension.
bool Init(const base::FilePath::StringType ext);
bool Init(const base::FilePath::StringType& ext);
// Init an temporary file and fill it with content of |path|.
bool InitFromFile(base::File* src,
const base::FilePath::StringType ext,
const base::FilePath::StringType& ext,
uint64 offset, uint64 size);
base::FilePath path() const { return path_; }