1
1

Code optimization: memory allocation and free moved outside of loop.

Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Этот коммит содержится в:
Slava Zanko 2012-04-06 15:39:20 +03:00
родитель b4571ad1c5
Коммит 0e5b78b98b

Просмотреть файл

@ -2466,6 +2466,7 @@ edit_replace_cmd (WEdit * edit, int again)
static char *saved2 = NULL;
char *input1 = NULL; /* user input from the dialog */
char *input2 = NULL;
GString *input2_str = NULL;
char *disp1 = NULL;
char *disp2 = NULL;
long times_replaced = 0;
@ -2491,6 +2492,7 @@ edit_replace_cmd (WEdit * edit, int again)
else
{
char *tmp_inp1, *tmp_inp2;
disp1 = edit_replace_cmd__conv_to_display (saved1 ? saved1 : (char *) "");
disp2 = edit_replace_cmd__conv_to_display (saved2 ? saved2 : (char *) "");
@ -2519,9 +2521,10 @@ edit_replace_cmd (WEdit * edit, int again)
mc_search_free (edit->search);
edit->search = NULL;
}
input2_str = g_string_new (input2);
if (!edit->search)
{
edit->search = mc_search_new (input1, -1);
@ -2568,7 +2571,7 @@ edit_replace_cmd (WEdit * edit, int again)
if ((edit->search_start >= 0) && (edit->search_start < edit->last_byte))
{
gsize i;
GString *tmp_str, *repl_str;
GString *repl_str;
edit->found_start = edit->search_start;
i = edit->found_len = len;
@ -2617,10 +2620,7 @@ edit_replace_cmd (WEdit * edit, int again)
}
}
/* don't process string each time */
tmp_str = g_string_new (input2);
repl_str = mc_search_prepare_replace_str (edit->search, tmp_str);
g_string_free (tmp_str, TRUE);
repl_str = mc_search_prepare_replace_str (edit->search, input2_str);
if (edit->search->error != MC_SEARCH_E_OK)
{
@ -2681,6 +2681,8 @@ edit_replace_cmd (WEdit * edit, int again)
cleanup:
g_free (input1);
g_free (input2);
if (input2_str != NULL)
g_string_free (input2_str, TRUE);
}
/* --------------------------------------------------------------------------------------------- */