diff options
Diffstat (limited to 'libs/gui/SurfaceTexture.cpp')
-rw-r--r-- | libs/gui/SurfaceTexture.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/libs/gui/SurfaceTexture.cpp b/libs/gui/SurfaceTexture.cpp index c190195..8c07d24 100644 --- a/libs/gui/SurfaceTexture.cpp +++ b/libs/gui/SurfaceTexture.cpp @@ -197,11 +197,14 @@ status_t SurfaceTexture::setBufferCount(int bufferCount) { status_t SurfaceTexture::setDefaultBufferSize(uint32_t w, uint32_t h) { - Mutex::Autolock lock(mMutex); - if ((w != mDefaultWidth) || (h != mDefaultHeight)) { - mDefaultWidth = w; - mDefaultHeight = h; + if (!w || !h) { + LOGE("setDefaultBufferSize: dimensions cannot be 0 (w=%d, h=%d)", w, h); + return BAD_VALUE; } + + Mutex::Autolock lock(mMutex); + mDefaultWidth = w; + mDefaultHeight = h; return OK; } @@ -903,13 +906,9 @@ int SurfaceTexture::query(int what, int* outValue) switch (what) { case NATIVE_WINDOW_WIDTH: value = mDefaultWidth; - if (!mDefaultWidth && !mDefaultHeight && mCurrentTextureBuf!=0) - value = mCurrentTextureBuf->width; break; case NATIVE_WINDOW_HEIGHT: value = mDefaultHeight; - if (!mDefaultWidth && !mDefaultHeight && mCurrentTextureBuf!=0) - value = mCurrentTextureBuf->height; break; case NATIVE_WINDOW_FORMAT: value = mPixelFormat; |