#define FOR_TABLE(workspace) \
for (int cols = 0; cols < workspace->cols; cols++) \
for (int rows = 0; rows < workspace->rows; rows++)
+#define FREE(pointer) do { \
+ if (pointer == NULL) { \
+ free(pointer); \
+ pointer = NULL; \
+ } \
+} \
+while (0)
/* ##__VA_ARGS__ means: leave out __VA_ARGS__ completely if it is empty, that is,
delete the preceding comma */
xcb_xinerama_is_active_reply_t *reply;
reply = xcb_xinerama_is_active_reply(conn, xcb_xinerama_is_active(conn), NULL);
- if (!reply->state) {
+ if (reply == NULL || !reply->state) {
LOG("Xinerama is not active (in your X-Server), disabling.\n");
- free(reply);
+ FREE(reply);
disable_xinerama(conn);
return;
}
- free(reply);
+ FREE(reply);
query_screens(conn, virtual_screens);