OSDN Git Service

Add error for format and make sure setActiveConfig fails with an invalid mode.
authorMichael Lentine <mlentine@google.com>
Wed, 30 Jul 2014 20:00:37 +0000 (13:00 -0700)
committerMichael Lentine <mlentine@google.com>
Wed, 30 Jul 2014 21:36:25 +0000 (14:36 -0700)
Change-Id: Iacdb5cbad125787f96c64c88d432fc541c4cad1a

services/surfaceflinger/Android.mk
services/surfaceflinger/SurfaceFlinger.cpp

index f279491..183478d 100644 (file)
@@ -83,7 +83,7 @@ else
     LOCAL_CFLAGS += -DPRESENT_TIME_OFFSET_FROM_VSYNC_NS=0
 endif
 
-LOCAL_CFLAGS += -fvisibility=hidden
+LOCAL_CFLAGS += -fvisibility=hidden -Werror=format
 LOCAL_CFLAGS += -std=c++11
 
 LOCAL_SHARED_LIBRARIES := \
index 6a034ec..63ee4e3 100644 (file)
@@ -637,10 +637,16 @@ status_t SurfaceFlinger::setActiveConfig(const sp<IBinder>& display, int mode) {
                                int mode) :
             mFlinger(flinger), mDisplay(disp) { mMode = mode; }
         virtual bool handler() {
+            Vector<DisplayInfo> configs;
+            mFlinger.getDisplayConfigs(mDisplay, &configs);
+            if(mMode < 0 || mMode >= configs.size()) {
+                ALOGE("Attempt to set active config = %d for display with %d configs",
+                        mMode, configs.size());
+            }
             sp<DisplayDevice> hw(mFlinger.getDisplayDevice(mDisplay));
             if (hw == NULL) {
                 ALOGE("Attempt to set active config = %d for null display %p",
-                        mDisplay.get(), mMode);
+                        mMode, mDisplay.get());
             } else if (hw->getDisplayType() >= DisplayDevice::DISPLAY_VIRTUAL) {
                 ALOGW("Attempt to set active config = %d for virtual display",
                         mMode);
@@ -2267,7 +2273,7 @@ void SurfaceFlinger::setPowerMode(const sp<IBinder>& display, int mode) {
             sp<DisplayDevice> hw(mFlinger.getDisplayDevice(mDisplay));
             if (hw == NULL) {
                 ALOGE("Attempt to set power mode = %d for null display %p",
-                        mDisplay.get(), mMode);
+                        mMode, mDisplay.get());
             } else if (hw->getDisplayType() >= DisplayDevice::DISPLAY_VIRTUAL) {
                 ALOGW("Attempt to set power mode = %d for virtual display",
                         mMode);