mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-29 15:22:08 +00:00
- fixed memory leaks in file system management
This commit is contained in:
parent
bdd02d9b2c
commit
7f61266621
3 changed files with 5 additions and 3 deletions
|
@ -194,7 +194,7 @@ static void PrintLastError (FileSystemMessageFunc Printf);
|
|||
|
||||
FileSystem::FileSystem()
|
||||
{
|
||||
stringpool = new StringPool;
|
||||
stringpool = new StringPool(true);
|
||||
stringpool->shared = true; // will be used by all owned resource files.
|
||||
}
|
||||
|
||||
|
@ -219,6 +219,8 @@ void FileSystem::DeleteAll ()
|
|||
delete Files[i];
|
||||
}
|
||||
Files.clear();
|
||||
delete stringpool;
|
||||
stringpool = nullptr;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
|
|
@ -8,7 +8,7 @@ class StringPool
|
|||
friend class FileSystem;
|
||||
friend class FResourceFile;
|
||||
private:
|
||||
StringPool(size_t blocksize = 10*1024) : TopBlock(nullptr), FreeBlocks(nullptr), BlockSize(blocksize) {}
|
||||
StringPool(bool _shared, size_t blocksize = 10*1024) : TopBlock(nullptr), FreeBlocks(nullptr), BlockSize(blocksize), shared(_shared) {}
|
||||
public:
|
||||
~StringPool();
|
||||
const char* Strdup(const char*);
|
||||
|
|
|
@ -332,7 +332,7 @@ FResourceFile *FResourceFile::OpenDirectory(const char *filename, LumpFilterInfo
|
|||
|
||||
FResourceFile::FResourceFile(const char *filename, StringPool* sp)
|
||||
{
|
||||
stringpool = sp ? sp : new StringPool;
|
||||
stringpool = sp ? sp : new StringPool(false);
|
||||
FileName = stringpool->Strdup(filename);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue