--- a/use-gslice.diff Wed May 15 13:32:42 2013 +0300
+++ b/use-gslice.diff Wed Nov 12 23:04:36 2014 +0200
@@ -1,10 +1,10 @@
# HG changeset patch
-# Parent eea31b4da8d02b5e9aaaab062848273610f9d0dd
-[work-in-progress] Use glib slices to allocate constant-size blocks
+# Parent c45500769f0c34734851c9079e57add63d083c25
+Use glib slices to allocate constant-size blocks
-diff -r eea31b4da8d0 mcabber/mcabber/caps.c
---- a/mcabber/mcabber/caps.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/caps.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/caps.c
+--- a/mcabber/mcabber/caps.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/caps.c Wed Nov 12 03:30:06 2014 +0200
@@ -52,7 +52,7 @@
g_hash_table_destroy(c->identities);
g_hash_table_destroy(c->features);
@@ -58,9 +58,9 @@
char *f = g_strdup(formtype);
d->fields = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, field_destroy);
-diff -r eea31b4da8d0 mcabber/mcabber/commands.c
---- a/mcabber/mcabber/commands.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/commands.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/commands.c
+--- a/mcabber/mcabber/commands.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/commands.c Wed Nov 12 03:30:06 2014 +0200
@@ -115,7 +115,7 @@
gpointer userdata = command->userdata;
Commands = g_slist_delete_link(Commands, sl_cmd);
@@ -79,7 +79,7 @@
strncpy(n_cmd->name, name, 32-1);
n_cmd->help = help;
n_cmd->completion_flags[0] = flags_row1;
-@@ -1581,7 +1581,7 @@
+@@ -1571,7 +1571,7 @@
return NULL;
}
@@ -88,7 +88,7 @@
len = fread(msgbuf, 1, HBB_BLOCKSIZE-1, fd);
fclose(fd);
-@@ -1605,7 +1605,7 @@
+@@ -1595,7 +1595,7 @@
if (*p || (size_t)(p-msgbuf) != len) { // We're not at the End Of Line...
scr_LogPrint(LPRINT_LOGNORM, "Message file contains "
"invalid characters (%s)", filename);
@@ -97,7 +97,7 @@
return NULL;
}
-@@ -1619,7 +1619,7 @@
+@@ -1609,7 +1609,7 @@
// It could be empty, once the trailing newlines are gone
if (p == msgbuf && *p == '\n') {
scr_LogPrint(LPRINT_LOGNORM, "Message file is empty (%s)", filename);
@@ -106,7 +106,7 @@
return NULL;
}
-@@ -1628,7 +1628,7 @@
+@@ -1618,7 +1618,7 @@
if (!msgbuf_utf8 && msgbuf)
scr_LogPrint(LPRINT_LOGNORM, "Message file charset conversion error (%s)",
filename);
@@ -115,7 +115,7 @@
return msgbuf_utf8;
}
-@@ -1916,7 +1916,7 @@
+@@ -1906,7 +1906,7 @@
esub = buddy_getsubscription(bud);
on_srv = buddy_getonserverflag(bud);
@@ -124,7 +124,7 @@
if (bjid) {
GSList *resources, *p_res;
-@@ -2015,7 +2015,7 @@
+@@ -2005,7 +2005,7 @@
type == ROSTER_TYPE_GROUP ? "group" :
(type == ROSTER_TYPE_SPECIAL ? "special" : "unknown"));
}
@@ -133,7 +133,7 @@
// Tell the user if this item has an annotation.
if (type == ROSTER_TYPE_USER ||
-@@ -2063,7 +2063,7 @@
+@@ -2054,7 +2054,7 @@
bjid = buddy_getjid(bud);
@@ -142,16 +142,16 @@
strncpy(buffer, "Room members:", 127);
scr_WriteIncomingMessage(bjid, buffer, 0, HBB_PREFIX_INFO, 0);
-@@ -2118,7 +2118,7 @@
- g_free(p_res->data);
- }
+@@ -2114,7 +2114,7 @@
+ scr_WriteIncomingMessage(bjid, buffer, 0, HBB_PREFIX_INFO, 0);
+
g_slist_free(resources);
- g_free(buffer);
+ g_slice_free1(4096, buffer);
}
static void move_group_member(gpointer bud, void *groupnamedata)
-@@ -3110,7 +3110,7 @@
+@@ -3137,7 +3137,7 @@
affil = buddy_getaffil(bud, nick);
realjid = buddy_getrjid(bud, nick);
@@ -160,7 +160,7 @@
snprintf(buffer, 4095, "Whois [%s]", nick);
scr_WriteIncomingMessage(bjid, buffer, 0, msg_flag, 0);
-@@ -3140,7 +3140,7 @@
+@@ -3167,7 +3167,7 @@
scr_WriteIncomingMessage(bjid, "End of WHOIS", 0, msg_flag, 0);
@@ -169,9 +169,9 @@
g_free(nick);
if (paramlst)
free_arg_lst(paramlst);
-diff -r eea31b4da8d0 mcabber/mcabber/events.c
---- a/mcabber/mcabber/events.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/events.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/events.c
+--- a/mcabber/mcabber/events.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/events.c Wed Nov 12 03:30:06 2014 +0200
@@ -83,7 +83,7 @@
return NULL;
}
@@ -199,9 +199,9 @@
}
g_slist_free(evs_list);
evs_list = NULL;
-diff -r eea31b4da8d0 mcabber/mcabber/hbuf.c
---- a/mcabber/mcabber/hbuf.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/hbuf.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/hbuf.c
+--- a/mcabber/mcabber/hbuf.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/hbuf.c Wed Nov 12 03:30:06 2014 +0200
@@ -29,7 +29,6 @@
#include "utf8.h"
#include "screen.h"
@@ -309,9 +309,9 @@
(*array_elt)->timestamp = blk->prefix.timestamp;
(*array_elt)->flags = blk->prefix.flags;
(*array_elt)->mucnicklen = blk->prefix.mucnicklen;
-diff -r eea31b4da8d0 mcabber/mcabber/hooks.c
---- a/mcabber/mcabber/hooks.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/hooks.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/hooks.c
+--- a/mcabber/mcabber/hooks.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/hooks.c Wed Nov 12 03:30:06 2014 +0200
@@ -99,7 +99,7 @@
gint priority, gpointer userdata)
{
@@ -330,9 +330,9 @@
*hqueue = g_slist_delete_link(*hqueue, el);
// Remove hook hash table entry if the hook queue is empty
if (!*hqueue)
-diff -r eea31b4da8d0 mcabber/mcabber/modules.c
---- a/mcabber/mcabber/modules.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/modules.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/modules.c
+--- a/mcabber/mcabber/modules.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/modules.c Wed Nov 12 03:30:06 2014 +0200
@@ -176,7 +176,7 @@
}
@@ -351,10 +351,10 @@
return NULL;
}
-diff -r eea31b4da8d0 mcabber/mcabber/screen.c
---- a/mcabber/mcabber/screen.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/screen.c Wed May 15 12:57:17 2013 +0300
-@@ -1314,7 +1314,7 @@
+diff -r c45500769f0c mcabber/mcabber/screen.c
+--- a/mcabber/mcabber/screen.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/screen.c Wed Nov 12 03:30:06 2014 +0200
+@@ -1360,7 +1360,7 @@
wattrset(win_entry->win, get_color(COLOR_GENERAL));
g_free(line->text);
@@ -363,10 +363,19 @@
} else {
wclrtobot(win_entry->win);
break;
-diff -r eea31b4da8d0 mcabber/mcabber/settings.c
---- a/mcabber/mcabber/settings.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/settings.c Wed May 15 12:57:17 2013 +0300
-@@ -458,7 +458,7 @@
+@@ -1374,7 +1374,7 @@
+ scr_buffer_scroll_lock(1);
+ }
+ g_free(line->text);
+- g_free(line);
++ g_slice_free(hbb_line, line);
+ } else if (autolock && win_entry->bd->lock) {
+ scr_buffer_scroll_lock(0);
+ }
+diff -r c45500769f0c mcabber/mcabber/settings.c
+--- a/mcabber/mcabber/settings.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/settings.c Wed Nov 12 03:30:06 2014 +0200
+@@ -457,7 +457,7 @@
// If value is 0, we do not need to create a structure (that's
// the default value).
if (value) {
@@ -375,7 +384,7 @@
pgpdata->pgp_disabled = value;
g_hash_table_insert(pgpopt, g_strdup(bjid), pgpdata);
}
-@@ -498,7 +498,7 @@
+@@ -497,7 +497,7 @@
// If value is 0, we do not need to create a structure (that's
// the default value).
if (value) {
@@ -384,7 +393,7 @@
pgpdata->pgp_force = value;
g_hash_table_insert(pgpopt, g_strdup(bjid), pgpdata);
}
-@@ -538,7 +538,7 @@
+@@ -537,7 +537,7 @@
// If keyid is NULL, we do not need to create a structure (that's
// the default value).
if (keyid) {
@@ -393,9 +402,9 @@
pgpdata->pgp_keyid = g_strdup(keyid);
g_hash_table_insert(pgpopt, g_strdup(bjid), pgpdata);
}
-diff -r eea31b4da8d0 mcabber/mcabber/xmpp_iq.c
---- a/mcabber/mcabber/xmpp_iq.c Wed May 15 12:57:08 2013 +0300
-+++ b/mcabber/mcabber/xmpp_iq.c Wed May 15 12:57:17 2013 +0300
+diff -r c45500769f0c mcabber/mcabber/xmpp_iq.c
+--- a/mcabber/mcabber/xmpp_iq.c Wed Nov 12 02:43:42 2014 +0200
++++ b/mcabber/mcabber/xmpp_iq.c Wed Nov 12 03:30:06 2014 +0200
@@ -765,7 +765,7 @@
return LM_HANDLER_RESULT_REMOVE_MESSAGE;
}