mirror of
https://github.com/Evolution-X/hardware_interfaces
synced 2026-02-01 11:36:00 +00:00
Remove MIN and MAX checking for hidl_enum in UserHalHelper native library.
VehiclePropValue enums is not sorted by their values. Thus obtaining MIN and MAX values for this enum is O(N), which is the same as looping through all the values and checking whether a given int32_t is in the enum.
Test: Tested with `atest -c android.hardware.automotive.vehicle@2.0-utils-unit-tests`.
Bug: 168249409
Change-Id: I296a56e31caa7a5ee69eac49806810f83e46571e
(cherry picked from commit b7d50b91eb)
This commit is contained in:
@@ -141,11 +141,6 @@ Result<void> parseUserAssociations(const hidl_vec<int32_t>& int32Values, size_t
|
||||
template <typename T>
|
||||
Result<T> verifyAndCast(int32_t value) {
|
||||
T castValue = static_cast<T>(value);
|
||||
const auto iter = hidl_enum_range<T>();
|
||||
if (castValue < *iter.begin() || castValue > *std::prev(iter.end())) {
|
||||
return Error() << "Value " << value << " not in range [" << toString(*iter.begin()) << ", "
|
||||
<< toString(*std::prev(iter.end())) << "]";
|
||||
}
|
||||
for (const auto& v : hidl_enum_range<T>()) {
|
||||
if (castValue == v) {
|
||||
return castValue;
|
||||
|
||||
Reference in New Issue
Block a user