Support NULL in dir parameter in mj_addFileVFS.

Fixes #2839.

PiperOrigin-RevId: 807208005
Change-Id: I8def3b1e388dc19fa2fa8a92d53abef30dee5b88
This commit is contained in:
Kyle Bayes
2025-09-15 05:59:06 -07:00
committed by Copybara-Service
parent dd398f47b9
commit ac4874226c
2 changed files with 14 additions and 1 deletions
+2 -1
View File
@@ -219,7 +219,8 @@ int mj_addFileVFS(mjVFS* vfs, const char* directory, const char* filename) {
VFS* cvfs = GetVFSImpl(vfs);
// make full name
FilePath fullname = FilePath(directory, filename);
const char* dir = directory != nullptr ? directory : "";
FilePath fullname = FilePath(dir, filename);
// strip path
FilePath newname = StripPath(filename);
+12
View File
@@ -106,6 +106,18 @@ TEST_F(UserVfsTest, AddFileStripPath) {
mj_deleteVFS(&vfs);
}
TEST_F(UserVfsTest, NullDirectory) {
mjVFS vfs;
mj_defaultVFS(&vfs);
const std::string file = "engine/testdata/actuation/activation.xml";
const std::string path = GetTestDataFilePath(file);
mj_addFileVFS(&vfs, nullptr, path.c_str());
EXPECT_TRUE(HasFile(&vfs, "activation.xml"));
mj_deleteVFS(&vfs);
}
TEST_F(UserVfsTest, AddFileRepeat) {
mjVFS vfs;
mj_defaultVFS(&vfs);