diff options
author | anpol <anpol@yandex-team.ru> | 2015-12-18 00:39:03 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-18 08:39:58 +0000 |
commit | 280746cce16d03242f855c4c795a62b7349f38d4 (patch) | |
tree | 245db47d403e9be9e637b62c6a1521c3e8ccb181 /printing | |
parent | 384a9c843b9b8243a0a15573d66955b9cb9a45f0 (diff) | |
download | chromium_src-280746cce16d03242f855c4c795a62b7349f38d4.zip chromium_src-280746cce16d03242f855c4c795a62b7349f38d4.tar.gz chromium_src-280746cce16d03242f855c4c795a62b7349f38d4.tar.bz2 |
Eliminate HICON leaks caused by creating icons from bitmap image.
Every icon handle created by CreateHICONFromSkBitmap() should become
immediately owned by its creator. We use base::win::ScopedHICON to
control the icon's lifetime.
R=sky@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1406403007
Cr-Commit-Position: refs/heads/master@{#366055}
Diffstat (limited to 'printing')
-rw-r--r-- | printing/emf_win.cc | 6 | ||||
-rw-r--r-- | printing/image_win.cc | 4 |
2 files changed, 5 insertions, 5 deletions
diff --git a/printing/emf_win.cc b/printing/emf_win.cc index 8ee1d84..4b00bca 100644 --- a/printing/emf_win.cc +++ b/printing/emf_win.cc @@ -104,12 +104,12 @@ class RasterBitmap { gfx::Rect bitmap_rect(raster_size); gfx::CreateBitmapHeader(raster_size.width(), raster_size.height(), &header_.bmiHeader); - bitmap_.Set(::CreateDIBSection(context_.Get(), &header_, DIB_RGB_COLORS, + bitmap_.reset(CreateDIBSection(context_.Get(), &header_, DIB_RGB_COLORS, &bits, NULL, 0)); - if (!bitmap_) + if (!bitmap_.is_valid()) NOTREACHED() << "Raster bitmap creation for printing failed"; - saved_object_ = ::SelectObject(context_.Get(), bitmap_); + saved_object_ = ::SelectObject(context_.Get(), bitmap_.get()); RECT rect = bitmap_rect.ToRECT(); ::FillRect(context_.Get(), &rect, static_cast<HBRUSH>(::GetStockObject(WHITE_BRUSH))); diff --git a/printing/image_win.cc b/printing/image_win.cc index 398fb22..1584efb 100644 --- a/printing/image_win.cc +++ b/printing/image_win.cc @@ -70,8 +70,8 @@ bool Image::LoadMetafile(const Metafile& metafile) { base::win::ScopedBitmap bitmap( ::CreateDIBSection(hdc.Get(), reinterpret_cast<BITMAPINFO*>(&hdr), 0, reinterpret_cast<void**>(&bits), NULL, 0)); - DCHECK(bitmap); - base::win::ScopedSelectObject select_object(hdc.Get(), bitmap); + DCHECK(bitmap.is_valid()); + base::win::ScopedSelectObject select_object(hdc.Get(), bitmap.get()); skia::InitializeDC(hdc.Get()); |