aboutsummaryrefslogtreecommitdiffstats
path: root/epan/wslua
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2015-12-10 14:10:17 +0100
committerAnders Broman <a.broman58@gmail.com>2015-12-11 05:17:58 +0000
commitea1789f925f49027e6b2864e6cc846b7016dc13b (patch)
tree6e85ad0ec120dbcca96625db53b1b4da202b1e33 /epan/wslua
parent9c47cb4254e6aa188cd15c1aebe660a6356d91ca (diff)
Qt: Reload Lua expert infos
Support reloading Lua plugins with expert infos. Use the same delayed deregister logic as for fields. Change-Id: I36efa0820050b3a7afed4de7a8b0fa16805e8dfa Reviewed-on: https://code.wireshark.org/review/12498 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'epan/wslua')
-rw-r--r--epan/wslua/wslua_proto.c3
-rw-r--r--epan/wslua/wslua_proto_expert.c4
2 files changed, 4 insertions, 3 deletions
diff --git a/epan/wslua/wslua_proto.c b/epan/wslua/wslua_proto.c
index 1b3c854586..e2fe16f5c8 100644
--- a/epan/wslua/wslua_proto.c
+++ b/epan/wslua/wslua_proto.c
@@ -715,6 +715,9 @@ int Proto_commit(lua_State* L) {
eiri.eiinfo.severity = e->severity;
eiri.eiinfo.summary = e->text;
+ /* Copy this because it will be free'd when deregistering fields */
+ eiri.eiinfo.hf_info.hfinfo.name = g_strdup(eiri.eiinfo.hf_info.hfinfo.name);
+
if (e->ids.ei != EI_INIT_EI || e->ids.hf != EI_INIT_HF) {
return luaL_error(L,"expert fields can be registered only once");
}
diff --git a/epan/wslua/wslua_proto_expert.c b/epan/wslua/wslua_proto_expert.c
index 8a8079152c..e2d0452bce 100644
--- a/epan/wslua/wslua_proto_expert.c
+++ b/epan/wslua/wslua_proto_expert.c
@@ -70,7 +70,7 @@ WSLUA_CONSTRUCTOR ProtoExpert_new(lua_State* L) {
pe->ids.ei = EI_INIT_EI;
pe->ids.hf = EI_INIT_HF;
- pe->abbrev = g_strdup(abbr);
+ pe->abbrev = g_strdup(abbr);
pe->text = g_strdup(text);
pe->group = group;
pe->severity = severity;
@@ -101,8 +101,6 @@ static int ProtoExpert__gc(lua_State* L) {
if (pe->ids.hf == -2) {
/* Only free unregistered and deregistered ProtoExpert */
- g_free((gchar *)pe->abbrev);
- g_free((gchar *)pe->text);
g_free(pe);
}