diff options
author | Sean Paul <seanpaul@chromium.org> | 2015-02-04 10:19:55 -0800 |
---|---|---|
committer | Sean Paul <seanpaul@google.com> | 2015-02-04 14:46:27 -0800 |
commit | dffca95b7b29cbaf3a7ca2dcdc077b283d8004b1 (patch) | |
tree | f3ffce7c260112c4a399d32747b7de7f186bd50a /hwcomposer.cpp | |
parent | a4283c5cc8b86227f998ee7827e6c5d3cfbdfa67 (diff) | |
download | drm_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.cpp | 7 |
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; |