| Index: content/browser/manifest/manifest_manager_host.cc
|
| diff --git a/content/browser/manifest/manifest_manager_host.cc b/content/browser/manifest/manifest_manager_host.cc
|
| index 962189fff3d86ec5a1773361f66b3e04dea46381..50b3ecade66ca6ab3dd258dc8785787920962c71 100644
|
| --- a/content/browser/manifest/manifest_manager_host.cc
|
| +++ b/content/browser/manifest/manifest_manager_host.cc
|
| @@ -44,11 +44,14 @@ void ManifestManagerHost::RenderFrameDeleted(
|
| return;
|
|
|
| // Before deleting the callbacks, make sure they are called with a failure
|
| - // state.
|
| - CallbackMap::const_iterator it(callbacks);
|
| - for (; !it.IsAtEnd(); it.Advance())
|
| - it.GetCurrentValue()->Run(Manifest());
|
| + // state. Do this in a block so the iterator is destroyed before |callbacks|.
|
| + {
|
| + CallbackMap::const_iterator it(callbacks);
|
| + for (; !it.IsAtEnd(); it.Advance())
|
| + it.GetCurrentValue()->Run(Manifest());
|
| + }
|
|
|
| + delete callbacks;
|
| pending_callbacks_.erase(render_frame_host);
|
| }
|
|
|
|
|