- got rid of the last two TArrays in the filesystem class.

This commit is contained in:
Christoph Oelckers 2023-08-20 01:02:18 +02:00
parent 535eb9a853
commit 79e6d068a9
3 changed files with 21 additions and 24 deletions

View file

@ -42,9 +42,7 @@
#include <string.h> #include <string.h>
#include "filesystem.h" #include "filesystem.h"
#include "m_crc32.h"
#include "fs_findfile.h" #include "fs_findfile.h"
#include "md5.hpp" #include "md5.hpp"
// MACROS ------------------------------------------------------------------ // MACROS ------------------------------------------------------------------
@ -203,7 +201,7 @@ FileSystem::~FileSystem ()
void FileSystem::DeleteAll () void FileSystem::DeleteAll ()
{ {
Hashes.Clear(); Hashes.clear();
NumEntries = 0; NumEntries = 0;
// explicitly delete all manually added lumps. // explicitly delete all manually added lumps.
@ -212,11 +210,11 @@ void FileSystem::DeleteAll ()
if (frec.rfnum == -1) delete frec.lump; if (frec.rfnum == -1) delete frec.lump;
} }
FileInfo.clear(); FileInfo.clear();
for (int i = Files.Size() - 1; i >= 0; --i) for (int i = (int)Files.size() - 1; i >= 0; --i)
{ {
delete Files[i]; delete Files[i];
} }
Files.Clear(); Files.clear();
} }
//========================================================================== //==========================================================================
@ -266,7 +264,7 @@ bool FileSystem::InitMultipleFiles (std::vector<std::string>& filenames, LumpFil
if (i == (unsigned)MaxIwadIndex) MoveLumpsInFolder("after_iwad/"); if (i == (unsigned)MaxIwadIndex) MoveLumpsInFolder("after_iwad/");
std::string path = "filter/%s"; std::string path = "filter/%s";
path += Files.Last()->GetHash(); path += Files.back()->GetHash();
MoveLumpsInFolder(path.c_str()); MoveLumpsInFolder(path.c_str());
} }
@ -398,10 +396,10 @@ void FileSystem::AddFile (const char *filename, FileReader *filer, LumpFilterInf
FResourceLump *lump = resfile->GetLump(i); FResourceLump *lump = resfile->GetLump(i);
FileInfo.resize(FileInfo.size() + 1); FileInfo.resize(FileInfo.size() + 1);
FileSystem::LumpRecord* lump_p = &FileInfo.back(); FileSystem::LumpRecord* lump_p = &FileInfo.back();
lump_p->SetFromLump(Files.Size(), lump); lump_p->SetFromLump((int)Files.size(), lump);
} }
Files.Push(resfile); Files.push_back(resfile);
for (uint32_t i=0; i < resfile->LumpCount(); i++) for (uint32_t i=0; i < resfile->LumpCount(); i++)
{ {
@ -477,7 +475,7 @@ int FileSystem::CheckIfResourceFileLoaded (const char *name) noexcept
if (strrchr (name, '/') != NULL) if (strrchr (name, '/') != NULL)
{ {
for (i = 0; i < Files.Size(); ++i) for (i = 0; i < (unsigned)Files.size(); ++i)
{ {
if (stricmp (GetResourceFileFullName (i), name) == 0) if (stricmp (GetResourceFileFullName (i), name) == 0)
{ {
@ -487,7 +485,7 @@ int FileSystem::CheckIfResourceFileLoaded (const char *name) noexcept
} }
else else
{ {
for (i = 0; i < Files.Size(); ++i) for (i = 0; i < (unsigned)Files.size(); ++i)
{ {
auto pth = ExtractBaseName(GetResourceFileName(i), true); auto pth = ExtractBaseName(GetResourceFileName(i), true);
if (stricmp (pth.c_str(), name) == 0) if (stricmp (pth.c_str(), name) == 0)
@ -844,9 +842,9 @@ void FileSystem::InitHashChains (void)
unsigned int i, j; unsigned int i, j;
NumEntries = (uint32_t)FileInfo.size(); NumEntries = (uint32_t)FileInfo.size();
Hashes.Resize(8 * NumEntries); Hashes.resize(8 * NumEntries);
// Mark all buckets as empty // Mark all buckets as empty
memset(Hashes.Data(), -1, Hashes.Size() * sizeof(Hashes[0])); memset(Hashes.data(), -1, Hashes.size() * sizeof(Hashes[0]));
FirstLumpIndex = &Hashes[0]; FirstLumpIndex = &Hashes[0];
NextLumpIndex = &Hashes[NumEntries]; NextLumpIndex = &Hashes[NumEntries];
FirstLumpIndex_FullName = &Hashes[NumEntries * 2]; FirstLumpIndex_FullName = &Hashes[NumEntries * 2];
@ -887,7 +885,7 @@ void FileSystem::InitHashChains (void)
} }
} }
FileInfo.shrink_to_fit(); FileInfo.shrink_to_fit();
Files.ShrinkToFit(); Files.shrink_to_fit();
} }
//========================================================================== //==========================================================================
@ -1392,7 +1390,7 @@ FileReader FileSystem::OpenFileReader(const char* name)
FileReader *FileSystem::GetFileReader(int rfnum) FileReader *FileSystem::GetFileReader(int rfnum)
{ {
if ((uint32_t)rfnum >= Files.Size()) if ((uint32_t)rfnum >= Files.size())
{ {
return NULL; return NULL;
} }
@ -1412,7 +1410,7 @@ const char *FileSystem::GetResourceFileName (int rfnum) const noexcept
{ {
const char *name, *slash; const char *name, *slash;
if ((uint32_t)rfnum >= Files.Size()) if ((uint32_t)rfnum >= Files.size())
{ {
return NULL; return NULL;
} }
@ -1429,7 +1427,7 @@ const char *FileSystem::GetResourceFileName (int rfnum) const noexcept
int FileSystem::GetFirstEntry (int rfnum) const noexcept int FileSystem::GetFirstEntry (int rfnum) const noexcept
{ {
if ((uint32_t)rfnum >= Files.Size()) if ((uint32_t)rfnum >= Files.size())
{ {
return 0; return 0;
} }
@ -1444,7 +1442,7 @@ int FileSystem::GetFirstEntry (int rfnum) const noexcept
int FileSystem::GetLastEntry (int rfnum) const noexcept int FileSystem::GetLastEntry (int rfnum) const noexcept
{ {
if ((uint32_t)rfnum >= Files.Size()) if ((uint32_t)rfnum >= Files.size())
{ {
return 0; return 0;
} }
@ -1459,7 +1457,7 @@ int FileSystem::GetLastEntry (int rfnum) const noexcept
int FileSystem::GetEntryCount (int rfnum) const noexcept int FileSystem::GetEntryCount (int rfnum) const noexcept
{ {
if ((uint32_t)rfnum >= Files.Size()) if ((uint32_t)rfnum >= Files.size())
{ {
return 0; return 0;
} }
@ -1478,7 +1476,7 @@ int FileSystem::GetEntryCount (int rfnum) const noexcept
const char *FileSystem::GetResourceFileFullName (int rfnum) const noexcept const char *FileSystem::GetResourceFileFullName (int rfnum) const noexcept
{ {
if ((unsigned int)rfnum >= Files.Size()) if ((unsigned int)rfnum >= Files.size())
{ {
return nullptr; return nullptr;
} }

View file

@ -9,7 +9,6 @@
#include "files.h" #include "files.h"
#include "tarray.h"
#include "cmdlib.h" #include "cmdlib.h"
#include "resourcefile.h" #include "resourcefile.h"
@ -153,7 +152,7 @@ public:
int GetNumWads() const int GetNumWads() const
{ {
return Files.Size(); return (int)Files.size();
} }
void AddLump(FResourceLump* lump); void AddLump(FResourceLump* lump);
@ -167,10 +166,10 @@ protected:
struct LumpRecord; struct LumpRecord;
TArray<FResourceFile *> Files; std::vector<FResourceFile *> Files;
std::vector<LumpRecord> FileInfo; std::vector<LumpRecord> FileInfo;
TArray<uint32_t> Hashes; // one allocation for all hash lists. std::vector<uint32_t> Hashes; // one allocation for all hash lists.
uint32_t *FirstLumpIndex; // [RH] Hashing stuff moved out of lumpinfo structure uint32_t *FirstLumpIndex; // [RH] Hashing stuff moved out of lumpinfo structure
uint32_t *NextLumpIndex; uint32_t *NextLumpIndex;

View file

@ -106,7 +106,7 @@ FFont::FFont (const char *name, const char *nametemplate, const char *filetempla
size_t index; size_t index;
for(index = 0; index < folderdata.size(); index++) for(index = 0; index < folderdata.size(); index++)
{ {
if (infpath.CompareNoCase(folderdata[i].name) == 0) break; if (infpath.CompareNoCase(folderdata[index].name) == 0) break;
} }
if (index < folderdata.size()) if (index < folderdata.size())