about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--elf/dl-load.c16
2 files changed, 11 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 7b0cff44f1..b84df57865 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2000-04-03  Ulrich Drepper  <drepper@redhat.com>
 
+	* elf/dl-load.c (_dl_dst_substitute): Pretty print comment.
+	(add_name_to_object): Add cast in malloc call.
+	(fillin_rpath): Optimize loop to initialize ->status a bit.
+
 	* sysdeps/i386/dl-machine.h: Undo last change.
 	* sysdeps/mach/hurd/i386/dl-machine.h (RTLD_START_SPECIAL_INIT):
 	Restore %edx register after call here.
diff --git a/elf/dl-load.c b/elf/dl-load.c
index d337182aa7..0291bf2a74 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -203,8 +203,8 @@ _dl_dst_substitute (struct link_map *l, const char *name, char *result,
 	  const char *repl;
 	  size_t len;
 
-      /* Note that it is no bug that the strings in the first two `strncmp'
-	 calls are longer than the sequence which is actually tested.  */
+	  /* Note that it is no bug that the strings in the first two `strncmp'
+	     calls are longer than the sequence which is actually tested.  */
 	  if ((((strncmp (&name[1], "ORIGIN}", 6) == 0 && (len = 7) != 0)
 		|| (strncmp (&name[1], "PLATFORM}", 8) == 0 && (len = 9) != 0))
 	       && (name[len] == '\0' || name[len] == '/'
@@ -311,7 +311,7 @@ add_name_to_object (struct link_map *l, const char *name)
       return;
 
   name_len = strlen (name) + 1;
-  newname = malloc (sizeof *newname + name_len);
+  newname = (struct libname_list *) malloc (sizeof *newname + name_len);
   if (newname == NULL)
     {
       /* No more memory.  */
@@ -407,6 +407,7 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
       else
 	{
 	  size_t cnt;
+	  enum r_dir_status init_val;
 
 	  /* It's a new directory.  Create an entry and add it.  */
 	  dirp = (struct r_search_path_elem *)
@@ -424,12 +425,9 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
 	  /* We have to make sure all the relative directories are never
 	     ignored.  The current directory might change and all our
 	     saved information would be void.  */
-	  if (cp[0] != '/')
-	    for (cnt = 0; cnt < ncapstr; ++cnt)
-	      dirp->status[cnt] = existing;
-	  else
-	    for (cnt = 0; cnt < ncapstr; ++cnt)
-	      dirp->status[cnt] = unknown;
+	  init_val = cp[0] != '/' ? existing : unknown;
+	  for (cnt = 0; cnt < ncapstr; ++cnt)
+	    dirp->status[cnt] = init_val;
 
 	  dirp->what = what;
 	  dirp->where = where;