aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Valverde <joao.valverde@tecnico.ulisboa.pt>2016-10-16 04:26:14 +0100
committerJoão Valverde <j@v6e.pt>2016-10-24 19:11:14 +0000
commit79de3f5e2986486b9a3ed55af86644ab746ffe65 (patch)
treeac3351bea87e73b92751f09f3a6d0915a5a7e4fc
parent749ffd94d496561b269007a0fe0813d8be7df1bc (diff)
packet.c: split register_dissector into two separate functions
Allows for better code reuse. Change-Id: I0f929e2548cf60905285d62c1095f85565a1c147 Reviewed-on: https://code.wireshark.org/review/18439 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
-rw-r--r--epan/packet.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/epan/packet.c b/epan/packet.c
index 28410f8e0d..5e0142c77f 100644
--- a/epan/packet.c
+++ b/epan/packet.c
@@ -2878,24 +2878,26 @@ destroy_dissector_handle(dissector_handle_t handle)
wmem_free(wmem_epan_scope(), handle);
}
+static dissector_handle_t
+register_dissector_handle(const char *name, dissector_handle_t handle)
+{
+ /* Make sure the registration is unique */
+ g_assert(g_hash_table_lookup(registered_dissectors, name) == NULL);
+
+ g_hash_table_insert(registered_dissectors, (gpointer)name, handle);
+
+ return handle;
+}
+
/* Register a new dissector by name. */
dissector_handle_t
register_dissector(const char *name, dissector_t dissector, const int proto)
{
struct dissector_handle *handle;
- /* Make sure the registration is unique */
- g_assert(g_hash_table_lookup(registered_dissectors, name) == NULL);
+ handle = new_dissector_handle(dissector, proto, name);
- handle = wmem_new(wmem_epan_scope(), struct dissector_handle);
- handle->name = name;
- handle->dissector = dissector;
- handle->protocol = find_protocol_by_id(proto);
-
- g_hash_table_insert(registered_dissectors, (gpointer)name,
- (gpointer) handle);
-
- return handle;
+ return register_dissector_handle(name, handle);
}
static gboolean