diff options
author | Mike Pall <mike> | 2011-02-16 23:52:18 +0100 |
---|---|---|
committer | Mike Pall <mike> | 2011-02-16 23:52:18 +0100 |
commit | 54b6054087df67e67931e774f475740ac2c03062 (patch) | |
tree | 13ff4a819a3018ea83a3ebbad3d5a3b5d3348486 /src | |
parent | 5fe7282d4ca548e604acb89e88ab0196a98c4065 (diff) | |
download | luajit-54b6054087df67e67931e774f475740ac2c03062.tar.gz luajit-54b6054087df67e67931e774f475740ac2c03062.tar.bz2 luajit-54b6054087df67e67931e774f475740ac2c03062.zip |
FFI: Fix management of C library handles for default namespace.
Diffstat (limited to 'src')
-rw-r--r-- | src/lj_clib.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lj_clib.c b/src/lj_clib.c index 64d06dbc..98d74cde 100644 --- a/src/lj_clib.c +++ b/src/lj_clib.c | |||
@@ -148,9 +148,13 @@ static void clib_unloadlib(CLibrary *cl) | |||
148 | { | 148 | { |
149 | if (cl->handle == CLIB_DEFHANDLE) { | 149 | if (cl->handle == CLIB_DEFHANDLE) { |
150 | MSize i; | 150 | MSize i; |
151 | for (i = 0; i < CLIB_HANDLE_MAX; i++) | 151 | for (i = 0; i < CLIB_HANDLE_MAX; i++) { |
152 | if (clib_def_handle[i]) | 152 | void *h = clib_def_handle[i]; |
153 | FreeLibrary((HINSTANCE)clib_def_handle[i]); | 153 | if (h) { |
154 | clib_def_handle[i] = NULL; | ||
155 | FreeLibrary((HINSTANCE)h); | ||
156 | } | ||
157 | } | ||
154 | } else if (!cl->handle) { | 158 | } else if (!cl->handle) { |
155 | FreeLibrary((HINSTANCE)cl->handle); | 159 | FreeLibrary((HINSTANCE)cl->handle); |
156 | } | 160 | } |