aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-02-16 23:52:18 +0100
committerMike Pall <mike>2011-02-16 23:52:18 +0100
commit54b6054087df67e67931e774f475740ac2c03062 (patch)
tree13ff4a819a3018ea83a3ebbad3d5a3b5d3348486 /src
parent5fe7282d4ca548e604acb89e88ab0196a98c4065 (diff)
downloadluajit-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.c10
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 }