diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2015-11-17 23:39:57 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2015-11-18 22:21:12 +0200 |
commit | c78a869e7c00fa95fc6a9f62bbd822fa579806b2 (patch) | |
tree | c208cff9000cf5cb59ed528988ff19e2bc73d3b9 /libkms++/framebuffer.cpp | |
parent | ac362f919a2376bac1f7fd4c96f04edf24f30cff (diff) |
Fb: collect fbs and destroy them in card's destructor
Diffstat (limited to 'libkms++/framebuffer.cpp')
-rw-r--r-- | libkms++/framebuffer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libkms++/framebuffer.cpp b/libkms++/framebuffer.cpp index a7e5ad6..2481561 100644 --- a/libkms++/framebuffer.cpp +++ b/libkms++/framebuffer.cpp @@ -1,3 +1,4 @@ +#include <algorithm> #include <cstring> #include <stdexcept> #include <sys/mman.h> @@ -14,6 +15,7 @@ namespace kms Framebuffer::Framebuffer(Card& card, int width, int height) : DrmObject(card, DRM_MODE_OBJECT_FB), m_width(width), m_height(height) { + card.m_framebuffers.push_back(this); } Framebuffer::Framebuffer(Card& card, uint32_t id) @@ -25,6 +27,16 @@ Framebuffer::Framebuffer(Card& card, uint32_t id) m_height = fb->height; drmModeFreeFB(fb); + + card.m_framebuffers.push_back(this); } +Framebuffer::~Framebuffer() +{ + auto& fbs = card().m_framebuffers; + auto iter = find(fbs.begin(), fbs.end(), this); + card().m_framebuffers.erase(iter); +} + + } |