diff options
author | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 22:31:49 +0000 |
---|---|---|
committer | evan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-07-20 22:31:49 +0000 |
commit | 23675edf2ebd43fba5df528bcd1da3f719abe092 (patch) | |
tree | 04574d5835569e647b1ce4fbc42c4d6d4ab3ab5c /chrome/browser/tab_contents/thumbnail_generator.cc | |
parent | 867848a55cc0e862b936984af04b56cc5342e59b (diff) | |
download | chromium_src-23675edf2ebd43fba5df528bcd1da3f719abe092.zip chromium_src-23675edf2ebd43fba5df528bcd1da3f719abe092.tar.gz chromium_src-23675edf2ebd43fba5df528bcd1da3f719abe092.tar.bz2 |
Fix a leak I introduced in r93120
Rather than manually calling "delete" in every code path, just use
a scoped_ptr.
BUG=89884
Review URL: http://codereview.chromium.org/7468003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@93269 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/tab_contents/thumbnail_generator.cc')
-rw-r--r-- | chrome/browser/tab_contents/thumbnail_generator.cc | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/chrome/browser/tab_contents/thumbnail_generator.cc b/chrome/browser/tab_contents/thumbnail_generator.cc index a11afb5..e2ec603 100644 --- a/chrome/browser/tab_contents/thumbnail_generator.cc +++ b/chrome/browser/tab_contents/thumbnail_generator.cc @@ -189,6 +189,8 @@ void ThumbnailGenerator::AskForSnapshot(RenderWidgetHost* renderer, ThumbnailReadyCallback* callback, gfx::Size page_size, gfx::Size desired_size) { + scoped_ptr<ThumbnailReadyCallback> callback_deleter(callback); + if (prefer_backing_store) { BackingStore* backing_store = renderer->GetBackingStore(false); if (backing_store) { @@ -201,7 +203,6 @@ void ThumbnailGenerator::AskForSnapshot(RenderWidgetHost* renderer, NULL); callback->Run(first_try); - delete callback; return; } // Now, if the backing store didn't exist, we will still try and @@ -232,7 +233,6 @@ void ThumbnailGenerator::AskForSnapshot(RenderWidgetHost* renderer, false); if (!renderer_dib_handle) { LOG(WARNING) << "Could not duplicate dib handle for renderer"; - delete callback; return; } #else @@ -240,7 +240,7 @@ void ThumbnailGenerator::AskForSnapshot(RenderWidgetHost* renderer, #endif linked_ptr<AsyncRequestInfo> request_info(new AsyncRequestInfo); - request_info->callback.reset(callback); + request_info->callback.reset(callback_deleter.release()); request_info->thumbnail_dib.reset(thumbnail_dib.release()); request_info->renderer = renderer; ThumbnailCallbackMap::value_type new_value(sequence_num, request_info); |