diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/librarian/library.c | 7 |
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 |