1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/test/test_shared_bitmap_manager.h"
11 void FreeSharedBitmap(SharedBitmap* shared_bitmap) {
12 delete shared_bitmap->memory();
15 void IgnoreSharedBitmap(SharedBitmap* shared_bitmap) {}
17 TestSharedBitmapManager::TestSharedBitmapManager() {}
19 TestSharedBitmapManager::~TestSharedBitmapManager() {}
21 scoped_ptr<SharedBitmap> TestSharedBitmapManager::AllocateSharedBitmap(
22 const gfx::Size& size) {
23 base::AutoLock lock(lock_);
24 scoped_ptr<base::SharedMemory> memory(new base::SharedMemory);
25 memory->CreateAndMapAnonymous(size.GetArea() * 4);
26 SharedBitmapId id = SharedBitmap::GenerateId();
27 bitmap_map_[id] = memory.get();
28 return make_scoped_ptr(
29 new SharedBitmap(memory.release(), id, base::Bind(&FreeSharedBitmap)));
32 scoped_ptr<SharedBitmap> TestSharedBitmapManager::GetSharedBitmapFromId(
34 const SharedBitmapId& id) {
35 base::AutoLock lock(lock_);
36 if (bitmap_map_.find(id) == bitmap_map_.end())
38 return make_scoped_ptr(
39 new SharedBitmap(bitmap_map_[id], id, base::Bind(&IgnoreSharedBitmap)));
42 scoped_ptr<SharedBitmap> TestSharedBitmapManager::GetBitmapForSharedMemory(
43 base::SharedMemory* memory) {
44 base::AutoLock lock(lock_);
45 SharedBitmapId id = SharedBitmap::GenerateId();
46 bitmap_map_[id] = memory;
47 return make_scoped_ptr(
48 new SharedBitmap(memory, id, base::Bind(&IgnoreSharedBitmap)));