summaryrefslogtreecommitdiffstats
path: root/minui/graphics_adf.cpp
diff options
context:
space:
mode:
authorTao Bao <tbao@google.com>2018-10-21 21:12:37 +0200
committerTao Bao <tbao@google.com>2018-10-23 03:18:02 +0200
commit92bdb5a38964baf8326a7d6f53926c30e250922c (patch)
tree23421d8b4d4bb98f9f8e0cfc20ec08889a14d22f /minui/graphics_adf.cpp
parentMerge "Fix instrumentation_for to refer to name of module" (diff)
downloadandroid_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.tar
android_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.tar.gz
android_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.tar.bz2
android_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.tar.lz
android_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.tar.xz
android_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.tar.zst
android_bootable_recovery-92bdb5a38964baf8326a7d6f53926c30e250922c.zip
Diffstat (limited to '')
-rw-r--r--minui/graphics_adf.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/minui/graphics_adf.cpp b/minui/graphics_adf.cpp
index 7439df9ac..6fc193f74 100644
--- a/minui/graphics_adf.cpp
+++ b/minui/graphics_adf.cpp
@@ -45,14 +45,14 @@ int MinuiBackendAdf::SurfaceInit(const drm_mode_modeinfo* mode, GRSurfaceAdf* su
surf->row_bytes = surf->pitch;
surf->pixel_bytes = (format == DRM_FORMAT_RGB565) ? 2 : 4;
- surf->data = static_cast<uint8_t*>(
- mmap(nullptr, surf->pitch * surf->height, PROT_WRITE, MAP_SHARED, surf->fd, surf->offset));
- if (surf->data == MAP_FAILED) {
+ auto mmapped =
+ mmap(nullptr, surf->pitch * surf->height, PROT_WRITE, MAP_SHARED, surf->fd, surf->offset);
+ if (mmapped == MAP_FAILED) {
int saved_errno = errno;
close(surf->fd);
return -saved_errno;
}
-
+ surf->mmapped_buffer_ = static_cast<uint8_t*>(mmapped);
return 0;
}
@@ -185,7 +185,9 @@ void MinuiBackendAdf::Blank(bool blank) {
}
void MinuiBackendAdf::SurfaceDestroy(GRSurfaceAdf* surf) {
- munmap(surf->data, surf->pitch * surf->height);
+ if (surf->mmapped_buffer_) {
+ munmap(surf->mmapped_buffer_, surf->pitch * surf->height);
+ }
close(surf->fence_fd);
close(surf->fd);
}