]> git.sur5r.net Git - i3/i3/commitdiff
Some assertions to make the static analyzer happy.
authorFernando Tarlá Cardoso Lemos <fernandotcl@gmail.com>
Sat, 26 Feb 2011 00:21:48 +0000 (21:21 -0300)
committerMichael Stapelberg <michael@stapelberg.de>
Mon, 28 Feb 2011 15:49:03 +0000 (16:49 +0100)
Assertions give hints to the static analyzer about code paths
where we make assumptions. Used the Clang Static Analyzer.

src/render.c
src/workspace.c

index af062c8525d515ccb6b9c1932e730c2e21650242..499c62a30cea9665742723e2fbbfb771428ddb87 100644 (file)
@@ -200,6 +200,7 @@ void render_con(Con *con, bool render_fullscreen) {
     /* precalculate the sizes to be able to correct rounding errors */
     int sizes[children];
     if (con->layout == L_DEFAULT && children > 0) {
+        assert(!TAILQ_EMPTY(&con->nodes_head));
         Con *child;
         int i = 0, assigned = 0;
         int total = con->orientation == HORIZ ? rect.width : rect.height;
@@ -226,6 +227,7 @@ void render_con(Con *con, bool render_fullscreen) {
         /* FIXME: refactor this into separate functions: */
     Con *child;
     TAILQ_FOREACH(child, &(con->nodes_head), nodes) {
+        assert(children > 0);
 
         /* default layout */
         if (con->layout == L_DEFAULT) {
index 2912278d3089e0c55ee25f3efa8aac677ff5c758..fa84e2041cf2a68581d11e09e7053d7147991a13 100644 (file)
@@ -199,7 +199,7 @@ static void workspace_reassign_sticky(Con *con) {
  *
  */
 void workspace_show(const char *num) {
-    Con *workspace, *current, *old;
+    Con *workspace, *current, *old = NULL;
 
     workspace = workspace_get(num);
 
@@ -210,6 +210,7 @@ void workspace_show(const char *num) {
             old = current;
         current->fullscreen_mode = CF_NONE;
     }
+    assert(old != NULL);
 
     /* Check if the the currently focused con is on the same Output as the
      * workspace we chose as 'old'. If not, use the workspace of the currently