From f824cccac7311647a8bd22d193d3aac2b961a1dd Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Mon, 18 Nov 2019 12:07:36 +0200 Subject: fbs: use std::array and .at() Use std::array and .at() to get bounds checking. Signed-off-by: Tomi Valkeinen --- kms++/src/dmabufframebuffer.cpp | 6 +++--- kms++/src/dumbframebuffer.cpp | 16 ++++++++-------- kms++/src/extframebuffer.cpp | 3 +-- 3 files changed, 12 insertions(+), 13 deletions(-) (limited to 'kms++/src') diff --git a/kms++/src/dmabufframebuffer.cpp b/kms++/src/dmabufframebuffer.cpp index feac116..d36eb89 100644 --- a/kms++/src/dmabufframebuffer.cpp +++ b/kms++/src/dmabufframebuffer.cpp @@ -32,7 +32,7 @@ DmabufFramebuffer::DmabufFramebuffer(Card& card, uint32_t width, uint32_t height throw std::invalid_argument("the size of fds, pitches and offsets has to match number of planes"); for (int i = 0; i < format_info.num_planes; ++i) { - FramebufferPlane& plane = m_planes[i]; + FramebufferPlane& plane = m_planes.at(i); plane.prime_fd = fds[i]; @@ -65,7 +65,7 @@ DmabufFramebuffer::~DmabufFramebuffer() uint8_t* DmabufFramebuffer::map(unsigned plane) { - FramebufferPlane& p = m_planes[plane]; + FramebufferPlane& p = m_planes.at(plane); if (p.map) return p.map; @@ -80,7 +80,7 @@ uint8_t* DmabufFramebuffer::map(unsigned plane) int DmabufFramebuffer::prime_fd(unsigned plane) { - FramebufferPlane& p = m_planes[plane]; + FramebufferPlane& p = m_planes.at(plane); return p.prime_fd; } diff --git a/kms++/src/dumbframebuffer.cpp b/kms++/src/dumbframebuffer.cpp index 2b74c35..3448fb1 100644 --- a/kms++/src/dumbframebuffer.cpp +++ b/kms++/src/dumbframebuffer.cpp @@ -36,7 +36,7 @@ DumbFramebuffer::DumbFramebuffer(Card& card, uint32_t width, uint32_t height, Pi for (int i = 0; i < format_info.num_planes; ++i) { const PixelFormatPlaneInfo& pi = format_info.planes[i]; - FramebufferPlane& plane = m_planes[i]; + FramebufferPlane& plane = m_planes.at(i); /* create dumb buffer */ struct drm_mode_create_dumb creq = drm_mode_create_dumb(); @@ -74,7 +74,7 @@ DumbFramebuffer::~DumbFramebuffer() drmModeRmFB(card().fd(), id()); for (uint i = 0; i < m_num_planes; ++i) { - FramebufferPlane& plane = m_planes[i]; + FramebufferPlane& plane = m_planes.at(i); /* unmap buffer */ if (plane.map) @@ -91,7 +91,7 @@ DumbFramebuffer::~DumbFramebuffer() uint8_t* DumbFramebuffer::map(unsigned plane) { - FramebufferPlane& p = m_planes[plane]; + FramebufferPlane& p = m_planes.at(plane); if (p.map) return p.map; @@ -114,15 +114,15 @@ uint8_t* DumbFramebuffer::map(unsigned plane) int DumbFramebuffer::prime_fd(unsigned int plane) { - if (m_planes[plane].prime_fd >= 0) - return m_planes[plane].prime_fd; + if (m_planes.at(plane).prime_fd >= 0) + return m_planes.at(plane).prime_fd; - int r = drmPrimeHandleToFD(card().fd(), m_planes[plane].handle, - DRM_CLOEXEC | O_RDWR, &m_planes[plane].prime_fd); + int r = drmPrimeHandleToFD(card().fd(), m_planes.at(plane).handle, + DRM_CLOEXEC | O_RDWR, &m_planes.at(plane).prime_fd); if (r) throw std::runtime_error("drmPrimeHandleToFD failed"); - return m_planes[plane].prime_fd; + return m_planes.at(plane).prime_fd; } } diff --git a/kms++/src/extframebuffer.cpp b/kms++/src/extframebuffer.cpp index 9f7ab6c..23aed50 100644 --- a/kms++/src/extframebuffer.cpp +++ b/kms++/src/extframebuffer.cpp @@ -28,10 +28,9 @@ ExtFramebuffer::ExtFramebuffer(Card& card, uint32_t width, uint32_t height, Pixe throw std::invalid_argument("the size of handles, pitches and offsets has to match number of planes"); for (int i = 0; i < format_info.num_planes; ++i) { - FramebufferPlane& plane = m_planes[i]; + FramebufferPlane& plane = m_planes.at(i); plane.handle = handles[i]; - plane.stride = pitches[i]; plane.offset = offsets[i]; plane.size = plane.stride * height; -- cgit v1.2.3