summaryrefslogtreecommitdiffstats
path: root/chrome/browser/tab_contents/thumbnail_generator.cc
diff options
context:
space:
mode:
authorevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-20 22:31:49 +0000
committerevan@chromium.org <evan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-07-20 22:31:49 +0000
commit23675edf2ebd43fba5df528bcd1da3f719abe092 (patch)
tree04574d5835569e647b1ce4fbc42c4d6d4ab3ab5c /chrome/browser/tab_contents/thumbnail_generator.cc
parent867848a55cc0e862b936984af04b56cc5342e59b (diff)
downloadchromium_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.cc6
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);