fixed dependency on private headers
[lttv.git] / ltt / branches / poly / lttv / lttv / module.c
index 18cc24e03a2740efd21c10ebca5d8a4e7e431414..c2cc8fac72b1832979c45582b9c3114fe3ab2398 100644 (file)
@@ -189,7 +189,7 @@ static LttvLibrary *library_load(char *name, GError **error)
     module_chain = NULL;
     module_next = &module_chain;
     gm = g_module_open(pathname,0);
-    g_free(pathname);    
+    g_free(pathname);
     
     if(gm != NULL) break;
 
@@ -226,8 +226,8 @@ static LttvLibrary *library_load(char *name, GError **error)
 
 LttvLibrary *lttv_library_load(char *name, GError **error)
 {
-  LttvLibrary *l = library_load(name, error); 
-  l->info.load_count++;
+  LttvLibrary *l = library_load(name, error);
+  if(l != NULL) l->info.load_count++;
   return l;
 }
 
@@ -277,7 +277,9 @@ static void library_unload(LttvLibrary *l)
 
 void lttv_library_unload(LttvLibrary *l)
 {
-  l->info.load_count--;
+  /* In the case where we wait for a module to release, the load count is 0
+   * and should not be decremented. */
+  if(l->info.load_count != 0) l->info.load_count--;
   library_unload(l);
 }
 
This page took 0.022588 seconds and 4 git commands to generate.