| Index: chrome/browser/policy/asynchronous_policy_loader.cc
|
| diff --git a/chrome/browser/policy/asynchronous_policy_loader.cc b/chrome/browser/policy/asynchronous_policy_loader.cc
|
| index 1a55b66e512b7a65582599a61daca57a3e199450..26ae765ba14a82e3344c0aec214a02c308d414e9 100644
|
| --- a/chrome/browser/policy/asynchronous_policy_loader.cc
|
| +++ b/chrome/browser/policy/asynchronous_policy_loader.cc
|
| @@ -94,14 +94,16 @@ void AsynchronousPolicyLoader::StopOnFileThread() {
|
|
|
| void AsynchronousPolicyLoader::PostUpdatePolicyTask(
|
| DictionaryValue* new_policy) {
|
| - // TODO(joaodasilva): make the callback own |new_policy|.
|
| + scoped_ptr<DictionaryValue> scoped_policy(new_policy);
|
| origin_loop_->PostTask(
|
| FROM_HERE,
|
| - base::Bind(&AsynchronousPolicyLoader::UpdatePolicy, this, new_policy));
|
| + base::Bind(&AsynchronousPolicyLoader::UpdatePolicy,
|
| + this,
|
| + base::Passed(&scoped_policy)));
|
| }
|
|
|
| -void AsynchronousPolicyLoader::UpdatePolicy(DictionaryValue* new_policy_raw) {
|
| - scoped_ptr<DictionaryValue> new_policy(new_policy_raw);
|
| +void AsynchronousPolicyLoader::UpdatePolicy(
|
| + scoped_ptr<DictionaryValue> new_policy) {
|
| DCHECK(policy_.get());
|
| policy_.swap(new_policy);
|
| if (!stopped_)
|
|
|