summaryrefslogtreecommitdiffstats
path: root/src/wayland.hpp
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-06-28 16:33:53 +0200
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-08-08 17:24:00 +0200
commit4bfc9ea5a9a5598aceb4e3e43fd2ade99d789200 (patch)
tree6732fab50a59f421e96fc0a7cece5d6097435c2a /src/wayland.hpp
parent63c655fab3274e1319b3f52c236178e00452fe89 (diff)
wayland: header order fixed, comment on controller member order
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
Diffstat (limited to 'src/wayland.hpp')
-rw-r--r--src/wayland.hpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/wayland.hpp b/src/wayland.hpp
index 3516f5e..c47e218 100644
--- a/src/wayland.hpp
+++ b/src/wayland.hpp
@@ -6,8 +6,8 @@
#include "util.h"
#include <functional>
-#include <memory>
#include <unordered_map>
+#include <memory>
#include <vector>
// _ _
@@ -228,6 +228,13 @@ struct screen : public wayland_proxy<struct ivi_controller_screen>,
// \___\___/|_| |_|\__|_| \___/|_|_|\___|_|
//
struct controller : public wayland_proxy<struct ivi_controller> {
+ // HACK:
+ // The order of these member is mandatory, as when objects are destroyed
+ // they will call their parent (that's us right here!) and remove their
+ // proxy-to-id mapping. I.e. the *_proxy_to_id members need to be valid
+ // when the surfaces/layers/screens maps are destroyed. This sucks, but
+ // I cannot see a better solution w/o globals or some other horrible
+ // call-our-parent construct.
std::unordered_map<uintptr_t, uint32_t> surface_proxy_to_id;
std::unordered_map<uintptr_t, uint32_t> layer_proxy_to_id;
std::unordered_map<uintptr_t, uint32_t> screen_proxy_to_id;