aboutsummaryrefslogtreecommitdiff
path: root/hwcomposer.cpp
diff options
context:
space:
mode:
authorSean Paul <seanpaul@chromium.org>2015-02-04 10:19:55 -0800
committerSean Paul <seanpaul@google.com>2015-02-04 14:46:27 -0800
commitdffca95b7b29cbaf3a7ca2dcdc077b283d8004b1 (patch)
treef3ffce7c260112c4a399d32747b7de7f186bd50a /hwcomposer.cpp
parenta4283c5cc8b86227f998ee7827e6c5d3cfbdfa67 (diff)
downloaddrm_hwcomposer-dffca95b7b29cbaf3a7ca2dcdc077b283d8004b1.tar.gz
drm_hwcomposer: Ignore NULL display_contents
surfaceflinger will send in NULL display_contents in prepare/set, make sure we don't blow up. Signed-off-by: Sean Paul <seanpaul@chromium.org> Change-Id: Ia5085d4bd5e5928b52d81d14d027d0a162995946
Diffstat (limited to 'hwcomposer.cpp')
-rw-r--r--hwcomposer.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/hwcomposer.cpp b/hwcomposer.cpp
index ecbcd29..214b40d 100644
--- a/hwcomposer.cpp
+++ b/hwcomposer.cpp
@@ -149,6 +149,10 @@ static int hwc_prepare(hwc_composer_device_1_t */* dev */, size_t num_displays,
/* TODO: Check flags for HWC_GEOMETRY_CHANGED */
for (i = 0; i < (int)num_displays && i < MAX_NUM_DISPLAYS; i++) {
+
+ if (!display_contents[i])
+ continue;
+
for (j = 0; j < (int)display_contents[i]->numHwLayers; j++) {
ret = hwc_prepare_layer(
&display_contents[i]->hwLayers[j]);
@@ -471,7 +475,8 @@ static int hwc_set(hwc_composer_device_1_t *dev, size_t num_displays,
int ret = 0, i;
for (i = 0; i < (int)num_displays && i < MAX_NUM_DISPLAYS; i++) {
- ret = hwc_set_display(ctx, i, display_contents[i]);
+ if (display_contents[i])
+ ret = hwc_set_display(ctx, i, display_contents[i]);
}
return ret;