libbb: introduce and use xrealloc_vector
function old new delta xrealloc_vector_helper - 51 +51 create_list 84 99 +15 getopt_main 690 695 +5 passwd_main 1049 1053 +4 get_cached 85 89 +4 msh_main 1377 1380 +3 add_match 42 41 -1 read_lines 720 718 -2 grave 1068 1066 -2 fill_match_lines 143 141 -2 add_to_dirlist 67 65 -2 add_input_file 49 47 -2 act 252 250 -2 fsck_main 2252 2246 -6 man_main 765 757 -8 bb_internal_initgroups 228 220 -8 cut_main 1052 1041 -11 add_edge_to_node 55 43 -12 dpkg_main 3851 3835 -16 ifupdown_main 2202 2178 -24 sort_main 838 812 -26 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 5/15 up/down: 82/-124) Total: -42 bytes
This commit is contained in:
@ -322,7 +322,7 @@ static void read_lines(void)
|
||||
}
|
||||
reached_eof:
|
||||
last_terminated = terminated;
|
||||
flines = xrealloc(flines, (max_fline+1) * sizeof(char *));
|
||||
flines = xrealloc_vector(flines, 8, max_fline);
|
||||
if (option_mask32 & FLAG_N) {
|
||||
/* Width of 7 preserves tab spacing in the text */
|
||||
flines[max_fline] = xasprintf(
|
||||
@ -332,7 +332,7 @@ static void read_lines(void)
|
||||
if (terminated)
|
||||
max_lineno++;
|
||||
} else {
|
||||
flines[max_fline] = xrealloc(current_line, strlen(current_line)+1);
|
||||
flines[max_fline] = xrealloc(current_line, strlen(current_line) + 1);
|
||||
}
|
||||
if (max_fline >= MAXLINES) {
|
||||
eof_error = 0; /* Pretend we saw EOF */
|
||||
@ -933,7 +933,7 @@ static void fill_match_lines(unsigned pos)
|
||||
/* and we didn't match it last time */
|
||||
&& !(num_matches && match_lines[num_matches-1] == pos)
|
||||
) {
|
||||
match_lines = xrealloc(match_lines, (num_matches+1) * sizeof(int));
|
||||
match_lines = xrealloc_vector(match_lines, 4, num_matches);
|
||||
match_lines[num_matches++] = pos;
|
||||
}
|
||||
pos++;
|
||||
|
@ -117,11 +117,7 @@ int man_main(int argc UNUSED_PARAM, char **argv)
|
||||
count_mp++;
|
||||
/* man_path_list is NULL terminated */
|
||||
man_path_list[count_mp] = NULL;
|
||||
if (!(count_mp & 0xf)) { /* 0x10, 0x20 etc */
|
||||
/* so that last valid man_path_list[] is [count_mp + 0x10] */
|
||||
man_path_list = xrealloc(man_path_list,
|
||||
(count_mp + 0x11) * sizeof(man_path_list[0]));
|
||||
}
|
||||
man_path_list = xrealloc_vector(man_path_list, 4, count_mp);
|
||||
}
|
||||
if (strcmp("MANSECT", line) == 0) {
|
||||
free(sec_list);
|
||||
|
Reference in New Issue
Block a user