Loading init/parser.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -70,24 +70,23 @@ void Parser::ParseData(const std::string& filename, const std::string& data) { case T_EOF: end_section(); return; case T_NEWLINE: case T_NEWLINE: { state.line++; if (args.empty()) break; // If we have a line matching a prefix we recognize, call its callback and unset any // current section parsers. This is meant for /sys/ and /dev/ line entries for // uevent. for (const auto& [prefix, callback] : line_callbacks_) { if (android::base::StartsWith(args[0], prefix)) { auto line_callback = std::find_if( line_callbacks_.begin(), line_callbacks_.end(), [&args](const auto& c) { return android::base::StartsWith(args[0], c.first); }); if (line_callback != line_callbacks_.end()) { end_section(); if (auto result = callback(std::move(args)); !result) { if (auto result = line_callback->second(std::move(args)); !result) { parse_error_count_++; LOG(ERROR) << filename << ": " << state.line << ": " << result.error(); } break; } } if (section_parsers_.count(args[0])) { } else if (section_parsers_.count(args[0])) { end_section(); section_parser = section_parsers_[args[0]].get(); section_start_line = state.line; Loading @@ -111,6 +110,7 @@ void Parser::ParseData(const std::string& filename, const std::string& data) { } args.clear(); break; } case T_TEXT: args.emplace_back(state.text); break; Loading Loading
init/parser.cpp +12 −12 Original line number Diff line number Diff line Loading @@ -70,24 +70,23 @@ void Parser::ParseData(const std::string& filename, const std::string& data) { case T_EOF: end_section(); return; case T_NEWLINE: case T_NEWLINE: { state.line++; if (args.empty()) break; // If we have a line matching a prefix we recognize, call its callback and unset any // current section parsers. This is meant for /sys/ and /dev/ line entries for // uevent. for (const auto& [prefix, callback] : line_callbacks_) { if (android::base::StartsWith(args[0], prefix)) { auto line_callback = std::find_if( line_callbacks_.begin(), line_callbacks_.end(), [&args](const auto& c) { return android::base::StartsWith(args[0], c.first); }); if (line_callback != line_callbacks_.end()) { end_section(); if (auto result = callback(std::move(args)); !result) { if (auto result = line_callback->second(std::move(args)); !result) { parse_error_count_++; LOG(ERROR) << filename << ": " << state.line << ": " << result.error(); } break; } } if (section_parsers_.count(args[0])) { } else if (section_parsers_.count(args[0])) { end_section(); section_parser = section_parsers_[args[0]].get(); section_start_line = state.line; Loading @@ -111,6 +110,7 @@ void Parser::ParseData(const std::string& filename, const std::string& data) { } args.clear(); break; } case T_TEXT: args.emplace_back(state.text); break; Loading