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