Use glib for all allocations

- Removes need to check for malloc failure
- Removes need for NULL checks on free
- Adds checks for integer overflows
- Removes some extra memset calls
- Removes chance of mixing libc and glib malloc/free
This commit is contained in:
TingPing
2014-12-28 06:37:25 -05:00
parent c4cb1b25ec
commit 83032b1aa3
46 changed files with 796 additions and 1082 deletions

View File

@@ -224,7 +224,7 @@ fe_args (int argc, char *argv[])
/* cuts can. So we have to set the current dir manually, to the path */
/* of the exe. */
{
char *tmp = strdup (argv[0]);
char *tmp = g_strdup (argv[0]);
char *sl;
sl = strrchr (tmp, G_DIR_SEPARATOR);
@@ -233,7 +233,7 @@ fe_args (int argc, char *argv[])
*sl = 0;
chdir (tmp);
}
free (tmp);
g_free (tmp);
}
#endif
@@ -424,8 +424,7 @@ fe_new_window (session *sess, int focus)
void
fe_new_server (struct server *serv)
{
serv->gui = malloc (sizeof (struct server_gui));
memset (serv->gui, 0, sizeof (struct server_gui));
serv->gui = g_new0 (struct server_gui, 1);
}
void
@@ -510,18 +509,15 @@ fe_set_topic (session *sess, char *topic, char *stripped_topic)
}
else
{
if (sess->res->topic_text)
{
free (sess->res->topic_text);
}
g_free (sess->res->topic_text);
if (prefs.hex_text_stripcolor_topic)
{
sess->res->topic_text = strdup (stripped_topic);
sess->res->topic_text = g_strdup (stripped_topic);
}
else
{
sess->res->topic_text = strdup (topic);
sess->res->topic_text = g_strdup (topic);
}
}
}
@@ -547,9 +543,8 @@ fe_update_mode_entry (session *sess, GtkWidget *entry, char **text, char *new_te
{
if (sess->gui->is_tab)
{
if (*text)
free (*text);
*text = strdup (new_text);
g_free (*text);
*text = g_strdup (new_text);
}
}
}
@@ -721,7 +716,7 @@ fe_lastlog (session *sess, session *lastlog_sess, char *sstr, gtk_xtext_search_f
lbuf->search_lnee = strlen (lbuf->search_nee);
}
lbuf->search_flags = flags;
lbuf->search_text = strdup (sstr);
lbuf->search_text = g_strdup (sstr);
gtk_xtext_lastlog (lbuf, buf);
}
@@ -761,9 +756,8 @@ fe_set_lag (server *serv, long lag)
sess = list->data;
if (sess->server == serv)
{
if (sess->res->lag_tip)
free (sess->res->lag_tip);
sess->res->lag_tip = strdup (lagtip);
g_free (sess->res->lag_tip);
sess->res->lag_tip = g_strdup (lagtip);
if (!sess->gui->is_tab || current_tab == sess)
{
@@ -777,9 +771,8 @@ fe_set_lag (server *serv, long lag)
} else
{
sess->res->lag_value = per;
if (sess->res->lag_text)
free (sess->res->lag_text);
sess->res->lag_text = strdup (lagtext);
g_free (sess->res->lag_text);
sess->res->lag_text = g_strdup (lagtext);
}
}
list = list->next;
@@ -807,9 +800,8 @@ fe_set_throttle (server *serv)
snprintf (tbuf, sizeof (tbuf) - 1, _("%d bytes"), serv->sendq_len);
snprintf (tip, sizeof (tip) - 1, _("Network send queue: %d bytes"), serv->sendq_len);
if (sess->res->queue_tip)
free (sess->res->queue_tip);
sess->res->queue_tip = strdup (tip);
g_free (sess->res->queue_tip);
sess->res->queue_tip = g_strdup (tip);
if (!sess->gui->is_tab || current_tab == sess)
{
@@ -823,9 +815,8 @@ fe_set_throttle (server *serv)
} else
{
sess->res->queue_value = per;
if (sess->res->queue_text)
free (sess->res->queue_text);
sess->res->queue_text = strdup (tbuf);
g_free (sess->res->queue_text);
sess->res->queue_text = g_strdup (tbuf);
}
}
list = list->next;
@@ -977,9 +968,8 @@ fe_set_inputbox_contents (session *sess, char *text)
SPELL_ENTRY_SET_TEXT (sess->gui->input_box, text);
} else
{
if (sess->res->input_text)
free (sess->res->input_text);
sess->res->input_text = strdup (text);
g_free (sess->res->input_text);
sess->res->input_text = g_strdup (text);
}
}