diff options
Diffstat (limited to 'libs/surfaceflinger/LayerBitmap.cpp')
-rw-r--r-- | libs/surfaceflinger/LayerBitmap.cpp | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/libs/surfaceflinger/LayerBitmap.cpp b/libs/surfaceflinger/LayerBitmap.cpp index 9fffbbf..ff49c87 100644 --- a/libs/surfaceflinger/LayerBitmap.cpp +++ b/libs/surfaceflinger/LayerBitmap.cpp @@ -177,22 +177,17 @@ status_t LayerBitmap::setSize(uint32_t w, uint32_t h) sp<Buffer> LayerBitmap::allocate() { Mutex::Autolock _l(mLock); - sp<Buffer> buffer(mBuffer); - const uint32_t w = mWidth; - const uint32_t h = mHeight; - if (buffer!=0 && (w != buffer->getWidth() || h != buffer->getHeight())) { - surface_info_t* info = mInfo; - buffer = new Buffer(w, h, mFormat, mFlags); - status_t err = buffer->initCheck(); - if (LIKELY(err == NO_ERROR)) { - info->flags = surface_info_t::eBufferDirty; - info->status = NO_ERROR; - } else { - memset(info, 0, sizeof(surface_info_t)); - info->status = NO_MEMORY; - } - mBuffer = buffer; + surface_info_t* info = mInfo; + sp<Buffer> buffer = new Buffer(mWidth, mHeight, mFormat, mFlags); + status_t err = buffer->initCheck(); + if (LIKELY(err == NO_ERROR)) { + info->flags = surface_info_t::eBufferDirty; + info->status = NO_ERROR; + } else { + memset(info, 0, sizeof(surface_info_t)); + info->status = NO_MEMORY; } + mBuffer = buffer; return buffer; } |