summaryrefslogtreecommitdiff
path: root/epan/reassemble.c
diff options
context:
space:
mode:
authorBill Meier <wmeier@newsguy.com>2012-08-09 14:55:13 +0000
committerBill Meier <wmeier@newsguy.com>2012-08-09 14:55:13 +0000
commit103ddcbfd5f9c0ceeb322aaa6f5bbca3b47f884d (patch)
treeb2fbe8c13fd70920658e4144d6862b1373465abc /epan/reassemble.c
parentab3dc72ea05ba54e142d8b7846b5938747fc7437 (diff)
downloadwireshark-103ddcbfd5f9c0ceeb322aaa6f5bbca3b47f884d.tar.gz
Use g_slice allocation for 'reassembled_table' keys (instead of se allocation).
Not strictly required, but IMO a bit cleaner (if maybe a bit less efficient). svn path=/trunk/; revision=44382
Diffstat (limited to 'epan/reassemble.c')
-rw-r--r--epan/reassemble.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/epan/reassemble.c b/epan/reassemble.c
index 2090711546..d4862ec62a 100644
--- a/epan/reassemble.c
+++ b/epan/reassemble.c
@@ -235,10 +235,10 @@ static fragment_data *new_head(const guint32 flags)
/*
* For a reassembled-packet hash table entry, free the fragment data
- * to which the value refers.
+ * to which the value refers and also the key itself.
*/
static gboolean
-free_all_reassembled_fragments(gpointer key_arg _U_, gpointer value,
+free_all_reassembled_fragments(gpointer key_arg, gpointer value,
gpointer user_data)
{
GPtrArray *allocated_fragments = (GPtrArray *) user_data;
@@ -260,6 +260,8 @@ free_all_reassembled_fragments(gpointer key_arg _U_, gpointer value,
}
}
+ g_slice_free(reassembled_key, (reassembled_key *)key_arg);
+
return TRUE;
}
@@ -307,8 +309,7 @@ fragment_table_init(GHashTable **fragment_table)
*
* Remove all entries and free fragment data for each entry.
*
- * If slices are used (GLIB >= 2.10)
- * the keys are freed by calling fragment_free_key()
+ * The keys are freed by calling fragment_free_key()
* and the values are freed in free_all_fragments().
*
* free_all_fragments()
@@ -370,7 +371,7 @@ reassembled_table_init(GHashTable **reassembled_table)
* The reassembled-packet hash table exists.
*
* Remove all entries and free reassembled packet
- * data for each entry.
+ * data and key for each entry.
*/
allocated_fragments = g_ptr_array_new();
@@ -381,8 +382,7 @@ reassembled_table_init(GHashTable **reassembled_table)
g_ptr_array_free(allocated_fragments, TRUE);
} else {
/* The fragment table does not exist. Create it */
- *reassembled_table = g_hash_table_new(reassembled_hash,
- reassembled_equal);
+ *reassembled_table = g_hash_table_new(reassembled_hash, reassembled_equal);
}
}
@@ -615,7 +615,7 @@ fragment_reassembled(fragment_data *fd_head, const packet_info *pinfo,
* This was not fragmented, so there's no fragment
* table; just hash it using the current frame number.
*/
- new_key = se_alloc(sizeof(reassembled_key));
+ new_key = g_slice_new(reassembled_key);
new_key->frame = pinfo->fd->num;
new_key->id = id;
g_hash_table_insert(reassembled_table, new_key, fd_head);
@@ -624,7 +624,7 @@ fragment_reassembled(fragment_data *fd_head, const packet_info *pinfo,
* Hash it with the frame numbers for all the frames.
*/
for (fd = fd_head->next; fd != NULL; fd = fd->next){
- new_key = se_alloc(sizeof(reassembled_key));
+ new_key = g_slice_new(reassembled_key);
new_key->frame = fd->frame;
new_key->id = id;
g_hash_table_insert(reassembled_table, new_key,
@@ -1811,7 +1811,7 @@ fragment_end_seq_next(const packet_info *pinfo, const guint32 id, GHashTable *fr
*/
fragment_reassembled(fd_head, pinfo, reassembled_table, id);
if (fd_head->next != NULL) {
- new_key = se_alloc(sizeof(reassembled_key));
+ new_key = g_slice_new(reassembled_key);
new_key->frame = pinfo->fd->num;
new_key->id = id;
g_hash_table_insert(reassembled_table, new_key, fd_head);