Commit 5f551788 authored by Rusty Russell's avatar Rusty Russell

ccanlint: remove redundant num_lines in struct ccan_file.

We can use tal_count.
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
parent 756407b4
...@@ -218,9 +218,10 @@ struct line_info *get_ccan_line_info(struct ccan_file *f) ...@@ -218,9 +218,10 @@ struct line_info *get_ccan_line_info(struct ccan_file *f)
return f->line_info; return f->line_info;
get_ccan_file_lines(f); 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; char *p;
bool still_doc_line; bool still_doc_line;
......
...@@ -64,7 +64,7 @@ static void handle_idem(struct manifest *m, struct score *score) ...@@ -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) if (fprintf(out, "#ifndef %s\n#define %s\n", name, name) < 0)
err(1, "Writing %s", tmpname); 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) if (fprintf(out, "%s\n", e->file->lines[i]) < 0)
err(1, "Writing %s", tmpname); err(1, "Writing %s", tmpname);
...@@ -86,11 +86,11 @@ static void check_idem(struct ccan_file *f, struct score *score) ...@@ -86,11 +86,11 @@ static void check_idem(struct ccan_file *f, struct score *score)
const char *line, *sym; const char *line, *sym;
line_info = get_ccan_line_info(f); 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. */ /* FIXME: We assume small headers probably uninteresting. */
return; return;
for (i = 0; i < f->num_lines; i++) { for (i = 0; f->lines[i]; i++) {
if (line_info[i].type == DOC_LINE if (line_info[i].type == DOC_LINE
|| line_info[i].type == COMMENT_LINE) || line_info[i].type == COMMENT_LINE)
continue; continue;
...@@ -104,11 +104,11 @@ static void check_idem(struct ccan_file *f, struct score *score) ...@@ -104,11 +104,11 @@ static void check_idem(struct ccan_file *f, struct score *score)
} }
/* No code at all? Don't complain. */ /* No code at all? Don't complain. */
if (i == f->num_lines) if (!f->lines[i])
return; return;
first_preproc_line = i; 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 if (line_info[i].type == DOC_LINE
|| line_info[i].type == COMMENT_LINE) || line_info[i].type == COMMENT_LINE)
continue; continue;
...@@ -122,7 +122,7 @@ static void check_idem(struct ccan_file *f, struct score *score) ...@@ -122,7 +122,7 @@ static void check_idem(struct ccan_file *f, struct score *score)
} }
/* No code at all? Weird. */ /* No code at all? Weird. */
if (i == f->num_lines) if (!f->lines[i])
return; return;
/* We expect a condition on this line. */ /* We expect a condition on this line. */
...@@ -158,7 +158,7 @@ static void check_idem(struct ccan_file *f, struct score *score) ...@@ -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. */ /* 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; unsigned int val = 0;
if (line_info[i].type == DOC_LINE if (line_info[i].type == DOC_LINE
|| line_info[i].type == COMMENT_LINE) || line_info[i].type == COMMENT_LINE)
......
...@@ -34,7 +34,7 @@ static void check_trailing_whitespace(struct manifest *m, ...@@ -34,7 +34,7 @@ static void check_trailing_whitespace(struct manifest *m,
foreach_ptr(list, &m->c_files, &m->h_files) { foreach_ptr(list, &m->c_files, &m->h_files) {
list_for_each(list, f, list) { list_for_each(list, f, list) {
char **lines = get_ccan_file_lines(f); 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, char *err = get_trailing_whitespace(score,
lines[i]); lines[i]);
if (err) if (err)
......
...@@ -83,7 +83,7 @@ static struct htable_option *get_used_options(struct manifest *m) ...@@ -83,7 +83,7 @@ static struct htable_option *get_used_options(struct manifest *m)
info = get_ccan_line_info(f); info = get_ccan_line_info(f);
struct pp_conditions *prev = NULL; 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) { if (info[i].cond && info[i].cond != prev) {
num += add_options(opts, info[i].cond); num += add_options(opts, info[i].cond);
prev = info[i].cond; prev = info[i].cond;
......
...@@ -57,8 +57,6 @@ char **get_ccan_file_lines(struct ccan_file *f) ...@@ -57,8 +57,6 @@ char **get_ccan_file_lines(struct ccan_file *f)
f->lines = tal_strsplit(f, get_ccan_file_contents(f), "\n", f->lines = tal_strsplit(f, get_ccan_file_contents(f), "\n",
STR_EMPTY_OK); STR_EMPTY_OK);
/* FIXME: is f->num_lines necessary? */
f->num_lines = tal_count(f->lines) - 1;
return f->lines; return f->lines;
} }
......
...@@ -64,7 +64,6 @@ struct ccan_file { ...@@ -64,7 +64,6 @@ struct ccan_file {
size_t contents_size; size_t contents_size;
/* Use get_ccan_file_lines / get_ccan_line_info to fill these. */ /* Use get_ccan_file_lines / get_ccan_line_info to fill these. */
unsigned int num_lines;
char **lines; char **lines;
struct line_info *line_info; struct line_info *line_info;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment