ChangeLog: Fix module entry deallocation in MODULE_DecRefCount. Description: Also decrement the reference count on any other libraries with exactly the same short name since two module entries are being allocated when we load the library. Maybe the real fix here would be to ensure that a module entry is allocated no more than once but we couldn't figure out how to do that. Warren Baird : Warren_Baird@cimmetry.com diff -ur clean/wine/loader/module.c wine/loader/module.c --- clean/wine/loader/module.c Wed Jan 29 15:31:10 2003 +++ wine/loader/module.c Thu Jan 30 16:00:50 2003 @@ -1477,7 +1477,7 @@ static void MODULE_DecRefCount( WINE_MODREF *wm ) { int i; - + WINE_MODREF *pwm; if ( wm->flags & WINE_MODREF_MARKER ) return; @@ -1496,6 +1496,21 @@ MODULE_DecRefCount( wm->deps[i] ); wm->flags &= ~WINE_MODREF_MARKER; + } + + // Also decrement the reference count on any other libraries with + // exactly the same short name since two module entries are + // being allocated when we load the library. FIXME??? + + for (pwm = MODULE_modref_list; pwm; pwm = pwm->next ) + {(pwm + if ( (pwm != wm) && + (!FILE_strcasecmp( pwm->short_modname, wm->short_modname ) ) ) { + + if (pwm->refCount > 0) { + pwm->refCount--; + } + } } }