Browse Source
Previously we were passing the path to `GetFileSize`, which resulted in opening and closing the file twice.pull/2891/head
4 changed files with 71 additions and 54 deletions
@ -1,38 +0,0 @@ |
|||||||
#include "load_file.hpp" |
|
||||||
|
|
||||||
#include "diablo.h" |
|
||||||
#include "storm/storm.h" |
|
||||||
|
|
||||||
namespace devilution { |
|
||||||
|
|
||||||
size_t GetFileSize(const char *pszName) |
|
||||||
{ |
|
||||||
HANDLE file; |
|
||||||
if (!SFileOpenFile(pszName, &file)) { |
|
||||||
if (!gbQuietMode) |
|
||||||
app_fatal("GetFileSize - SFileOpenFile failed for file:\n%s", pszName); |
|
||||||
return 0; |
|
||||||
} |
|
||||||
const size_t fileLen = SFileGetFileSize(file); |
|
||||||
SFileCloseFileThreadSafe(file); |
|
||||||
|
|
||||||
return fileLen; |
|
||||||
} |
|
||||||
|
|
||||||
void LoadFileData(const char *pszName, byte *buffer, size_t fileLen) |
|
||||||
{ |
|
||||||
HANDLE file; |
|
||||||
if (!SFileOpenFile(pszName, &file)) { |
|
||||||
if (!gbQuietMode) |
|
||||||
app_fatal("LoadFileData - SFileOpenFile failed for file:\n%s", pszName); |
|
||||||
return; |
|
||||||
} |
|
||||||
|
|
||||||
if (fileLen == 0) |
|
||||||
app_fatal("Zero length SFILE:\n%s", pszName); |
|
||||||
|
|
||||||
SFileReadFileThreadSafe(file, buffer, fileLen); |
|
||||||
SFileCloseFileThreadSafe(file); |
|
||||||
} |
|
||||||
|
|
||||||
} // namespace devilution
|
|
||||||
Loading…
Reference in new issue