sf: correct size calculation for In/OutArray

This commit is contained in:
Michael Scire
2019-12-08 12:35:07 -08:00
parent 7472bc1c7f
commit 255e46e6d2

View File

@@ -96,8 +96,9 @@ namespace ams::sf {
return this->pas.GetAddress();
}
constexpr size_t GetSizeImpl() const {
return this->pas.GetSize();
template<typename Entry>
constexpr inline size_t GetSizeImpl() const {
return this->pas.GetSize() / sizeof(Entry);
}
public:
constexpr BufferBase() : pas() { /* ... */ }
@@ -153,7 +154,7 @@ namespace ams::sf {
}
constexpr size_t GetSize() const {
return this->GetSizeImpl();
return this->GetSizeImpl<u8>();
}
};
@@ -177,7 +178,7 @@ namespace ams::sf {
}
constexpr size_t GetSize() const {
return this->GetSizeImpl();
return this->GetSizeImpl<u8>();
}
};
@@ -200,7 +201,7 @@ namespace ams::sf {
}
constexpr size_t GetSize() const {
return this->GetSizeImpl();
return this->GetSizeImpl<T>();
}
constexpr const T &operator[](size_t i) const {
@@ -227,7 +228,7 @@ namespace ams::sf {
}
constexpr size_t GetSize() const {
return this->GetSizeImpl();
return this->GetSizeImpl<T>();
}
constexpr T &operator[](size_t i) const {