Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/cmdproc.c @ 23013:ba47ec8a2477
When adding outgoing MSN commands to the MsnHistory, free
MsnTransaction->payload to save memory.
MSN_HIST_ELEMS * MSN_BUF_LEN (used in msn_message_gen_payload)
= 48 * 8192 bytes = 384 KB per online MSN account = a lot of wasted memory
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Tue, 20 May 2008 20:59:21 +0000 |
parents | 723b5a2f91ce |
children | e069c16db597 |
comparison
equal
deleted
inserted
replaced
23012:2b91ea8c94d5 | 23013:ba47ec8a2477 |
---|---|
130 if (trans->payload != NULL) | 130 if (trans->payload != NULL) |
131 { | 131 { |
132 data = g_realloc(data, len + trans->payload_len); | 132 data = g_realloc(data, len + trans->payload_len); |
133 memcpy(data + len, trans->payload, trans->payload_len); | 133 memcpy(data + len, trans->payload, trans->payload_len); |
134 len += trans->payload_len; | 134 len += trans->payload_len; |
135 | |
136 /* | |
137 * We're done with trans->payload. Free it so that the memory | |
138 * doesn't sit around in cmdproc->history. | |
139 */ | |
140 g_free(trans->payload); | |
141 trans->payload = NULL; | |
142 trans->payload_len = 0; | |
135 } | 143 } |
136 | 144 |
137 msn_servconn_write(servconn, data, len); | 145 msn_servconn_write(servconn, data, len); |
138 | 146 |
139 g_free(data); | 147 g_free(data); |