summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorLioncash <mai.iam2048@gmail.com>2023-06-08 12:49:35 -0400
committerLioncash <mai.iam2048@gmail.com>2023-06-08 12:59:43 -0400
commit1044bc40ca87c5a3bfcb1be038e47861f2bca0d8 (patch)
treeec6950b036a04b4081406f751e2a10bcb7a9d897 /Source
parent78f5c5f8d23f8dc8e5650d776b5883252a31385d (diff)
GCMemcardUtils: Make use of std::span where applicable
Generifies bits of the interface so that some functions aren't explicitly tied down to only using std::vector.
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCMemcardUtils.cpp6
-rw-r--r--Source/Core/Core/HW/GCMemcard/GCMemcardUtils.h9
-rw-r--r--Source/Core/DolphinQt/GCMemcardManager.cpp2
-rw-r--r--Source/Core/DolphinQt/GCMemcardManager.h5
4 files changed, 12 insertions, 10 deletions
diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.cpp b/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.cpp
index c7cc7942f8..e16b452774 100644
--- a/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.cpp
+++ b/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.cpp
@@ -75,7 +75,7 @@ bool HasSameIdentity(const DEntry& lhs, const DEntry& rhs)
return true;
}
-bool HasDuplicateIdentity(const std::vector<Savefile>& savefiles)
+bool HasDuplicateIdentity(std::span<const Savefile> savefiles)
{
for (size_t i = 0; i < savefiles.size(); ++i)
{
@@ -338,7 +338,7 @@ std::string GetDefaultExtension(SavefileFormat format)
}
}
-std::vector<Savefile> GetSavefiles(const GCMemcard& card, const std::vector<u8>& file_indices)
+std::vector<Savefile> GetSavefiles(const GCMemcard& card, std::span<const u8> file_indices)
{
std::vector<Savefile> files;
files.reserve(file_indices.size());
@@ -352,7 +352,7 @@ std::vector<Savefile> GetSavefiles(const GCMemcard& card, const std::vector<u8>&
return files;
}
-size_t GetBlockCount(const std::vector<Savefile>& savefiles)
+size_t GetBlockCount(std::span<const Savefile> savefiles)
{
size_t block_count = 0;
for (const Savefile& savefile : savefiles)
diff --git a/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.h b/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.h
index 4aa74fdce9..b4d0624888 100644
--- a/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.h
+++ b/Source/Core/Core/HW/GCMemcard/GCMemcardUtils.h
@@ -3,8 +3,11 @@
#pragma once
+#include <cstddef>
+#include <span>
#include <string>
#include <variant>
+#include <vector>
#include "Core/HW/GCMemcard/GCMemcard.h"
@@ -13,7 +16,7 @@ namespace Memcard
bool HasSameIdentity(const DEntry& lhs, const DEntry& rhs);
// Check if any two given savefiles have the same identity.
-bool HasDuplicateIdentity(const std::vector<Savefile>& savefiles);
+bool HasDuplicateIdentity(std::span<const Savefile> savefiles);
enum class ReadSavefileErrorCode
{
@@ -43,8 +46,8 @@ std::string GenerateFilename(const DEntry& entry);
std::string GetDefaultExtension(SavefileFormat format);
// Reads multiple savefiles from a card. Returns empty vector if even a single file can't be read.
-std::vector<Savefile> GetSavefiles(const GCMemcard& card, const std::vector<u8>& file_indices);
+std::vector<Savefile> GetSavefiles(const GCMemcard& card, std::span<const u8> file_indices);
// Gets the total amount of blocks the given saves use.
-size_t GetBlockCount(const std::vector<Savefile>& savefiles);
+size_t GetBlockCount(std::span<const Savefile> savefiles);
} // namespace Memcard
diff --git a/Source/Core/DolphinQt/GCMemcardManager.cpp b/Source/Core/DolphinQt/GCMemcardManager.cpp
index 8f7646774a..8bbe9061dc 100644
--- a/Source/Core/DolphinQt/GCMemcardManager.cpp
+++ b/Source/Core/DolphinQt/GCMemcardManager.cpp
@@ -502,7 +502,7 @@ void GCMemcardManager::ExportFiles(Memcard::SavefileFormat format)
}
}
-void GCMemcardManager::ImportFiles(Slot slot, const std::vector<Memcard::Savefile>& savefiles)
+void GCMemcardManager::ImportFiles(Slot slot, std::span<const Memcard::Savefile> savefiles)
{
auto& card = m_slot_memcard[slot];
if (!card)
diff --git a/Source/Core/DolphinQt/GCMemcardManager.h b/Source/Core/DolphinQt/GCMemcardManager.h
index 838a7750d7..dcc4b3324b 100644
--- a/Source/Core/DolphinQt/GCMemcardManager.h
+++ b/Source/Core/DolphinQt/GCMemcardManager.h
@@ -3,10 +3,9 @@
#pragma once
-#include <array>
#include <map>
#include <memory>
-#include <utility>
+#include <span>
#include <vector>
#include <QDialog>
@@ -62,7 +61,7 @@ private:
std::vector<u8> GetSelectedFileIndices();
- void ImportFiles(ExpansionInterface::Slot slot, const std::vector<Memcard::Savefile>& savefiles);
+ void ImportFiles(ExpansionInterface::Slot slot, std::span<const Memcard::Savefile> savefiles);
void CopyFiles();
void ImportFile();