Переглянути джерело

FFI: Fix management of C library handles for default namespace.

Mike Pall 14 роки тому
батько
коміт
54b6054087
1 змінених файлів з 7 додано та 3 видалено
  1. 7 3
      src/lj_clib.c

+ 7 - 3
src/lj_clib.c

@@ -148,9 +148,13 @@ static void clib_unloadlib(CLibrary *cl)
 {
   if (cl->handle == CLIB_DEFHANDLE) {
     MSize i;
-    for (i = 0; i < CLIB_HANDLE_MAX; i++)
-      if (clib_def_handle[i])
-	FreeLibrary((HINSTANCE)clib_def_handle[i]);
+    for (i = 0; i < CLIB_HANDLE_MAX; i++) {
+      void *h = clib_def_handle[i];
+      if (h) {
+	clib_def_handle[i] = NULL;
+	FreeLibrary((HINSTANCE)h);
+      }
+    }
   } else if (!cl->handle) {
     FreeLibrary((HINSTANCE)cl->handle);
   }