[XSwiftBus] Allocate big memory buffers on the heap instead of stack

This commit is contained in:
Roland Rossgotterer
2019-05-14 11:37:54 +02:00
parent 0493dafd69
commit aebf07511e

View File

@@ -147,15 +147,17 @@ namespace XSwiftBus
void CTraffic::findAllCslPackages(const std::string &path) void CTraffic::findAllCslPackages(const std::string &path)
{ {
char nameBuffer[65536]; std::vector<char> nameBuffer(65536, '\0');
char *indices[4096]; std::vector<char *> indices(4096, nullptr);
int returnedFiles; int returnedFiles;
int totalFiles;
// Remove trailing / // Remove trailing /
std::string dir = path.substr(0, path.size() - 1); std::string dir = path.substr(0, path.size() - 1);
XPLMGetDirectoryContents(dir.c_str(), 0, nameBuffer, sizeof(nameBuffer), indices, sizeof(indices) / sizeof(char*), &totalFiles, &returnedFiles); XPLMGetDirectoryContents(dir.c_str(), 0,
for (int i = 0; i < returnedFiles; i++) nameBuffer.data(), static_cast<int>(nameBuffer.size()),
indices.data(), static_cast<int>(indices.size()),
nullptr, &returnedFiles);
for (std::size_t i = 0; i < static_cast<std::size_t>(returnedFiles); i++)
{ {
std::string fileName(indices[i]); std::string fileName(indices[i]);
if (fileName == "xsb_aircraft.txt") if (fileName == "xsb_aircraft.txt")