MCPcopy Create free account
hub / github.com/Sinflower/UberWolf / LoadFileToCache

Method LoadFileToCache

3rdParty/DXLib/DXArchive.cpp:3979–4010  ·  view source on GitHub ↗

アーカイブファイル中の指定のファイルを、クラス内のバッファに読み込む

Source from the content-addressed store, hash-verified

3977
3978// アーカイブファイル中の指定のファイルを、クラス内のバッファに読み込む
3979void *DXArchive::LoadFileToCache(const TCHAR *FilePath)
3980{
3981 s64 FileSize;
3982
3983 // ファイルサイズを取得する
3984 FileSize = this->GetFileSize(FilePath);
3985
3986 // ファイルが無かったらエラー
3987 if (FileSize < 0) return NULL;
3988
3989 // 確保しているキャッシュバッファのサイズよりも大きい場合はバッファを再確保する
3990 if (FileSize > (s64)this->CacheBufferSize)
3991 {
3992 // キャッシュバッファのクリア
3993 this->ClearCache();
3994
3995 // キャッシュバッファの再確保
3996 this->CacheBuffer = malloc((size_t)FileSize);
3997
3998 // 確保に失敗した場合は NULL を返す
3999 if (this->CacheBuffer == NULL) return NULL;
4000
4001 // キャッシュバッファのサイズを保存
4002 this->CacheBufferSize = FileSize;
4003 }
4004
4005 // ファイルをメモリに読み込む
4006 this->LoadFileToMem(FilePath, this->CacheBuffer, FileSize);
4007
4008 // キャッシュバッファのアドレスを返す
4009 return this->CacheBuffer;
4010}
4011
4012// キャッシュバッファを開放する
4013int DXArchive::ClearCache(void)

Callers

nothing calls this directly

Calls 3

GetFileSizeMethod · 0.95
ClearCacheMethod · 0.95
LoadFileToMemMethod · 0.95

Tested by

no test coverage detected