Index: cc/tiles/gpu_image_decode_cache_unittest.cc |
diff --git a/cc/tiles/gpu_image_decode_cache_unittest.cc b/cc/tiles/gpu_image_decode_cache_unittest.cc |
index 072dfd91d9f2d7355c433f0b5caae8bcec893a97..34d2b29005fe9c743c563603d4a2e556daa4590c 100644 |
--- a/cc/tiles/gpu_image_decode_cache_unittest.cc |
+++ b/cc/tiles/gpu_image_decode_cache_unittest.cc |
@@ -497,6 +497,7 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) { |
EXPECT_TRUE(need_unref); |
EXPECT_TRUE(task); |
+ ASSERT_GT(task->dependencies().size(), 0u); |
TestTileTaskRunner::ProcessTask(task->dependencies()[0].get()); |
scoped_refptr<TileTask> another_task; |
@@ -509,6 +510,10 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) { |
TestTileTaskRunner::CancelTask(task.get()); |
TestTileTaskRunner::CompleteTask(task.get()); |
+ // 2 Unrefs, so that the decode is unlocked as well. |
+ cache.UnrefImage(draw_image); |
+ cache.UnrefImage(draw_image); |
+ |
// Note that here, everything is reffed, but a new task is created. This is |
// possible with repeated schedule/cancel operations. |
scoped_refptr<TileTask> third_task; |
@@ -518,12 +523,11 @@ TEST(GpuImageDecodeCacheTest, GetTaskForImageCanceledWhileReffedGetsNewTask) { |
EXPECT_TRUE(third_task); |
EXPECT_FALSE(third_task.get() == task.get()); |
+ ASSERT_GT(third_task->dependencies().size(), 0u); |
TestTileTaskRunner::ProcessTask(third_task->dependencies()[0].get()); |
TestTileTaskRunner::ProcessTask(third_task.get()); |
- // 3 Unrefs! |
- cache.UnrefImage(draw_image); |
- cache.UnrefImage(draw_image); |
+ // Unref! |
cache.UnrefImage(draw_image); |
} |