Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3e24b55 authored by Pavel Maltsev's avatar Pavel Maltsev
Browse files

Handle hidl transaction errors in ConfigStore

Test: surface flinger not failing, android now bootsup

Bug: b/36445794
Change-Id: I22fa7aab9fa92bc04333aaa0eef45891ebeba8e7
parent 54cc1980
Loading
Loading
Loading
Loading
+11 −1
Original line number Diff line number Diff line
@@ -20,6 +20,10 @@
#include <hidl/Status.h>
#include <stdatomic.h>

#pragma push_macro("LOG_TAG")
#undef LOG_TAG
#define LOG_TAG "ConfigStoreUtil"

namespace android {
namespace hardware {
namespace configstore {
@@ -39,9 +43,13 @@ decltype(V::value) get(const decltype(V::value) &defValue) {
            // fallback to the default value
            ret.specified = false;
        } else {
            (*configs.*func)([&ret](V v) {
            auto status = (*configs.*func)([&ret](V v) {
                ret = v;
            });
            if (!status.isOk()) {
                ALOGE("HIDL call failed. %s", status.description().c_str());
                ret.specified = false;
            }
        }

        return ret;
@@ -91,4 +99,6 @@ std::string getString(const std::string &defValue) {
}  // namespace hardware
}  // namespace android

#pragma pop_macro("LOG_TAG")

#endif  // ANDROID_HARDWARE_CONFIGSTORE_UTILS_H