fix module.c bug
authorcompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Mon, 15 Nov 2004 17:15:45 +0000 (17:15 +0000)
committercompudj <compudj@04897980-b3bd-0310-b5e0-8ef037075253>
Mon, 15 Nov 2004 17:15:45 +0000 (17:15 +0000)
git-svn-id: http://ltt.polymtl.ca/svn@836 04897980-b3bd-0310-b5e0-8ef037075253

ltt/branches/poly/lttv/lttv/module.c

index a1826b91430e2255396d4f6a9f82278bc8c0772f..e2d4d2caafa3d1d6a5767e7f620a1dbeb28d1bb6 100644 (file)
@@ -559,6 +559,7 @@ static void destroy()
   locked_libraries = g_new(LttvLibrary *, nb);
 
   for(i = 0 ; i < nb ; i++) {
+    //g_assert(nb == libraries->len);
     l = (LttvLibrary *)(libraries->pdata[i]);
     locked_libraries[i] = l;
     library_lock_loaded(l);
@@ -566,7 +567,16 @@ static void destroy()
       m = (LttvModule *)(l->modules->pdata[j]);
       while(m->info.require_count > 0) lttv_module_release(m);
     }
+    library_unlock_loaded(l);
     while(l->info.load_count > 0) lttv_library_unload(l);
+
+    /* If the number of librairies loaded have changed, restart from the
+     * beginning */
+    if(nb != libraries->len) {
+      i = 0;
+      nb = libraries->len;
+    }
+
   }
 
   for(i = 0 ; i < nb ; i++) {
This page took 0.026279 seconds and 4 git commands to generate.