From 3d64e738b91b2a4a9d81fae1991e6f6eae9ac8c8 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 18 Apr 2011 15:59:24 -0700 Subject: [PATCH] fix memory corruption when retriving GL_MAX_VIEWPORT_DIMS Change-Id: I2e0b1eac6dbc6a4ecbbaf31013aa02cf2369fce2 --- services/surfaceflinger/DisplayHardware/DisplayHardware.cpp | 10 +++++++--- services/surfaceflinger/DisplayHardware/DisplayHardware.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp index 64cff965b1..a774841ddb 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp +++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.cpp @@ -93,7 +93,11 @@ int DisplayHardware::getWidth() const { return mWidth; } int DisplayHardware::getHeight() const { return mHeight; } PixelFormat DisplayHardware::getFormat() const { return mFormat; } uint32_t DisplayHardware::getMaxTextureSize() const { return mMaxTextureSize; } -uint32_t DisplayHardware::getMaxViewportDims() const { return mMaxViewportDims; } + +uint32_t DisplayHardware::getMaxViewportDims() const { + return mMaxViewportDims[0] < mMaxViewportDims[1] ? + mMaxViewportDims[0] : mMaxViewportDims[1]; +} void DisplayHardware::init(uint32_t dpy) { @@ -228,7 +232,7 @@ void DisplayHardware::init(uint32_t dpy) eglQueryString(display, EGL_EXTENSIONS)); glGetIntegerv(GL_MAX_TEXTURE_SIZE, &mMaxTextureSize); - glGetIntegerv(GL_MAX_VIEWPORT_DIMS, &mMaxViewportDims); + glGetIntegerv(GL_MAX_VIEWPORT_DIMS, mMaxViewportDims); #ifdef EGL_ANDROID_swap_rectangle @@ -260,7 +264,7 @@ void DisplayHardware::init(uint32_t dpy) LOGI("version : %s", extensions.getVersion()); LOGI("extensions: %s", extensions.getExtension()); LOGI("GL_MAX_TEXTURE_SIZE = %d", mMaxTextureSize); - LOGI("GL_MAX_VIEWPORT_DIMS = %d", mMaxViewportDims); + LOGI("GL_MAX_VIEWPORT_DIMS = %d x %d", mMaxViewportDims[0], mMaxViewportDims[1]); LOGI("flags = %08x", mFlags); // Unbind the context from this thread diff --git a/services/surfaceflinger/DisplayHardware/DisplayHardware.h b/services/surfaceflinger/DisplayHardware/DisplayHardware.h index ee7a2af80e..cdf89fd0ba 100644 --- a/services/surfaceflinger/DisplayHardware/DisplayHardware.h +++ b/services/surfaceflinger/DisplayHardware/DisplayHardware.h @@ -108,7 +108,7 @@ private: PixelFormat mFormat; uint32_t mFlags; mutable uint32_t mPageFlipCount; - GLint mMaxViewportDims; + GLint mMaxViewportDims[2]; GLint mMaxTextureSize; HWComposer* mHwc; -- 2.11.0