tweaks: use memory on the stack instead of calling malloc() and free()
Rename some variables in the process, and remove two cluttering asserts.master
parent
7e18100197
commit
53cea142e0
|
@ -1812,7 +1812,7 @@ int do_mouse(void)
|
||||||
* TRUE. */
|
* TRUE. */
|
||||||
void do_output(char *output, size_t output_len, bool allow_cntrls)
|
void do_output(char *output, size_t output_len, bool allow_cntrls)
|
||||||
{
|
{
|
||||||
char *char_buf = charalloc(mb_cur_max());
|
char onechar[mb_cur_max()];
|
||||||
int char_len;
|
int char_len;
|
||||||
size_t current_len = strlen(openfile->current->data);
|
size_t current_len = strlen(openfile->current->data);
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
|
@ -1832,7 +1832,7 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
|
||||||
output[i] = '\n';
|
output[i] = '\n';
|
||||||
|
|
||||||
/* Get the next multibyte character. */
|
/* Get the next multibyte character. */
|
||||||
char_len = parse_mbchar(output + i, char_buf, NULL);
|
char_len = parse_mbchar(output + i, onechar, NULL);
|
||||||
|
|
||||||
i += char_len;
|
i += char_len;
|
||||||
|
|
||||||
|
@ -1853,7 +1853,7 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
|
||||||
charmove(openfile->current->data + openfile->current_x + char_len,
|
charmove(openfile->current->data + openfile->current_x + char_len,
|
||||||
openfile->current->data + openfile->current_x,
|
openfile->current->data + openfile->current_x,
|
||||||
current_len - openfile->current_x + 1);
|
current_len - openfile->current_x + 1);
|
||||||
strncpy(openfile->current->data + openfile->current_x, char_buf,
|
strncpy(openfile->current->data + openfile->current_x, onechar,
|
||||||
char_len);
|
char_len);
|
||||||
current_len += char_len;
|
current_len += char_len;
|
||||||
openfile->totsize++;
|
openfile->totsize++;
|
||||||
|
@ -1893,8 +1893,6 @@ void do_output(char *output, size_t output_len, bool allow_cntrls)
|
||||||
refresh_needed = TRUE;
|
refresh_needed = TRUE;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
free(char_buf);
|
|
||||||
|
|
||||||
openfile->placewewant = xplustabs();
|
openfile->placewewant = xplustabs();
|
||||||
|
|
||||||
#ifndef DISABLE_COLOR
|
#ifndef DISABLE_COLOR
|
||||||
|
|
|
@ -197,7 +197,7 @@ void do_statusbar_output(int *the_input, size_t input_len,
|
||||||
bool filtering)
|
bool filtering)
|
||||||
{
|
{
|
||||||
char *output = charalloc(input_len + 1);
|
char *output = charalloc(input_len + 1);
|
||||||
char *char_buf = charalloc(mb_cur_max());
|
char onechar[mb_cur_max()];
|
||||||
int i, char_len;
|
int i, char_len;
|
||||||
|
|
||||||
/* Copy the typed stuff so it can be treated. */
|
/* Copy the typed stuff so it can be treated. */
|
||||||
|
@ -213,7 +213,7 @@ void do_statusbar_output(int *the_input, size_t input_len,
|
||||||
output[i] = '\n';
|
output[i] = '\n';
|
||||||
|
|
||||||
/* Interpret the next multibyte character. */
|
/* Interpret the next multibyte character. */
|
||||||
char_len = parse_mbchar(output + i, char_buf, NULL);
|
char_len = parse_mbchar(output + i, onechar, NULL);
|
||||||
|
|
||||||
i += char_len;
|
i += char_len;
|
||||||
|
|
||||||
|
@ -225,12 +225,11 @@ void do_statusbar_output(int *the_input, size_t input_len,
|
||||||
answer = charealloc(answer, strlen(answer) + char_len + 1);
|
answer = charealloc(answer, strlen(answer) + char_len + 1);
|
||||||
charmove(answer + statusbar_x + char_len, answer + statusbar_x,
|
charmove(answer + statusbar_x + char_len, answer + statusbar_x,
|
||||||
strlen(answer) - statusbar_x + 1);
|
strlen(answer) - statusbar_x + 1);
|
||||||
strncpy(answer + statusbar_x, char_buf, char_len);
|
strncpy(answer + statusbar_x, onechar, char_len);
|
||||||
|
|
||||||
statusbar_x += char_len;
|
statusbar_x += char_len;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(char_buf);
|
|
||||||
free(output);
|
free(output);
|
||||||
|
|
||||||
update_the_statusbar();
|
update_the_statusbar();
|
||||||
|
|
18
src/text.c
18
src/text.c
|
@ -1682,25 +1682,19 @@ ssize_t break_line(const char *line, ssize_t goal, bool snap_at_nl)
|
||||||
size_t indent_length(const char *line)
|
size_t indent_length(const char *line)
|
||||||
{
|
{
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
char *blank_mb;
|
char onechar[mb_cur_max()];
|
||||||
int blank_mb_len;
|
int charlen;
|
||||||
|
|
||||||
assert(line != NULL);
|
|
||||||
|
|
||||||
blank_mb = charalloc(mb_cur_max());
|
|
||||||
|
|
||||||
while (*line != '\0') {
|
while (*line != '\0') {
|
||||||
blank_mb_len = parse_mbchar(line, blank_mb, NULL);
|
charlen = parse_mbchar(line, onechar, NULL);
|
||||||
|
|
||||||
if (!is_blank_mbchar(blank_mb))
|
if (!is_blank_mbchar(onechar))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
line += blank_mb_len;
|
line += charlen;
|
||||||
len += blank_mb_len;
|
len += charlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(blank_mb);
|
|
||||||
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
#endif /* !NANO_TINY || !DISABLE_JUSTIFY */
|
#endif /* !NANO_TINY || !DISABLE_JUSTIFY */
|
||||||
|
|
Loading…
Reference in New Issue