diff --git a/lib/search/glob.c b/lib/search/glob.c index 602146162..6e9907600 100644 --- a/lib/search/glob.c +++ b/lib/search/glob.c @@ -51,10 +51,12 @@ static GString * mc_search__glob_translate_to_regex (const GString * astr) { const char *str = astr->str; - GString *buff = g_string_new (""); + GString *buff; gsize loop = 0; gboolean inside_group = FALSE; + buff = g_string_sized_new (32); + while (loop < astr->len) { switch (str[loop]) @@ -124,9 +126,12 @@ mc_search__glob_translate_to_regex (const GString * astr) static GString * mc_search__translate_replace_glob_to_regex (gchar * str) { - GString *buff = g_string_sized_new (32); + GString *buff; int cnt = '0'; gboolean escaped_mode = FALSE; + + buff = g_string_sized_new (32); + while (*str) { char c = *str++; diff --git a/lib/search/hex.c b/lib/search/hex.c index c1531e50b..d1d52febe 100644 --- a/lib/search/hex.c +++ b/lib/search/hex.c @@ -52,12 +52,13 @@ static GString * mc_search__hex_translate_to_regex (const GString * astr) { const char *str = astr->str; - GString *buff = g_string_new (""); - gchar *tmp_str = g_strndup (str, astr->len); - gchar *tmp_str2; + GString *buff; + gchar *tmp_str, *tmp_str2; gsize loop = 0; int val, ptr; + buff = g_string_sized_new (64); + tmp_str = g_strndup (str, astr->len); g_strchug (tmp_str); /* trim leadind whitespaces */ while (loop < astr->len) { diff --git a/lib/search/normal.c b/lib/search/normal.c index 761567204..94f4f8937 100644 --- a/lib/search/normal.c +++ b/lib/search/normal.c @@ -49,9 +49,11 @@ static GString * mc_search__normal_translate_to_regex (const GString * astr) { const char *str = astr->str; - GString *buff = g_string_new (""); + GString *buff; gsize loop = 0; + buff = g_string_sized_new (32); + while (loop < astr->len) { switch (str[loop]) { case '*': diff --git a/lib/search/regex.c b/lib/search/regex.c index 2e40f6035..757fc6624 100644 --- a/lib/search/regex.c +++ b/lib/search/regex.c @@ -199,9 +199,9 @@ mc_search__cond_struct_new_regex_ci_str (const char *charset, const GString *ast GString *accumulator, *spec_char, *ret_str; gsize loop; - ret_str = g_string_new (""); - accumulator = g_string_new (""); - spec_char = g_string_new (""); + ret_str = g_string_sized_new (64); + accumulator = g_string_sized_new (64); + spec_char = g_string_sized_new (64); loop = 0; while (loop <= astr->len) @@ -584,7 +584,7 @@ mc_search__run_regex (mc_search_t * lc_mc_search, const void *user_data, if (lc_mc_search->regex_buffer != NULL) g_string_free (lc_mc_search->regex_buffer, TRUE); - lc_mc_search->regex_buffer = g_string_new (""); + lc_mc_search->regex_buffer = g_string_sized_new (64); virtual_pos = current_pos = start_search; while (virtual_pos <= end_search) @@ -696,8 +696,9 @@ mc_search_regex_prepare_replace_str (mc_search_t * lc_mc_search, GString * repla return NULL; } - ret = g_string_new (""); + ret = g_string_sized_new (64); prev_str = replace_str->str; + for (loop = 0; loop < replace_str->len - 1; loop++) { lc_index = mc_search_regex__process_replace_str (replace_str, loop, &len, &replace_flags); diff --git a/lib/search/search.c b/lib/search/search.c index f79bc02a4..2aa0451b4 100644 --- a/lib/search/search.c +++ b/lib/search/search.c @@ -339,12 +339,12 @@ char * mc_search_prepare_replace_str2 (mc_search_t * lc_mc_search, char *replace_str) { GString *ret; - GString *replace_str2 = g_string_new (replace_str); + GString *replace_str2; + + replace_str2 = g_string_new (replace_str); ret = mc_search_prepare_replace_str (lc_mc_search, replace_str2); g_string_free (replace_str2, TRUE); - if (ret) - return g_string_free (ret, FALSE); - return NULL; + return (ret != NULL) ? g_string_free (ret, FALSE) : NULL; } /* --------------------------------------------------------------------------------------------- */