Skip to content

Commit a60617b

Browse files
committed
Better handling of opendir/readdir and savefiles
1 parent 4e96d13 commit a60617b

6 files changed

Lines changed: 241 additions & 166 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99

1010
* Savestates now restore better file descriptors
1111
* Fix SDL getting window dimensions of zero
12+
* Better handling of opendir/readdir and savefiles
1213

1314
## [1.4.7] - 2025-10-06
1415
### Added

src/library/fileio/FileHandleList.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ void updateAllFiles()
108108
{
109109
PROFILE_SCOPE("File Handles", PROFILER_INFO_FRAME);
110110

111+
GlobalNative gn;
112+
111113
auto& filehandles = getFileList();
112114
filehandles.clear();
113115

src/library/fileio/SaveFileList.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,7 @@ bool isSaveFileRemoved(const char *file)
330330
return false;
331331
}
332332

333-
std::string getSaveFileInsideDir(std::string dir, int n)
333+
const SaveFile* getSaveFileInsideDir(std::string dir, int n)
334334
{
335335
std::lock_guard<std::mutex> lock(getSaveFileListMutex());
336336

@@ -349,12 +349,12 @@ std::string getSaveFileInsideDir(std::string dir, int n)
349349

350350
/* Skip based on index */
351351
if (index == n)
352-
return relfile;
352+
return savefile.get();
353353

354354
index++;
355355
}
356356

357-
return "";
357+
return nullptr;
358358
}
359359

360360
}

src/library/fileio/SaveFileList.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ int getSaveFileFd(const char *file);
7272
/* Get if savefile was removed */
7373
bool isSaveFileRemoved(const char *file);
7474

75-
/* Get the n-th save file inside directory `dir`. Returns empty string if not present */
76-
std::string getSaveFileInsideDir(std::string dir, int n);
75+
/* Get the n-th save file inside directory `dir`. Returns nullptr if not present */
76+
const SaveFile* getSaveFileInsideDir(std::string dir, int n);
7777

7878
}
7979

0 commit comments

Comments
 (0)