From 79de3f5e2986486b9a3ed55af86644ab746ffe65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= Date: Sun, 16 Oct 2016 04:26:14 +0100 Subject: packet.c: split register_dissector into two separate functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Allows for better code reuse. Change-Id: I0f929e2548cf60905285d62c1095f85565a1c147 Reviewed-on: https://code.wireshark.org/review/18439 Petri-Dish: João Valverde Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde --- epan/packet.c | 24 +++++++++++++----------- 1 file 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 -- cgit v1.2.3