Don't create new IOFiles when creating a blob

...except for WBFS, which is special because
it has the ability to open multiple files.
This commit is contained in:
JosJuice
2016-12-21 12:50:15 +01:00
parent d1ea00ed88
commit 8d54bbc528
10 changed files with 93 additions and 80 deletions

View File

@ -7,6 +7,7 @@
#include <limits>
#include <memory>
#include <string>
#include <utility>
#include "Common/CDUtils.h"
#include "Common/CommonTypes.h"
@ -192,15 +193,15 @@ std::unique_ptr<IBlobReader> CreateBlobReader(const std::string& filename)
switch (magic)
{
case CISO_MAGIC:
return CISOFileReader::Create(filename);
return CISOFileReader::Create(std::move(file));
case GCZ_MAGIC:
return CompressedBlobReader::Create(filename);
return CompressedBlobReader::Create(std::move(file), filename);
case TGC_MAGIC:
return TGCFileReader::Create(filename);
return TGCFileReader::Create(std::move(file));
case WBFS_MAGIC:
return WbfsFileReader::Create(filename);
default:
return PlainFileReader::Create(filename);
return PlainFileReader::Create(std::move(file));
}
}