tests/kms_flip: free the test_output struct when counting modes
authorPaulo Zanoni <paulo.r.zanoni@intel.com>
Mon, 30 Dec 2013 13:40:03 +0000 (11:40 -0200)
committerPaulo Zanoni <paulo.r.zanoni@intel.com>
Tue, 7 Jan 2014 11:57:04 +0000 (09:57 -0200)
Looks like we have to do a lot of work just to count the number of
modes...

Caught by Valgrind.

Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
tests/kms_flip.c

index f57462f..ee9834f 100644 (file)
@@ -1130,6 +1130,16 @@ static unsigned event_loop(struct test_output *o, unsigned duration_ms)
        return end - start;
 }
 
+static void free_test_output(struct test_output *o)
+{
+       int i;
+
+       for (i = 0; i < o->count; i++) {
+               drmModeFreeEncoder(o->kencoder[i]);
+               drmModeFreeConnector(o->kconnector[i]);
+       }
+}
+
 static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
                                 int crtc_count, int duration_ms)
 {
@@ -1232,10 +1242,7 @@ out:
 
        last_connector = NULL;
 
-       for (i = 0; i < o->count; i++) {
-               drmModeFreeEncoder(o->kencoder[i]);
-               drmModeFreeConnector(o->kconnector[i]);
-       }
+       free_test_output(o);
 }
 
 static int run_test(int duration, int flags)
@@ -1262,6 +1269,7 @@ static int run_test(int duration, int flags)
                        if (o.mode_valid)
                                modes++;
 
+                       free_test_output(&o);
                }
        }
 
@@ -1319,6 +1327,7 @@ static int run_pair(int duration, int flags)
                                        if (o.mode_valid)
                                                modes++;
 
+                                       free_test_output(&o);
                                }
                        }
                }