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 | } |
