Skip to content

Commit

Permalink
Fix: Use StaticVectors in base64 AVX/SSE functions
Browse files Browse the repository at this point in the history
  • Loading branch information
spnda committed Feb 2, 2024
1 parent 33f93a9 commit 365b0f3
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/base64.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -193,11 +193,11 @@ namespace fastgltf::base64 {
fallback_decode_inplace(encoded.substr(pos, encodedSize), out, padding);
}

[[gnu::target("avx2")]] std::vector<std::uint8_t> fg::base64::avx2_decode(std::string_view encoded) {
[[gnu::target("avx2")]] fg::StaticVector<std::uint8_t> fg::base64::avx2_decode(std::string_view encoded) {
const auto encodedSize = encoded.size();
const auto padding = getPadding(encoded);

std::vector<std::uint8_t> ret(getOutputSize(encodedSize, padding));
fg::StaticVector<std::uint8_t> ret(getOutputSize(encodedSize, padding));
avx2_decode_inplace(encoded, ret.data(), padding);

return ret;
Expand Down Expand Up @@ -269,11 +269,11 @@ namespace fastgltf::base64 {
fallback_decode_inplace(encoded.substr(pos, encodedSize), out, padding);
}

[[gnu::target("sse4.1")]] std::vector<std::uint8_t> fg::base64::sse4_decode(std::string_view encoded) {
[[gnu::target("sse4.1")]] fg::StaticVector<std::uint8_t> fg::base64::sse4_decode(std::string_view encoded) {
const auto encodedSize = encoded.size();
const auto padding = getPadding(encoded);

std::vector<std::uint8_t> ret(getOutputSize(encodedSize, padding));
fg::StaticVector<std::uint8_t> ret(getOutputSize(encodedSize, padding));
sse4_decode_inplace(encoded, ret.data(), padding);

return ret;
Expand Down

0 comments on commit 365b0f3

Please sign in to comment.