ccanlint: remove redundant num_lines in struct ccan_file.
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 3 Dec 2012 11:36:40 +0000 (22:06 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 3 Dec 2012 11:36:40 +0000 (22:06 +1030)
We can use tal_count.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
tools/ccanlint/file_analysis.c
tools/ccanlint/tests/headers_idempotent.c
tools/ccanlint/tests/no_trailing_whitespace.c
tools/ccanlint/tests/reduce_features.c
tools/manifest.c
tools/manifest.h

index f5ebd1ce44bff9d8c0555ea5eece1a5dc5a18b95..8fbb7186c91213127837108228581c92dcac534f 100644 (file)
@@ -218,9 +218,10 @@ struct line_info *get_ccan_line_info(struct ccan_file *f)
                return f->line_info;
 
        get_ccan_file_lines(f);
-       f->line_info = tal_arr(f->lines, struct line_info, f->num_lines);
+       f->line_info = tal_arr(f->lines, struct line_info,
+                              tal_count(f->lines)-1);
 
-       for (i = 0; i < f->num_lines; continued = continues(f->lines[i++])) {
+       for (i = 0; f->lines[i]; continued = continues(f->lines[i++])) {
                char *p;
                bool still_doc_line;
 
index d7c890916b1f541037bc50ace35ee10cdf0aa533..55fa9974b6d37c08edd6fc004e7068fdf25be974 100644 (file)
@@ -64,7 +64,7 @@ static void handle_idem(struct manifest *m, struct score *score)
                if (fprintf(out, "#ifndef %s\n#define %s\n", name, name) < 0)
                        err(1, "Writing %s", tmpname);
 
-               for (i = 0; i < e->file->num_lines; i++)
+               for (i = 0; e->file->lines[i]; i++)
                        if (fprintf(out, "%s\n", e->file->lines[i]) < 0)
                                err(1, "Writing %s", tmpname);
 
@@ -86,11 +86,11 @@ static void check_idem(struct ccan_file *f, struct score *score)
        const char *line, *sym;
 
        line_info = get_ccan_line_info(f);
-       if (f->num_lines < 3)
+       if (tal_count(f->lines) < 4)
                /* FIXME: We assume small headers probably uninteresting. */
                return;
 
-       for (i = 0; i < f->num_lines; i++) {
+       for (i = 0; f->lines[i]; i++) {
                if (line_info[i].type == DOC_LINE
                    || line_info[i].type == COMMENT_LINE)
                        continue;
@@ -104,11 +104,11 @@ static void check_idem(struct ccan_file *f, struct score *score)
        }
 
        /* No code at all?  Don't complain. */
-       if (i == f->num_lines)
+       if (!f->lines[i])
                return;
 
        first_preproc_line = i;
-       for (i = first_preproc_line+1; i < f->num_lines; i++) {
+       for (i = first_preproc_line+1; f->lines[i]; i++) {
                if (line_info[i].type == DOC_LINE
                    || line_info[i].type == COMMENT_LINE)
                        continue;
@@ -122,7 +122,7 @@ static void check_idem(struct ccan_file *f, struct score *score)
        }
 
        /* No code at all?  Weird. */
-       if (i == f->num_lines)
+       if (!f->lines[i])
                return;
 
        /* We expect a condition on this line. */
@@ -158,7 +158,7 @@ static void check_idem(struct ccan_file *f, struct score *score)
        }
 
        /* Rest of code should all be covered by that conditional. */
-       for (i++; i < f->num_lines; i++) {
+       for (i++; f->lines[i]; i++) {
                unsigned int val = 0;
                if (line_info[i].type == DOC_LINE
                    || line_info[i].type == COMMENT_LINE)
index bba51d8c5a3acd9e65c76044ee09194046ae7193..60ecee7962aae030b6570af27790b2a4c67ff7fd 100644 (file)
@@ -34,7 +34,7 @@ static void check_trailing_whitespace(struct manifest *m,
        foreach_ptr(list, &m->c_files, &m->h_files) {
                list_for_each(list, f, list) {
                        char **lines = get_ccan_file_lines(f);
-                       for (i = 0; i < f->num_lines; i++) {
+                       for (i = 0; f->lines[i]; i++) {
                                char *err = get_trailing_whitespace(score,
                                                                    lines[i]);
                                if (err)
index 54c26f9736c6a96d3c49e6e0f50eb7379abcc5bb..b46c85fcfef081c685c74f673436f12d39e9ab28 100644 (file)
@@ -83,7 +83,7 @@ static struct htable_option *get_used_options(struct manifest *m)
                        info = get_ccan_line_info(f);
                        struct pp_conditions *prev = NULL;
 
-                       for (i = 0; i < f->num_lines; i++) {
+                       for (i = 0; f->lines[i]; i++) {
                                if (info[i].cond && info[i].cond != prev) {
                                        num += add_options(opts, info[i].cond);
                                        prev = info[i].cond;
index b94016e1a62a419249e8a4f9bcb2d272b132be3c..927a21852c783ee209ede031a25d4716fa3256c3 100644 (file)
@@ -57,8 +57,6 @@ char **get_ccan_file_lines(struct ccan_file *f)
                f->lines = tal_strsplit(f, get_ccan_file_contents(f), "\n",
                                        STR_EMPTY_OK);
 
-       /* FIXME: is f->num_lines necessary? */
-       f->num_lines = tal_count(f->lines) - 1;
        return f->lines;
 }
 
index 945574ded878bfb7d782208ee08b8b64e7c93c0e..86e1f20566db89c8540f84ea2d288d55995699c1 100644 (file)
@@ -64,7 +64,6 @@ struct ccan_file {
        size_t contents_size;
 
        /* Use get_ccan_file_lines / get_ccan_line_info to fill these. */
-       unsigned int num_lines;
        char **lines;
        struct line_info *line_info;