Check for g_wayland in every API call.
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Wed, 5 Jul 2017 14:23:17 +0000 (16:23 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
src/main.cpp

index 13e6ab2..f5d33c7 100644 (file)
@@ -179,6 +179,15 @@ int binding_init() noexcept {
    return -1;
 }
 
+#define CHECK_WAYLAND()                                                    \
+   do {                                                                    \
+      if (g_wayland == nullptr) {                                          \
+         afb_req_fail(req, "failed",                                       \
+                      "Binding not initialized, did the compositor die?"); \
+         return;                                                           \
+      }                                                                    \
+   } while (0)
+
 //      _      _                         _        _              ____
 //   __| | ___| |__  _   _  __ _     ___| |_ __ _| |_ _   _ ___ / /\ \
 //  / _` |/ _ \ '_ \| | | |/ _` |   / __| __/ _` | __| | | / __| |  | |
@@ -189,11 +198,7 @@ void debug_status(struct afb_req req) noexcept {
    // Quick and dirty, dump current surfaces and layers
    AFB_REQ_DEBUG(req, "status");
 
-   if (g_wayland == nullptr) {
-      afb_req_fail(req, "failed",
-                   "Binding not initialized, did the compositor die?");
-      return;
-   }
+   CHECK_WAYLAND();
 
    try {
       json j;
@@ -229,6 +234,8 @@ void debug_status(struct afb_req req) noexcept {
 }
 
 void debug_surfaces(afb_req req) {
+   CHECK_WAYLAND();
+
    auto a = json_object_new_array();
 
    if (!g_wayland->controller->surfaces.empty()) {
@@ -241,6 +248,8 @@ void debug_surfaces(afb_req req) {
 }
 
 void debug_layers(afb_req req) {
+   CHECK_WAYLAND();
+
    auto a = json_object_new_array();
 
    if (!g_wayland->controller->layers.empty()) {