Index: chrome/browser/renderer_host/backing_store_win.cc |
diff --git a/chrome/browser/renderer_host/backing_store_win.cc b/chrome/browser/renderer_host/backing_store_win.cc |
index 94d9cbf4b9bf86a2ea52cd91e2b828c0f2f40906..b8385d34737891288e0b44ca4e38129eb0d9ca67 100644 |
--- a/chrome/browser/renderer_host/backing_store_win.cc |
+++ b/chrome/browser/renderer_host/backing_store_win.cc |
@@ -69,7 +69,8 @@ void CallStretchDIBits(HDC hdc, int dest_x, int dest_y, int dest_w, int dest_h, |
} // namespace |
-BackingStoreWin::BackingStoreWin(RenderWidgetHost* widget, const gfx::Size& size) |
+BackingStoreWin::BackingStoreWin(RenderWidgetHost* widget, |
+ const gfx::Size& size) |
: BackingStore(widget, size), |
backing_store_dib_(NULL), |
original_bitmap_(NULL) { |
@@ -114,10 +115,12 @@ size_t BackingStoreWin::MemorySize() { |
void BackingStoreWin::PaintToBackingStore( |
RenderProcessHost* process, |
- TransportDIB::Id bitmap, |
+ TransportDIB::Id dib_id, |
+ TransportDIB::Handle dib_handle, |
const gfx::Rect& bitmap_rect, |
const std::vector<gfx::Rect>& copy_rects, |
bool* painted_synchronously) { |
+ TransportDIB::ScopedHandle scoped_dib_handle(dib_handle); |
// Our paints are always synchronous and the TransportDIB can be freed when |
// we're done (even on error). |
*painted_synchronously = true; |
@@ -132,7 +135,8 @@ void BackingStoreWin::PaintToBackingStore( |
original_bitmap_ = SelectObject(hdc_, backing_store_dib_); |
} |
- TransportDIB* dib = process->GetTransportDIB(bitmap); |
+ TransportDIB* dib = process->GetTransportDIB(dib_id, |
+ scoped_dib_handle.release()); |
if (!dib) |
return; |