Fix: assume that conditions are valid before being compared
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Fri, 17 Aug 2018 17:25:36 +0000 (13:25 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Thu, 23 Aug 2018 00:18:09 +0000 (20:18 -0400)
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
src/common/buffer-usage.c
src/common/session-consumed-size.c

index 3d0026081e1f98e3450f4b0f843b2ca213f5bb17..dbfae89c8630b7886873892dd0222b75e870b953 100644 (file)
@@ -88,6 +88,10 @@ bool lttng_condition_buffer_usage_validate(
                ERR("Invalid buffer condition: a threshold must be set.");
                goto end;
        }
+       if (!usage->domain.set) {
+               ERR("Invalid buffer usage condition: a domain must be set.");
+               goto end;
+       }
 
        valid = true;
 end:
@@ -194,36 +198,24 @@ bool lttng_condition_buffer_usage_is_equal(const struct lttng_condition *_a,
                }
        }
 
-       if ((a->session_name && !b->session_name) ||
-                       (!a->session_name && b->session_name)) {
+       /* Condition is not valid if this is not true. */
+       assert(a->session_name);
+       assert(b->session_name);
+       if (strcmp(a->session_name, b->session_name)) {
                goto end;
        }
 
-       if (a->channel_name && b->channel_name) {
-               if (strcmp(a->channel_name, b->channel_name)) {
-                       goto end;
-               }
-       }       if ((a->channel_name && !b->channel_name) ||
-                       (!a->channel_name && b->channel_name)) {
+       assert(a->channel_name);
+       assert(b->channel_name);
+       if (strcmp(a->channel_name, b->channel_name)) {
                goto end;
        }
 
-       if (a->channel_name && b->channel_name) {
-               if (strcmp(a->channel_name, b->channel_name)) {
-                       goto end;
-               }
-       }
-
-       if ((a->domain.set && !b->domain.set) ||
-                       (!a->domain.set && b->domain.set)) {
+       assert(a->domain.set);
+       assert(b->domain.set);
+       if (a->domain.type != b->domain.type) {
                goto end;
        }
-
-       if (a->domain.set && b->domain.set) {
-               if (a->domain.type != b->domain.type) {
-                       goto end;
-               }
-       }
        is_equal = true;
 end:
        return is_equal;
index 6ff1c24866cd93da6c02bb60920a27004f027bce..e60437d13d3177294d714965dace7212c62b498d 100644 (file)
@@ -136,8 +136,9 @@ bool lttng_condition_session_consumed_size_is_equal(const struct lttng_condition
                }
        }
 
-       if ((a->session_name && !b->session_name) ||
-                       (!a->session_name && b->session_name)) {
+       assert(a->session_name);
+       assert(b->session_name);
+       if (strcmp(a->session_name, b->session_name)) {
                goto end;
        }
 
This page took 0.026881 seconds and 4 git commands to generate.