about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/librarian/library.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/librarian/library.c b/src/librarian/library.c
index e46fe418..3cfb2bee 100755
--- a/src/librarian/library.c
+++ b/src/librarian/library.c
@@ -518,10 +518,11 @@ int FiniLibrary(library_t* lib, x64emu_t* emu)
                 lib->active = 0;
             return 0;
         case LIB_EMULATED:
-            if(emu)
-                RunElfFini(lib->e.elf, emu);
-            if(!lib->e.elf->refcnt)
+            if(!--lib->e.elf->refcnt) {
+                if(emu)
+                    RunElfFini(lib->e.elf, emu);
                 lib->active = 0;
+            }
             return 0;
     }
     return 1;   // bad type