mirror of https://github.com/PCSX2/pcsx2.git
FileSystem: Make FILE* unique pointers use a functor deleter
This commit is contained in:
parent
d6c5903569
commit
240586875c
|
@ -672,7 +672,7 @@ int FileSystem::OpenFDFile(const char* filename, int flags, int mode, Error* err
|
||||||
|
|
||||||
FileSystem::ManagedCFilePtr FileSystem::OpenManagedCFile(const char* filename, const char* mode, Error* error)
|
FileSystem::ManagedCFilePtr FileSystem::OpenManagedCFile(const char* filename, const char* mode, Error* error)
|
||||||
{
|
{
|
||||||
return ManagedCFilePtr(OpenCFile(filename, mode, error), [](std::FILE* fp) { std::fclose(fp); });
|
return ManagedCFilePtr(OpenCFile(filename, mode, error));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::FILE* FileSystem::OpenSharedCFile(const char* filename, const char* mode, FileShareMode share_mode, Error* error)
|
std::FILE* FileSystem::OpenSharedCFile(const char* filename, const char* mode, FileShareMode share_mode, Error* error)
|
||||||
|
@ -717,7 +717,7 @@ std::FILE* FileSystem::OpenSharedCFile(const char* filename, const char* mode, F
|
||||||
|
|
||||||
FileSystem::ManagedCFilePtr FileSystem::OpenManagedSharedCFile(const char* filename, const char* mode, FileShareMode share_mode, Error* error)
|
FileSystem::ManagedCFilePtr FileSystem::OpenManagedSharedCFile(const char* filename, const char* mode, FileShareMode share_mode, Error* error)
|
||||||
{
|
{
|
||||||
return ManagedCFilePtr(OpenSharedCFile(filename, mode, share_mode, error), [](std::FILE* fp) { std::fclose(fp); });
|
return ManagedCFilePtr(OpenSharedCFile(filename, mode, share_mode, error));
|
||||||
}
|
}
|
||||||
|
|
||||||
int FileSystem::FSeek64(std::FILE* fp, s64 offset, int whence)
|
int FileSystem::FSeek64(std::FILE* fp, s64 offset, int whence)
|
||||||
|
|
|
@ -102,8 +102,17 @@ namespace FileSystem
|
||||||
/// Rename file
|
/// Rename file
|
||||||
bool RenamePath(const char* OldPath, const char* NewPath);
|
bool RenamePath(const char* OldPath, const char* NewPath);
|
||||||
|
|
||||||
|
/// Deleter functor for managed file pointers
|
||||||
|
struct FileDeleter
|
||||||
|
{
|
||||||
|
void operator()(std::FILE* fp)
|
||||||
|
{
|
||||||
|
std::fclose(fp);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/// open files
|
/// open files
|
||||||
using ManagedCFilePtr = std::unique_ptr<std::FILE, void (*)(std::FILE*)>;
|
using ManagedCFilePtr = std::unique_ptr<std::FILE, FileDeleter>;
|
||||||
ManagedCFilePtr OpenManagedCFile(const char* filename, const char* mode, Error* error = nullptr);
|
ManagedCFilePtr OpenManagedCFile(const char* filename, const char* mode, Error* error = nullptr);
|
||||||
std::FILE* OpenCFile(const char* filename, const char* mode, Error* error = nullptr);
|
std::FILE* OpenCFile(const char* filename, const char* mode, Error* error = nullptr);
|
||||||
int FSeek64(std::FILE* fp, s64 offset, int whence);
|
int FSeek64(std::FILE* fp, s64 offset, int whence);
|
||||||
|
|
Loading…
Reference in New Issue