1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-12-04 14:46:46 -05:00

parser.c: Use glib

We use malloc() to allcoate memory for the arguments.
But later on in cmd_funcs.c we use g_strfreev() to free it.
Let's use g_malloc() to allocate instead.

Second change is to use g_malloc() and g_free() for a gchar.
This commit is contained in:
Michael Vetter 2020-07-23 09:42:43 +02:00
parent 8c0c5cb28c
commit ade0ff589d

View File

@ -138,14 +138,14 @@ _parse_args_helper(const char* const inp, int min, int max, gboolean* result, gb
// if min allowed is 0 and 0 found, return empty char* array // if min allowed is 0 and 0 found, return empty char* array
} else if (min == 0 && num == 0) { } else if (min == 0 && num == 0) {
g_slist_free_full(tokens, free); g_slist_free_full(tokens, free);
gchar** args = malloc((num + 1) * sizeof(*args)); gchar** args = g_malloc((num + 1) * sizeof(*args));
args[0] = NULL; args[0] = NULL;
*result = TRUE; *result = TRUE;
return args; return args;
// otherwise return args array // otherwise return args array
} else { } else {
gchar** args = malloc((num + 1) * sizeof(*args)); gchar** args = g_malloc((num + 1) * sizeof(*args));
GSList* token = tokens; GSList* token = tokens;
token = g_slist_next(token); token = g_slist_next(token);
int arg_count = 0; int arg_count = 0;
@ -298,11 +298,11 @@ get_start(const char* const string, int tokens)
gunichar curr_uni = g_utf8_get_char(curr_ch); gunichar curr_uni = g_utf8_get_char(curr_ch);
if (num_tokens < tokens) { if (num_tokens < tokens) {
gchar* uni_char = malloc(7); gchar* uni_char = g_malloc(7);
int len = g_unichar_to_utf8(curr_uni, uni_char); int len = g_unichar_to_utf8(curr_uni, uni_char);
uni_char[len] = '\0'; uni_char[len] = '\0';
g_string_append(result, uni_char); g_string_append(result, uni_char);
free(uni_char); g_free(uni_char);
} }
if (curr_uni == ' ') { if (curr_uni == ' ') {
if (!in_quotes) { if (!in_quotes) {