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

Method LoadFileToCache

src/WolfDec/3rdParty/DXArchive.cpp:3690–3721  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

3688
3689// アーカイブファイル中の指定のファイルを、クラス内のバッファに読み込む
3690void *DXArchive::LoadFileToCache( const TCHAR *FilePath )
3691{
3692 s64 FileSize ;
3693
3694 // ファイルサイズを取得する
3695 FileSize = this->GetFileSize( FilePath ) ;
3696
3697 // ファイルが無かったらエラー
3698 if( FileSize < 0 ) return NULL ;
3699
3700 // 確保しているキャッシュバッファのサイズよりも大きい場合はバッファを再確保する
3701 if( FileSize > ( s64 )this->CacheBufferSize )
3702 {
3703 // キャッシュバッファのクリア
3704 this->ClearCache() ;
3705
3706 // キャッシュバッファの再確保
3707 this->CacheBuffer = malloc( ( size_t )FileSize ) ;
3708
3709 // 確保に失敗した場合は NULL を返す
3710 if( this->CacheBuffer == NULL ) return NULL ;
3711
3712 // キャッシュバッファのサイズを保存
3713 this->CacheBufferSize = FileSize ;
3714 }
3715
3716 // ファイルをメモリに読み込む
3717 this->LoadFileToMem( FilePath, this->CacheBuffer, FileSize ) ;
3718
3719 // キャッシュバッファのアドレスを返す
3720 return this->CacheBuffer ;
3721}
3722
3723// キャッシュバッファを開放する
3724int 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