haze: ptp_object_database: fix collation

This commit is contained in:
Liam 2023-04-16 19:06:38 -04:00
parent 46e2e92371
commit 70babc9c09
2 changed files with 9 additions and 9 deletions

View file

@ -50,7 +50,9 @@ namespace haze {
template<typename T> requires (std::same_as<T, PtpObject> || std::same_as<T, RedBlackKeyType>)
static constexpr int Compare(const T &lhs, const PtpObject &rhs) {
return std::strcmp(lhs.GetName(), rhs.GetName());
/* All SD card filesystems supported by fs are case-insensitive and case-preserving. */
/* Account for that in collation here. */
return strcasecmp(lhs.GetName(), rhs.GetName());
}
};

View file

@ -134,21 +134,19 @@ namespace haze {
PtpObject *PtpObjectDatabase::GetObjectById(u32 object_id) {
/* Find in ID mapping. */
auto it = m_object_id_tree.find_key(object_id);
if (it == m_object_id_tree.end()) {
if (auto it = m_object_id_tree.find_key(object_id); it != m_object_id_tree.end()) {
return std::addressof(*it);
} else {
return nullptr;
}
return std::addressof(*it);
}
PtpObject *PtpObjectDatabase::GetObjectByName(const char *name) {
/* Find in name mapping. */
auto it = m_name_tree.find_key(name);
if (it == m_name_tree.end()) {
if (auto it = m_name_tree.find_key(name); it != m_name_tree.end()) {
return std::addressof(*it);
} else {
return nullptr;
}
return std::addressof(*it);
}
}