mirror of
https://github.com/love2d/megasource.git
synced 2026-08-12 00:20:55 +02:00
Import upstream openal commit, fixing an assert in debug iterators:
Original commit: 94a6230a7295ff93815e2293189d5177fd6fca92 Don't try to sort an empty list
This commit is contained in:
committed by
Mark Jansen
parent
846f6053f9
commit
3718aad414
@@ -60,10 +60,18 @@ void DirectorySearch(const std::filesystem::path &path, const std::string_view e
|
||||
ERR("Exception enumerating files: %s\n", e.what());
|
||||
}
|
||||
|
||||
const al::span newlist{results->begin()+base, results->end()};
|
||||
std::sort(newlist.begin(), newlist.end());
|
||||
for(const auto &name : newlist)
|
||||
TRACE(" got %s\n", name.c_str());
|
||||
/* HACK: Without the size check this trips up range-checked iterators, as
|
||||
* al::span uses al::to_address to get the first iterator's data pointer,
|
||||
* which relies on operator->(), which can assert on end iterators. The
|
||||
* check shouldn't be needed with C++20's std::span.
|
||||
*/
|
||||
if(static_cast<size_t>(base) < results->size())
|
||||
{
|
||||
const al::span newlist{results->begin()+base, results->end()};
|
||||
std::sort(newlist.begin(), newlist.end());
|
||||
for(const auto &name : newlist)
|
||||
TRACE(" got %s\n", name.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
Reference in New Issue
Block a user