about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--elf/dl-close.c8
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 2646132fee..dc3b95728c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2000-10-23  Ulrich Drepper  <drepper@redhat.com>
+
+	* elf/dl-close.c (_dl_close): Add a few more __builtin_expect.
+
 2000-10-23  Jim Meyering  <meyering@ascend.com>
 
 	Allow this code to be used outside of glibc.
diff --git a/elf/dl-close.c b/elf/dl-close.c
index cb6b6fc381..4c861a1d06 100644
--- a/elf/dl-close.c
+++ b/elf/dl-close.c
@@ -55,7 +55,7 @@ _dl_close (void *_map)
     /* Nope.  Do nothing.  */
     return;
 
-  if (map->l_opencount == 0)
+  if (__builtin_expect (map->l_opencount, 1) == 0)
     _dl_signal_error (0, map->l_name, N_("shared object not open"));
 
   /* Acquire the lock.  */
@@ -150,7 +150,7 @@ _dl_close (void *_map)
 
 	  /* That was the last reference, and this was a dlopen-loaded
 	     object.  We can unmap it.  */
-	  if (imap->l_global)
+	  if (__builtin_expect (imap->l_global, 0))
 	    {
 	      /* This object is in the global scope list.  Remove it.  */
 	      int cnt = _dl_main_searchlist->r_nlist;
@@ -228,7 +228,7 @@ _dl_close (void *_map)
 
   /* Now we can perhaps also remove the modules for which we had
      dependencies because of symbol lookup.  */
-  if (rellist != NULL)
+  if (__builtin_expect (rellist != NULL, 0))
     {
       while (nrellist-- > 0)
 	_dl_close (rellist[nrellist]);
@@ -238,7 +238,7 @@ _dl_close (void *_map)
 
   free (list);
 
-  if (_dl_global_scope_alloc != 0
+  if (__builtin_expect (_dl_global_scope_alloc, 0) != 0
       && _dl_main_searchlist->r_nlist == _dl_initial_searchlist.r_nlist)
     {
       /* All object dynamically loaded by the program are unloaded.  Free