Fix memory leaks
authorKhaled Hosny <khaledhosny@eglug.org>
Sat, 10 Mar 2018 22:20:04 +0000 (00:20 +0200)
committerKhaled Hosny <khaledhosny@eglug.org>
Sat, 10 Mar 2018 22:20:04 +0000 (00:20 +0200)
test/unicode-conformance/BidiCharacterTest.c
test/unicode-conformance/BidiTest.c

index 9f58e7975bbdb6152a441949c0d791dc2c117b20..791f911dc7f4f0b396b5d6d043828dac2fe59f1a 100644 (file)
@@ -299,6 +299,14 @@ main (int argc, char **argv)
       if (line[0] == '#' || line[0] == '\n')
         continue;
 
+      free (code_points);
+      free (expected_levels);
+      free (expected_ltor);
+      free (bracket_types);
+      free (types);
+      free (levels);
+      free (ltor);
+
       parse_test_line (line,
                        line_no,
                        &code_points,      /* Field 0 */
@@ -311,16 +319,9 @@ main (int argc, char **argv)
                        );
 
       /* Test it */
-      free(bracket_types);
       bracket_types = malloc ( sizeof(FriBidiBracketType) * code_points_len);
-
-      free(types);
       types = malloc ( sizeof(FriBidiCharType) * code_points_len);
-
-      free(levels);
       levels = malloc (sizeof (FriBidiLevel) * code_points_len);
-
-      free (ltor);
       ltor = malloc (sizeof (FriBidiStrIndex) * code_points_len);
 
 
@@ -460,5 +461,13 @@ main (int argc, char **argv)
   else
     printf("No errors found! :-)\n");
 
+  free (code_points);
+  free (expected_levels);
+  free (expected_ltor);
+  free (bracket_types);
+  free (types);
+  free (levels);
+  free (ltor);
+
   return numerrs;
 }
index 12d0fbbfd1cae58f7c8368db89d31fe28d47865e..5f931f13b27a8dc0315d2ece050751d5ed156ac8 100644 (file)
@@ -447,6 +447,7 @@ main (int argc, char **argv)
     free (ltor);
     free (levels);
     free (expected_ltor);
+    free (expected_levels);
     free (types);
     fclose(channel);