mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 19:25:49 +08:00
[XSwiftBus] Allocate big memory buffers on the heap instead of stack
This commit is contained in:
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user