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

Commit 1be799e7 authored by Siarhei Vishniakou's avatar Siarhei Vishniakou
Browse files

Fail when file is not found

Currently, we just log an error and exit. Instead, we should fail when
file is not found.

Bug: 260115731
Test: m && validatekeymaps input.idc
Change-Id: Ia84f23533b6dafc4b9748d781ecefec108e8e20b
parent 105fb4b6
Loading
Loading
Loading
Loading
+12 −13
Original line number Diff line number Diff line
@@ -116,25 +116,24 @@ android::base::Result<std::unique_ptr<PropertyMap>> PropertyMap::load(const char

    Tokenizer* rawTokenizer;
    status_t status = Tokenizer::open(String8(filename), &rawTokenizer);
    std::unique_ptr<Tokenizer> tokenizer(rawTokenizer);
    if (status) {
        ALOGE("Error %d opening property file %s.", status, filename);
    } else {
        return android::base::Error(-status) << "Could not open file: " << filename;
    }
#if DEBUG_PARSER_PERFORMANCE
    nsecs_t startTime = systemTime(SYSTEM_TIME_MONOTONIC);
#endif
    std::unique_ptr<Tokenizer> tokenizer(rawTokenizer);
    Parser parser(outMap.get(), tokenizer.get());
    status = parser.parse();
#if DEBUG_PARSER_PERFORMANCE
    nsecs_t elapsedTime = systemTime(SYSTEM_TIME_MONOTONIC) - startTime;
            ALOGD("Parsed property file '%s' %d lines in %0.3fms.",
                  tokenizer->getFilename().string(), tokenizer->getLineNumber(),
                  elapsedTime / 1000000.0);
    ALOGD("Parsed property file '%s' %d lines in %0.3fms.", tokenizer->getFilename().string(),
          tokenizer->getLineNumber(), elapsedTime / 1000000.0);
#endif
    if (status) {
        return android::base::Error(BAD_VALUE) << "Could not parse " << filename;
    }
    }

    return std::move(outMap);
}