Permalink
Browse files

Refactor DiscScrubber::MarkAsUsedE

  • Loading branch information...
JosJuice committed Sep 20, 2018
1 parent 40b7fab commit ce3e0fc091efccf84145fead400edf73f8effd8e
Showing with 9 additions and 3 deletions.
  1. +8 −3 Source/Core/DiscIO/DiscScrubber.cpp
  2. +1 −0 Source/Core/DiscIO/DiscScrubber.h
@@ -106,10 +106,9 @@ void DiscScrubber::MarkAsUsed(u64 offset, u64 size)
}
}
// Compensate for 0x400 (SHA-1) per 0x8000 (cluster), and round to whole clusters
void DiscScrubber::MarkAsUsedE(u64 partition_data_offset, u64 offset, u64 size)
{
u64 first_cluster_start = offset / 0x7c00 * CLUSTER_SIZE + partition_data_offset;
u64 first_cluster_start = ToClusterOffset(offset) + partition_data_offset;
u64 last_cluster_end;
if (size == 0)
@@ -119,12 +118,18 @@ void DiscScrubber::MarkAsUsedE(u64 partition_data_offset, u64 offset, u64 size)
}
else
{
last_cluster_end = ((offset + size - 1) / 0x7c00 + 1) * CLUSTER_SIZE + partition_data_offset;
last_cluster_end = ToClusterOffset(offset + size - 1) + CLUSTER_SIZE + partition_data_offset;
}
MarkAsUsed(first_cluster_start, last_cluster_end - first_cluster_start);
}
// Compensate for 0x400 (SHA-1) per 0x8000 (cluster), and round to whole clusters
u64 DiscScrubber::ToClusterOffset(u64 offset) const
{
return offset / 0x7c00 * CLUSTER_SIZE;
}
// Helper functions for reading the BE volume
bool DiscScrubber::ReadFromVolume(u64 offset, u32& buffer, const Partition& partition)
{
@@ -61,6 +61,7 @@ class DiscScrubber final
void MarkAsUsed(u64 offset, u64 size);
void MarkAsUsedE(u64 partition_data_offset, u64 offset, u64 size);
u64 ToClusterOffset(u64 offset) const;
bool ReadFromVolume(u64 offset, u32& buffer, const Partition& partition);
bool ReadFromVolume(u64 offset, u64& buffer, const Partition& partition);
bool ParseDisc();

0 comments on commit ce3e0fc

Please sign in to comment.