Loading init/interface_utils.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,12 @@ Result<void> CheckInterfaceInheritanceHierarchy(const std::set<std::string>& ins const InterfaceInheritanceHierarchyMap& hierarchy) { std::set<FQName> interface_fqnames; for (const std::string& instance : instances) { // There is insufficient build-time information on AIDL interfaces to check them here // TODO(b/139307527): Rework how services store interfaces to avoid excess string parsing if (base::Split(instance, "/")[0] == "aidl") { continue; } FqInstance fqinstance; if (!fqinstance.setTo(instance)) { return Error() << "Unable to parse interface instance '" << instance << "'"; Loading init/service_parser.cpp +13 −9 Original line number Diff line number Diff line Loading @@ -145,9 +145,12 @@ Result<void> ServiceParser::ParseInterface(std::vector<std::string>&& args) { const std::string& interface_name = args[1]; const std::string& instance_name = args[2]; // AIDL services don't use fully qualified names and instead just use "interface aidl <name>" if (interface_name != "aidl") { FQName fq_name; if (!FQName::parse(interface_name, &fq_name)) { return Error() << "Invalid fully-qualified name for interface '" << interface_name << "'"; return Error() << "Invalid fully-qualified name for interface '" << interface_name << "'"; } if (!fq_name.isFullyQualified()) { Loading @@ -157,6 +160,7 @@ Result<void> ServiceParser::ParseInterface(std::vector<std::string>&& args) { if (fq_name.isValidValueName()) { return Error() << "Interface name must not be a value name '" << interface_name << "'"; } } const std::string fullname = interface_name + "/" + instance_name; Loading Loading
init/interface_utils.cpp +6 −0 Original line number Diff line number Diff line Loading @@ -77,6 +77,12 @@ Result<void> CheckInterfaceInheritanceHierarchy(const std::set<std::string>& ins const InterfaceInheritanceHierarchyMap& hierarchy) { std::set<FQName> interface_fqnames; for (const std::string& instance : instances) { // There is insufficient build-time information on AIDL interfaces to check them here // TODO(b/139307527): Rework how services store interfaces to avoid excess string parsing if (base::Split(instance, "/")[0] == "aidl") { continue; } FqInstance fqinstance; if (!fqinstance.setTo(instance)) { return Error() << "Unable to parse interface instance '" << instance << "'"; Loading
init/service_parser.cpp +13 −9 Original line number Diff line number Diff line Loading @@ -145,9 +145,12 @@ Result<void> ServiceParser::ParseInterface(std::vector<std::string>&& args) { const std::string& interface_name = args[1]; const std::string& instance_name = args[2]; // AIDL services don't use fully qualified names and instead just use "interface aidl <name>" if (interface_name != "aidl") { FQName fq_name; if (!FQName::parse(interface_name, &fq_name)) { return Error() << "Invalid fully-qualified name for interface '" << interface_name << "'"; return Error() << "Invalid fully-qualified name for interface '" << interface_name << "'"; } if (!fq_name.isFullyQualified()) { Loading @@ -157,6 +160,7 @@ Result<void> ServiceParser::ParseInterface(std::vector<std::string>&& args) { if (fq_name.isValidValueName()) { return Error() << "Interface name must not be a value name '" << interface_name << "'"; } } const std::string fullname = interface_name + "/" + instance_name; Loading