diff --git a/Core/FileSystems/FileSystem.h b/Core/FileSystems/FileSystem.h index a616d4bb56..c9e7e0b0ad 100644 --- a/Core/FileSystems/FileSystem.h +++ b/Core/FileSystems/FileSystem.h @@ -76,7 +76,11 @@ private: struct PSPFileInfo { PSPFileInfo() - : size(0), access(0), exists(false), type(FILETYPE_NORMAL), isOnSectorSystem(false), startSector(0), numSectors(0) {} + : size(0), access(0), exists(false), type(FILETYPE_NORMAL), isOnSectorSystem(false), startSector(0), numSectors(0), sectorSize(0) { + memset(&ctime, 0, sizeof(ctime)); + memset(&atime, 0, sizeof(atime)); + memset(&mtime, 0, sizeof(mtime)); + } void DoState(PointerWrap &p); diff --git a/Core/FileSystems/ISOFileSystem.cpp b/Core/FileSystems/ISOFileSystem.cpp index 739d7721e6..ac3bcc8c96 100644 --- a/Core/FileSystems/ISOFileSystem.cpp +++ b/Core/FileSystems/ISOFileSystem.cpp @@ -208,7 +208,7 @@ void ISOFileSystem::ReadDirectory(TreeEntry *root) { root->valid = true; // Prevents re-reading return; } - lastReadBlock_ = secnum; + lastReadBlock_ = secnum; // Hm, this could affect timing... but lazy loading is probably more realistic. for (int offset = 0; offset < 2048; ) { DirectoryEntry &dir = *(DirectoryEntry *)&theSector[offset]; @@ -248,6 +248,7 @@ void ISOFileSystem::ReadDirectory(TreeEntry *root) { entry->parent = root; entry->startsector = dir.firstDataSector(); entry->dirsize = dir.dataLength(); + entry->valid = isFile; // Can pre-mark as valid if file, as we don't recurse into those. // Let's not excessively spam the log - I commented this line out. //DEBUG_LOG(FILESYS, "%s: %s %08x %08x %i", e->isDirectory?"D":"F", e->name.c_str(), dir.firstDataSectorLE, e->startingPosition, e->startingPosition); @@ -467,8 +468,7 @@ size_t ISOFileSystem::ReadFile(u32 handle, u8 *pointer, s64 size) return ReadFile(handle, pointer, size, ignored); } -size_t ISOFileSystem::ReadFile(u32 handle, u8 *pointer, s64 size, int &usec) -{ +size_t ISOFileSystem::ReadFile(u32 handle, u8 *pointer, s64 size, int &usec) { EntryMap::iterator iter = entries.find(handle); if (iter != entries.end()) { OpenFileEntry &e = iter->second; @@ -629,7 +629,7 @@ PSPFileInfo ISOFileSystem::GetFileInfo(std::string filename) { std::vector ISOFileSystem::GetDirListing(std::string path) { std::vector myVector; TreeEntry *entry = GetFromPath(path); - if (! entry) + if (!entry) return myVector; const std::string dot("."); @@ -649,6 +649,11 @@ std::vector ISOFileSystem::GetDirListing(std::string path) { x.type = e->isDirectory ? FILETYPE_DIRECTORY : FILETYPE_NORMAL; x.isOnSectorSystem = true; x.startSector = e->startingPosition/2048; + x.sectorSize = sectorSize; + x.numSectors = (e->size + sectorSize - 1) / sectorSize; + memset(&x.atime, 0, sizeof(x.atime)); + memset(&x.mtime, 0, sizeof(x.mtime)); + memset(&x.ctime, 0, sizeof(x.ctime)); myVector.push_back(x); } return myVector; @@ -670,8 +675,7 @@ std::string ISOFileSystem::EntryFullPath(TreeEntry *e) { path.resize(fullLen); cur = e; - while (cur != NULL && cur != treeroot) - { + while (cur != NULL && cur != treeroot) { path.replace(fullLen - cur->name.size(), cur->name.size(), cur->name); path.replace(fullLen - cur->name.size() - 1, 1, "/"); fullLen -= 1 + cur->name.size(); diff --git a/Core/HLE/sceIo.cpp b/Core/HLE/sceIo.cpp index f0dc09da74..9cf1c7b427 100644 --- a/Core/HLE/sceIo.cpp +++ b/Core/HLE/sceIo.cpp @@ -60,14 +60,14 @@ extern "C" { // For headless screenshots. #include "Core/HLE/sceDisplay.h" -const int ERROR_ERRNO_FILE_NOT_FOUND = 0x80010002; -const int ERROR_ERRNO_IO_ERROR = 0x80010005; -const int ERROR_ERRNO_FILE_ALREADY_EXISTS = 0x80010011; -const int ERROR_MEMSTICK_DEVCTL_BAD_PARAMS = 0x80220081; -const int ERROR_MEMSTICK_DEVCTL_TOO_MANY_CALLBACKS = 0x80220082; -const int ERROR_KERNEL_BAD_FILE_DESCRIPTOR = 0x80020323; +static const int ERROR_ERRNO_FILE_NOT_FOUND = 0x80010002; +static const int ERROR_ERRNO_IO_ERROR = 0x80010005; +static const int ERROR_ERRNO_FILE_ALREADY_EXISTS = 0x80010011; +static const int ERROR_MEMSTICK_DEVCTL_BAD_PARAMS = 0x80220081; +static const int ERROR_MEMSTICK_DEVCTL_TOO_MANY_CALLBACKS = 0x80220082; +static const int ERROR_KERNEL_BAD_FILE_DESCRIPTOR = 0x80020323; -const int ERROR_PGD_INVALID_HEADER = 0x80510204; +static const int ERROR_PGD_INVALID_HEADER = 0x80510204; /* diff --git a/Core/PSPLoaders.cpp b/Core/PSPLoaders.cpp index b0e51d6ca2..e6eaa00c74 100644 --- a/Core/PSPLoaders.cpp +++ b/Core/PSPLoaders.cpp @@ -227,8 +227,7 @@ bool Load_PSP_ISO(FileLoader *fileLoader, std::string *error_string) } pspFileSystem.CloseFile(fd); } - if (!hasEncrypted) - { + if (!hasEncrypted) { // try unencrypted BOOT.BIN bootpath = "disc0:/PSP_GAME/SYSDIR/BOOT.BIN"; }