@@ -68,8 +68,8 @@ namespace RTE {
68
68
.def (" RangeRand" , &LuaStateWrapper::RangeRand)
69
69
.def (" PosRand" , &LuaStateWrapper::PosRand)
70
70
.def (" NormalRand" , &LuaStateWrapper::NormalRand)
71
- .def (" GetDirectoryList" , &LuaStateWrapper::DirectoryList, luabind::return_stl_iterator)
72
- .def (" GetFileList" , &LuaStateWrapper::FileList, luabind::return_stl_iterator)
71
+ .def (" GetDirectoryList" , &LuaStateWrapper::DirectoryList, luabind::adopt (luabind::return_value) + luabind:: return_stl_iterator)
72
+ .def (" GetFileList" , &LuaStateWrapper::FileList, luabind::adopt (luabind::return_value) + luabind:: return_stl_iterator)
73
73
.def (" FileExists" , &LuaStateWrapper::FileExists)
74
74
.def (" FileOpen" , &LuaStateWrapper::FileOpen)
75
75
.def (" FileClose" , &LuaStateWrapper::FileClose)
@@ -273,8 +273,8 @@ namespace RTE {
273
273
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
274
274
275
275
// Passthrough LuaMan Functions
276
- const std::vector<std::string>& LuaStateWrapper::DirectoryList (const std::string& relativeDirectory) { return g_LuaMan.DirectoryList (relativeDirectory); }
277
- const std::vector<std::string>& LuaStateWrapper::FileList (const std::string& relativeDirectory) { return g_LuaMan.FileList (relativeDirectory); }
276
+ const std::vector<std::string>* LuaStateWrapper::DirectoryList (const std::string& relativeDirectory) { return g_LuaMan.DirectoryList (relativeDirectory); }
277
+ const std::vector<std::string>* LuaStateWrapper::FileList (const std::string& relativeDirectory) { return g_LuaMan.FileList (relativeDirectory); }
278
278
bool LuaStateWrapper::FileExists (const std::string &fileName) { return g_LuaMan.FileExists (fileName); }
279
279
int LuaStateWrapper::FileOpen (const std::string& fileName, const std::string& accessMode) { return g_LuaMan.FileOpen (fileName, accessMode); }
280
280
void LuaStateWrapper::FileClose (int fileIndex) { return g_LuaMan.FileClose (fileIndex); }
@@ -923,24 +923,22 @@ namespace RTE {
923
923
924
924
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
925
925
926
- const std::vector<std::string> & LuaMan::DirectoryList (const std::string &filePath) {
927
- thread_local std::vector<std::string> directoryPaths;
928
- directoryPaths.clear ();
926
+ const std::vector<std::string> * LuaMan::DirectoryList (const std::string &filePath) {
927
+ auto *directoryPaths = new std::vector<std::string>();
929
928
930
929
for (const std::filesystem::directory_entry &directoryEntry : std::filesystem::directory_iterator (System::GetWorkingDirectory () + filePath)) {
931
- if (directoryEntry.is_directory ()) { directoryPaths. emplace_back (directoryEntry.path ().filename ().generic_string ()); }
930
+ if (directoryEntry.is_directory ()) { directoryPaths-> emplace_back (directoryEntry.path ().filename ().generic_string ()); }
932
931
}
933
932
return directoryPaths;
934
933
}
935
934
936
935
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
937
936
938
- const std::vector<std::string> & LuaMan::FileList (const std::string &filePath) {
939
- thread_local std::vector<std::string> filePaths;
940
- filePaths.clear ();
937
+ const std::vector<std::string> * LuaMan::FileList (const std::string &filePath) {
938
+ auto *filePaths = new std::vector<std::string>();
941
939
942
940
for (const std::filesystem::directory_entry &directoryEntry : std::filesystem::directory_iterator (System::GetWorkingDirectory () + filePath)) {
943
- if (directoryEntry.is_regular_file ()) { filePaths. emplace_back (directoryEntry.path ().filename ().generic_string ()); }
941
+ if (directoryEntry.is_regular_file ()) { filePaths-> emplace_back (directoryEntry.path ().filename ().generic_string ()); }
944
942
}
945
943
return filePaths;
946
944
}
0 commit comments