diff options
author | João Valverde <joao.valverde@tecnico.ulisboa.pt> | 2016-10-16 04:26:14 +0100 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2016-10-24 19:11:14 +0000 |
commit | 79de3f5e2986486b9a3ed55af86644ab746ffe65 (patch) | |
tree | ac3351bea87e73b92751f09f3a6d0915a5a7e4fc /epan/packet.c | |
parent | 749ffd94d496561b269007a0fe0813d8be7df1bc (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>
Diffstat (limited to 'epan/packet.c')
-rw-r--r-- | epan/packet.c | 24 |
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 |