diff options
author | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-30 12:48:17 +0200 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@qt.io> | 2017-05-30 12:48:17 +0200 |
commit | 881da28418d380042aa95a97f0cbd42560a64f7c (patch) | |
tree | a794dff3274695e99c651902dde93d934ea7a5af /Source/WebKit2/Shared/ShareableBitmap.cpp | |
parent | 7e104c57a70fdf551bb3d22a5d637cdcbc69dbea (diff) | |
parent | 0fcedcd17cc00d3dd44c718b3cb36c1033319671 (diff) | |
download | qtwebkit-881da28418d380042aa95a97f0cbd42560a64f7c.tar.gz |
Merge 'wip/next' into dev
Change-Id: Iff9ee5e23bb326c4371ec8ed81d56f2f05d680e9
Diffstat (limited to 'Source/WebKit2/Shared/ShareableBitmap.cpp')
-rw-r--r-- | Source/WebKit2/Shared/ShareableBitmap.cpp | 44 |
1 files changed, 14 insertions, 30 deletions
diff --git a/Source/WebKit2/Shared/ShareableBitmap.cpp b/Source/WebKit2/Shared/ShareableBitmap.cpp index 0f06c8676..33cb5decf 100644 --- a/Source/WebKit2/Shared/ShareableBitmap.cpp +++ b/Source/WebKit2/Shared/ShareableBitmap.cpp @@ -39,14 +39,14 @@ ShareableBitmap::Handle::Handle() { } -void ShareableBitmap::Handle::encode(CoreIPC::ArgumentEncoder& encoder) const +void ShareableBitmap::Handle::encode(IPC::ArgumentEncoder& encoder) const { encoder << m_handle; encoder << m_size; encoder << m_flags; } -bool ShareableBitmap::Handle::decode(CoreIPC::ArgumentDecoder& decoder, Handle& handle) +bool ShareableBitmap::Handle::decode(IPC::ArgumentDecoder& decoder, Handle& handle) { if (!decoder.decode(handle.m_handle)) return false; @@ -57,13 +57,20 @@ bool ShareableBitmap::Handle::decode(CoreIPC::ArgumentDecoder& decoder, Handle& return true; } +void ShareableBitmap::Handle::clear() +{ + m_handle.clear(); + m_size = IntSize(); + m_flags = Flag::NoFlags; +} + PassRefPtr<ShareableBitmap> ShareableBitmap::create(const IntSize& size, Flags flags) { size_t numBytes = numBytesForSize(size); void* data = 0; if (!tryFastMalloc(numBytes).getValue(data)) - return 0; + return nullptr; return adoptRef(new ShareableBitmap(size, flags, data)); } @@ -72,9 +79,9 @@ PassRefPtr<ShareableBitmap> ShareableBitmap::createShareable(const IntSize& size { size_t numBytes = numBytesForSize(size); - RefPtr<SharedMemory> sharedMemory = SharedMemory::create(numBytes); + RefPtr<SharedMemory> sharedMemory = SharedMemory::allocate(numBytes); if (!sharedMemory) - return 0; + return nullptr; return adoptRef(new ShareableBitmap(size, flags, sharedMemory)); } @@ -92,9 +99,9 @@ PassRefPtr<ShareableBitmap> ShareableBitmap::create(const IntSize& size, Flags f PassRefPtr<ShareableBitmap> ShareableBitmap::create(const Handle& handle, SharedMemory::Protection protection) { // Create the shared memory. - RefPtr<SharedMemory> sharedMemory = SharedMemory::create(handle.m_handle, protection); + RefPtr<SharedMemory> sharedMemory = SharedMemory::map(handle.m_handle, protection); if (!sharedMemory) - return 0; + return nullptr; return create(handle.m_size, handle.m_flags, sharedMemory.release()); } @@ -131,29 +138,6 @@ ShareableBitmap::~ShareableBitmap() fastFree(m_data); } -bool ShareableBitmap::resize(const IntSize& size) -{ - // We can't resize backing stores that are backed by shared memory. - ASSERT(!isBackedBySharedMemory()); - - if (size == m_size) - return true; - - size_t newNumBytes = numBytesForSize(size); - - // Try to resize. - char* newData = 0; - if (!tryFastRealloc(m_data, newNumBytes).getValue(newData)) { - // We failed, but the backing store is still kept in a consistent state. - return false; - } - - m_size = size; - m_data = newData; - - return true; -} - void* ShareableBitmap::data() const { if (isBackedBySharedMemory()) |