Index: cc/resources/tile_manager.cc |
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc |
index c1447339e235bab2610a568e066b1239fdee3935..6aadfb724cbf0ee44f9ffcde292998ac591a003e 100644 |
--- a/cc/resources/tile_manager.cc |
+++ b/cc/resources/tile_manager.cc |
@@ -17,6 +17,7 @@ |
#include "cc/debug/frame_viewer_instrumentation.h" |
#include "cc/debug/traced_value.h" |
#include "cc/layers/picture_layer_impl.h" |
+#include "cc/resources/raster_buffer.h" |
#include "cc/resources/rasterizer.h" |
#include "cc/resources/tile.h" |
#include "skia/ext/paint_simplifier.h" |
@@ -58,8 +59,7 @@ class RasterTaskImpl : public RasterTask { |
source_frame_number_(source_frame_number), |
analyze_picture_(analyze_picture), |
rendering_stats_(rendering_stats), |
- reply_(reply), |
- raster_buffer_(NULL) {} |
+ reply_(reply) {} |
// Overridden from Task: |
virtual void RunOnWorkerThread() OVERRIDE { |
@@ -80,11 +80,10 @@ class RasterTaskImpl : public RasterTask { |
// Overridden from RasterizerTask: |
virtual void ScheduleOnOriginThread(RasterizerTaskClient* client) OVERRIDE { |
DCHECK(!raster_buffer_); |
- raster_buffer_ = client->AcquireBufferForRaster(this); |
+ raster_buffer_ = client->AcquireBufferForRaster(resource()); |
} |
virtual void CompleteOnOriginThread(RasterizerTaskClient* client) OVERRIDE { |
- raster_buffer_ = NULL; |
- client->ReleaseBufferForRaster(this); |
+ client->ReleaseBufferForRaster(raster_buffer_.Pass()); |
} |
virtual void RunReplyOnOriginThread() OVERRIDE { |
DCHECK(!raster_buffer_); |
@@ -177,7 +176,7 @@ class RasterTaskImpl : public RasterTask { |
bool analyze_picture_; |
RenderingStatsInstrumentation* rendering_stats_; |
const base::Callback<void(const PicturePileImpl::Analysis&, bool)> reply_; |
- RasterBuffer* raster_buffer_; |
+ scoped_ptr<RasterBuffer> raster_buffer_; |
DISALLOW_COPY_AND_ASSIGN(RasterTaskImpl); |
}; |