Fix module entry deallocation in MODULE_DecRefCount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





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--;
+              }
+         }
     }
 }





[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux