| Index: services/service_manager/public/cpp/lib/interface_registry.cc
|
| diff --git a/services/service_manager/public/cpp/lib/interface_registry.cc b/services/service_manager/public/cpp/lib/interface_registry.cc
|
| index 25e537c876ce93264b7084f66f30b260df8a5f92..4a80042e3ac794a912c225f4f8caa96ae9407da8 100644
|
| --- a/services/service_manager/public/cpp/lib/interface_registry.cc
|
| +++ b/services/service_manager/public/cpp/lib/interface_registry.cc
|
| @@ -60,21 +60,18 @@ InterfaceSet GetAllowedInterfaces(
|
|
|
| } // namespace
|
|
|
| -InterfaceRegistry::InterfaceRegistry(
|
| - const Identity& identity,
|
| - const InterfaceProviderSpec& interface_provider_spec)
|
| - : binding_(this),
|
| - identity_(identity),
|
| - interface_provider_spec_(interface_provider_spec),
|
| - weak_factory_(this) {}
|
| -
|
| +InterfaceRegistry::InterfaceRegistry() : binding_(this), weak_factory_(this) {}
|
| InterfaceRegistry::~InterfaceRegistry() {}
|
|
|
| void InterfaceRegistry::Bind(
|
| mojom::InterfaceProviderRequest local_interfaces_request,
|
| + const Identity& local_identity,
|
| + const InterfaceProviderSpec& local_interface_provider_spec,
|
| const Identity& remote_identity,
|
| const InterfaceProviderSpec& remote_interface_provider_spec) {
|
| DCHECK(!binding_.is_bound());
|
| + identity_ = local_identity;
|
| + interface_provider_spec_ = local_interface_provider_spec;
|
| remote_identity_ = remote_identity;
|
| allowed_interfaces_ = GetAllowedInterfaces(remote_interface_provider_spec,
|
| identity_,
|
| @@ -82,9 +79,11 @@ void InterfaceRegistry::Bind(
|
| allow_all_interfaces_ =
|
| allowed_interfaces_.size() == 1 && allowed_interfaces_.count("*") == 1;
|
| if (!allow_all_interfaces_) {
|
| - for (auto it = name_to_binder_.begin(); it != name_to_binder_.end(); ++it) {
|
| + for (auto it = name_to_binder_.begin(); it != name_to_binder_.end();) {
|
| if (allowed_interfaces_.count(it->first) == 0)
|
| - name_to_binder_.erase(it);
|
| + it = name_to_binder_.erase(it);
|
| + else
|
| + ++it;
|
| }
|
| }
|
| binding_.Bind(std::move(local_interfaces_request));
|
|
|