summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--catgets/open_catalog.c13
2 files changed, 11 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 17f6b6cb70..57649584bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 2000-05-26  Ulrich Drepper  <drepper@redhat.com>
 
-	* elf/dl-load.c (_dl_map_object): Don't ignore RPATHs of loader ==
+	* catgets/open_catalog.c (__open_catalog): Add a few __builtin_expect.
+
+	* elf/dl-load.c (_dl_map_object): Don't ignore RPATHs if loader ==
 	NULL.
 
 	* posix/tst-preadwrite.c: Allow parallel execution of
diff --git a/catgets/open_catalog.c b/catgets/open_catalog.c
index 4a63a138e0..d778255dc7 100644
--- a/catgets/open_catalog.c
+++ b/catgets/open_catalog.c
@@ -193,18 +193,19 @@ __open_catalog (__nl_catd catalog)
     }
 
   /* Avoid dealing with directories and block devices */
-  if (fd < 0)
+  if (__builtin_expect (fd, 0) < 0)
     {
       catalog->status = nonexisting;
       goto unlock_return;
     }
 
-  if (__fxstat (_STAT_VER, fd, &st) < 0)
+  if (__builtin_expect (__fxstat (_STAT_VER, fd, &st), 0) < 0)
     {
       catalog->status = nonexisting;
       goto close_unlock_return;
     }
-  if (!S_ISREG (st.st_mode) || st.st_size < sizeof (struct catalog_obj))
+  if (__builtin_expect (!S_ISREG (st.st_mode), 0)
+      || st.st_size < sizeof (struct catalog_obj))
     {
       /* `errno' is not set correctly but the file is not usable.
 	 Use an reasonable error value.  */
@@ -230,7 +231,8 @@ __open_catalog (__nl_catd catalog)
   catalog->file_ptr =
     (struct catalog_obj *) __mmap (NULL, st.st_size, PROT_READ,
 				   MAP_FILE|MAP_COPY|MAP_INHERIT, fd, 0);
-  if (catalog->file_ptr != (struct catalog_obj *) MAP_FAILED)
+  if (__builtin_expect (catalog->file_ptr != (struct catalog_obj *) MAP_FAILED,
+			1))
     /* Tell the world we managed to mmap the file.  */
     catalog->status = mmapped;
   else
@@ -270,7 +272,8 @@ __open_catalog (__nl_catd catalog)
   /* Determine whether the file is a catalog file and if yes whether
      it is written using the correct byte order.  Else we have to swap
      the values.  */
-  if (catalog->file_ptr->magic == CATGETS_MAGIC)
+  if (__builtin_expect (catalog->file_ptr->magic, CATGETS_MAGIC)
+      == CATGETS_MAGIC)
     swapping = 0;
   else if (catalog->file_ptr->magic == SWAPU32 (CATGETS_MAGIC))
     swapping = 1;