| Index: dbus/bus.cc | 
| diff --git a/dbus/bus.cc b/dbus/bus.cc | 
| index 0c6a4217235790b3315e1583a31193af49dfa900..3b2f059c5975cad4ac06e92245e758320db1a52a 100644 | 
| --- a/dbus/bus.cc | 
| +++ b/dbus/bus.cc | 
| @@ -16,6 +16,7 @@ | 
| #include "base/threading/thread_restrictions.h" | 
| #include "base/time.h" | 
| #include "dbus/exported_object.h" | 
| +#include "dbus/object_path.h" | 
| #include "dbus/object_proxy.h" | 
| #include "dbus/scoped_dbus_error.h" | 
|  | 
| @@ -207,18 +208,19 @@ Bus::~Bus() { | 
| } | 
|  | 
| ObjectProxy* Bus::GetObjectProxy(const std::string& service_name, | 
| -                                 const std::string& object_path) { | 
| +                                 const ObjectPath& object_path) { | 
| return GetObjectProxyWithOptions(service_name, object_path, | 
| ObjectProxy::DEFAULT_OPTIONS); | 
| } | 
|  | 
| ObjectProxy* Bus::GetObjectProxyWithOptions(const std::string& service_name, | 
| -                                            const std::string& object_path, | 
| +                                            const dbus::ObjectPath& object_path, | 
| int options) { | 
| AssertOnOriginThread(); | 
|  | 
| // Check if we already have the requested object proxy. | 
| -  const ObjectProxyTable::key_type key(service_name + object_path, options); | 
| +  const ObjectProxyTable::key_type key(service_name + object_path.value(), | 
| +                                       options); | 
| ObjectProxyTable::iterator iter = object_proxy_table_.find(key); | 
| if (iter != object_proxy_table_.end()) { | 
| return iter->second; | 
| @@ -232,11 +234,11 @@ ObjectProxy* Bus::GetObjectProxyWithOptions(const std::string& service_name, | 
| } | 
|  | 
| ExportedObject* Bus::GetExportedObject(const std::string& service_name, | 
| -                                       const std::string& object_path) { | 
| +                                       const ObjectPath& object_path) { | 
| AssertOnOriginThread(); | 
|  | 
| // Check if we already have the requested exported object. | 
| -  const std::string key = service_name + object_path; | 
| +  const std::string key = service_name + object_path.value(); | 
| ExportedObjectTable::iterator iter = exported_object_table_.find(key); | 
| if (iter != exported_object_table_.end()) { | 
| return iter->second; | 
| @@ -521,7 +523,7 @@ void Bus::RemoveMatch(const std::string& match_rule, DBusError* error) { | 
| match_rules_added_.erase(match_rule); | 
| } | 
|  | 
| -bool Bus::TryRegisterObjectPath(const std::string& object_path, | 
| +bool Bus::TryRegisterObjectPath(const ObjectPath& object_path, | 
| const DBusObjectPathVTable* vtable, | 
| void* user_data, | 
| DBusError* error) { | 
| @@ -530,13 +532,13 @@ bool Bus::TryRegisterObjectPath(const std::string& object_path, | 
|  | 
| if (registered_object_paths_.find(object_path) != | 
| registered_object_paths_.end()) { | 
| -    LOG(ERROR) << "Object path already registered: " << object_path; | 
| +    LOG(ERROR) << "Object path already registered: " << object_path.value(); | 
| return false; | 
| } | 
|  | 
| const bool success = dbus_connection_try_register_object_path( | 
| connection_, | 
| -      object_path.c_str(), | 
| +      object_path.value().c_str(), | 
| vtable, | 
| user_data, | 
| error); | 
| @@ -545,20 +547,20 @@ bool Bus::TryRegisterObjectPath(const std::string& object_path, | 
| return success; | 
| } | 
|  | 
| -void Bus::UnregisterObjectPath(const std::string& object_path) { | 
| +void Bus::UnregisterObjectPath(const ObjectPath& object_path) { | 
| DCHECK(connection_); | 
| AssertOnDBusThread(); | 
|  | 
| if (registered_object_paths_.find(object_path) == | 
| registered_object_paths_.end()) { | 
| LOG(ERROR) << "Requested to unregister an unknown object path: " | 
| -               << object_path; | 
| +               << object_path.value(); | 
| return; | 
| } | 
|  | 
| const bool success = dbus_connection_unregister_object_path( | 
| connection_, | 
| -      object_path.c_str()); | 
| +      object_path.value().c_str()); | 
| CHECK(success) << "Unable to allocate memory"; | 
| registered_object_paths_.erase(object_path); | 
| } | 
|  |