diff options
author | Stig Bjørlykke <stig@bjorlykke.org> | 2015-12-10 14:10:17 +0100 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2015-12-11 05:17:58 +0000 |
commit | ea1789f925f49027e6b2864e6cc846b7016dc13b (patch) | |
tree | 6e85ad0ec120dbcca96625db53b1b4da202b1e33 /epan/wslua | |
parent | 9c47cb4254e6aa188cd15c1aebe660a6356d91ca (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.c | 3 | ||||
-rw-r--r-- | epan/wslua/wslua_proto_expert.c | 4 |
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); } |