diff options
author | Michael Mann <mmann78@netscape.net> | 2013-10-23 16:47:02 +0000 |
---|---|---|
committer | Michael Mann <mmann78@netscape.net> | 2013-10-23 16:47:02 +0000 |
commit | 79d58dc6707a09466bed0f8ce173627259f29e4a (patch) | |
tree | 53b689e7006a5b40cf96de434433856dea98b257 | |
parent | 25c43f9dc20217b8c8c2d36efa45e57c1f44835a (diff) |
Add Lua cleanup on shutdown, to help with memory leak detection. Bug 5575 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5575)
From Robert G. Jakabosky
From me: cleanup so that it applies to trunk.
svn path=/trunk/; revision=52798
-rw-r--r-- | epan/epan.c | 3 | ||||
-rw-r--r-- | epan/wslua/init_wslua.c | 7 | ||||
-rw-r--r-- | epan/wslua/wslua.h | 1 |
3 files changed, 11 insertions, 0 deletions
diff --git a/epan/epan.c b/epan/epan.c index b3580200ba..7dfe3a71e9 100644 --- a/epan/epan.c +++ b/epan/epan.c @@ -128,6 +128,9 @@ epan_cleanup(void) prefs_cleanup(); packet_cleanup(); expert_cleanup(); +#ifdef HAVE_LUA + wslua_cleanup(); +#endif #ifdef HAVE_LIBGNUTLS gnutls_global_deinit(); #endif diff --git a/epan/wslua/init_wslua.c b/epan/wslua/init_wslua.c index c2f81a9a06..afee46d91c 100644 --- a/epan/wslua/init_wslua.c +++ b/epan/wslua/init_wslua.c @@ -486,6 +486,13 @@ int wslua_init(register_cb cb, gpointer client_data) { return 0; } +int wslua_cleanup(void) { + /* cleanup lua */ + lua_close(L); + L = NULL; + return 0; +} + lua_State* wslua_state(void) { return L; } /* diff --git a/epan/wslua/wslua.h b/epan/wslua/wslua.h index 6a298233b0..7eb4a39378 100644 --- a/epan/wslua/wslua.h +++ b/epan/wslua/wslua.h @@ -457,6 +457,7 @@ extern void clear_outstanding_TreeItem(void); extern void wslua_print_stack(char* s, lua_State* L); extern int wslua_init(register_cb cb, gpointer client_data); +extern int wslua_cleanup(void); extern tap_extractor_t wslua_get_tap_extractor(const gchar* name); extern int wslua_set_tap_enums(lua_State* L); |