summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/DiscScrubber.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2015-10-17 17:30:23 +0200
committerJosJuice <josjuice@gmail.com>2015-10-17 17:30:23 +0200
commit1ec9c6393a43df9a61385c14f30ea2bae83bc0ec (patch)
treeded2d1f146cc99ae714af63f68e5eb6b84def7fa /Source/Core/DiscIO/DiscScrubber.cpp
parent05e339a605be5f5ccd0f710af774fa08eadd65a2 (diff)
Don't reserve space for directories when scrubbing
The offset in a directory FileInfo is an FST offset, not a disc offset. Treating it as a disc offset doesn't make sense. Directories don't take up space outside of the FST, so they don't need to be marked as used. The old behavior may have prevented some scrubbable areas from being scrubbed.
Diffstat (limited to 'Source/Core/DiscIO/DiscScrubber.cpp')
-rw-r--r--Source/Core/DiscIO/DiscScrubber.cpp5
1 files changed, 1 insertions, 4 deletions
diff --git a/Source/Core/DiscIO/DiscScrubber.cpp b/Source/Core/DiscIO/DiscScrubber.cpp
index e669a5f4b3..e6865b3373 100644
--- a/Source/Core/DiscIO/DiscScrubber.cpp
+++ b/Source/Core/DiscIO/DiscScrubber.cpp
@@ -312,10 +312,7 @@ bool ParsePartitionData(SPartition& _rPartition)
for (SFileInfo file : filesystem->GetFileList())
{
DEBUG_LOG(DISCIO, "%s", file.m_FullPath.empty() ? "/" : file.m_FullPath.c_str());
- // Just 1byte for directory? - it will end up reserving a cluster this way
- if (file.m_NameOffset & 0x1000000)
- MarkAsUsedE(_rPartition.Offset + _rPartition.Header.DataOffset, file.m_Offset, 1);
- else
+ if ((file.m_NameOffset & 0x1000000) == 0)
MarkAsUsedE(_rPartition.Offset + _rPartition.Header.DataOffset, file.m_Offset, file.m_FileSize);
}
}