Update.
2000-04-21 Ulrich Drepper <drepper@redhat.com> * iconv/iconv.c (iconv): Add __builtin_expect where useful. * iconv/iconv_close.c (iconv_close): Likewise. * iconv/iconv_open.c (iconv_open): Likewise. * grp/putgrent.c (putgrent): Unlock steam if fprintf failed. Add __builtin_expect where useful. * grp/initgroups.c (initgroups): Test for result of memory allocation and punt if it fails. * dirent/scandir.c (scandir): Add __builtin_expect where useful. * grp/fgetgrent.c (fgetfrent): Likewise. * grp/fgetgrent_r.c (__fgetgrent_r): Likewise.
This commit is contained in:
parent
761df3a7aa
commit
a711dd4ba8
16
ChangeLog
16
ChangeLog
|
@ -1,3 +1,19 @@
|
|||
2000-04-21 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* iconv/iconv.c (iconv): Add __builtin_expect where useful.
|
||||
* iconv/iconv_close.c (iconv_close): Likewise.
|
||||
* iconv/iconv_open.c (iconv_open): Likewise.
|
||||
|
||||
* grp/putgrent.c (putgrent): Unlock steam if fprintf failed. Add
|
||||
__builtin_expect where useful.
|
||||
|
||||
* grp/initgroups.c (initgroups): Test for result of memory
|
||||
allocation and punt if it fails.
|
||||
|
||||
* dirent/scandir.c (scandir): Add __builtin_expect where useful.
|
||||
* grp/fgetgrent.c (fgetfrent): Likewise.
|
||||
* grp/fgetgrent_r.c (__fgetgrent_r): Likewise.
|
||||
|
||||
2000-04-21 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* libio/vasprintf.c: Include string.h to get memcpy prototype.
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1992, 93, 94, 95, 96, 97, 98 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1992-1998, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -25,8 +25,8 @@ int
|
|||
scandir (dir, namelist, select, cmp)
|
||||
const char *dir;
|
||||
struct dirent ***namelist;
|
||||
int (*select) __P ((const struct dirent *));
|
||||
int (*cmp) __P ((const void *, const void *));
|
||||
int (*select) (const struct dirent *);
|
||||
int (*cmp) (const void *, const void *);
|
||||
{
|
||||
DIR *dp = __opendir (dir);
|
||||
struct dirent **v = NULL;
|
||||
|
@ -50,7 +50,7 @@ scandir (dir, namelist, select, cmp)
|
|||
/* Ignore errors from select or readdir */
|
||||
__set_errno (0);
|
||||
|
||||
if (i == vsize)
|
||||
if (__builtin_expect (i == vsize, 0))
|
||||
{
|
||||
struct dirent **new;
|
||||
if (vsize == 0)
|
||||
|
@ -71,7 +71,7 @@ scandir (dir, namelist, select, cmp)
|
|||
v[i++] = (struct dirent *) memcpy (vnew, d, dsize);
|
||||
}
|
||||
|
||||
if (errno != 0)
|
||||
if (__builtin_expect (errno, 0) != 0)
|
||||
{
|
||||
save = errno;
|
||||
(void) __closedir (dp);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1991, 1996, 1997, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1996, 1997, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -38,7 +38,7 @@ fgetgrent (FILE *stream)
|
|||
struct group *result;
|
||||
int save;
|
||||
|
||||
if (fgetpos (stream, &pos) != 0)
|
||||
if (__builtin_expect (fgetpos (stream, &pos), 0) != 0)
|
||||
return NULL;
|
||||
|
||||
/* Get lock. */
|
||||
|
@ -58,7 +58,7 @@ fgetgrent (FILE *stream)
|
|||
char *new_buf;
|
||||
buffer_size += NSS_BUFLEN_GROUP;
|
||||
new_buf = realloc (buffer, buffer_size);
|
||||
if (new_buf == NULL)
|
||||
if (__builtin_expect (new_buf == NULL, 0))
|
||||
{
|
||||
/* We are out of memory. Free the current buffer so that the
|
||||
process gets a chance for a normal termination. */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1991, 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 1996-1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -70,14 +70,14 @@ __fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
|
|||
{
|
||||
buffer[buflen - 1] = '\xff';
|
||||
p = fgets_unlocked (buffer, buflen, stream);
|
||||
if (p == NULL && feof_unlocked (stream))
|
||||
if (__builtin_expect (p == NULL, 0) && feof_unlocked (stream))
|
||||
{
|
||||
funlockfile (stream);
|
||||
*result = NULL;
|
||||
__set_errno (ENOENT);
|
||||
return errno;
|
||||
}
|
||||
if (p == NULL || buffer[buflen - 1] != '\xff')
|
||||
if (__builtin_expect (p == NULL, 0) || buffer[buflen - 1] != '\xff')
|
||||
{
|
||||
funlockfile (stream);
|
||||
*result = NULL;
|
||||
|
@ -97,7 +97,7 @@ __fgetgrent_r (FILE *stream, struct group *resbuf, char *buffer, size_t buflen,
|
|||
|
||||
funlockfile (stream);
|
||||
|
||||
if (parse_result == -1)
|
||||
if (__builtin_expect (parse_result, 0) == -1)
|
||||
{
|
||||
/* The parser ran out of space. */
|
||||
*result = NULL;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1989, 91, 93, 96, 97, 98, 99 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1989, 91, 93, 1996-1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -163,7 +163,10 @@ initgroups (user, group)
|
|||
size = 16;
|
||||
#endif
|
||||
|
||||
groups = malloc (size * sizeof (gid_t *));
|
||||
groups = (gid_t *) malloc (size * sizeof (gid_t));
|
||||
if (__builtin_expect (groups == NULL, 0))
|
||||
/* No more memory. */
|
||||
return -1;
|
||||
|
||||
groups[0] = group;
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 1991, 1992, 1996, 1998, 1999 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991, 92, 96, 98, 99, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
|
@ -36,7 +36,7 @@ putgrent (gr, stream)
|
|||
{
|
||||
int retval;
|
||||
|
||||
if (gr == NULL || stream == NULL)
|
||||
if (__builtin_expect (gr == NULL, 0) || __builtin_expect (stream == NULL, 0))
|
||||
{
|
||||
__set_errno (EINVAL);
|
||||
return -1;
|
||||
|
@ -46,8 +46,11 @@ putgrent (gr, stream)
|
|||
|
||||
retval = fprintf (stream, "%s:%s:%u:",
|
||||
gr->gr_name, _S (gr->gr_passwd), gr->gr_gid);
|
||||
if (retval < 0)
|
||||
return -1;
|
||||
if (__builtin_expect (retval, 0) < 0)
|
||||
{
|
||||
funlockfile (stream);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (gr->gr_mem != NULL)
|
||||
{
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
/* Convert characters in input buffer using conversion descriptor to
|
||||
output buffer.
|
||||
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
|
@ -37,7 +37,7 @@ iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf,
|
|||
size_t converted;
|
||||
int result;
|
||||
|
||||
if (inbuf == NULL || *inbuf == NULL)
|
||||
if (__gconv_builtin (inbuf == NULL || *inbuf == NULL), 0)
|
||||
{
|
||||
if (outbuf == NULL || *outbuf == NULL)
|
||||
result = __gconv (gcd, NULL, NULL, NULL, NULL, &converted);
|
||||
|
@ -61,7 +61,7 @@ iconv (iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf,
|
|||
if (outstart != NULL)
|
||||
*outbytesleft -= *outbuf - outstart;
|
||||
|
||||
switch (result)
|
||||
switch (__builtin_expect (result, __GCONV_OK))
|
||||
{
|
||||
case __GCONV_ILLEGAL_DESCRIPTOR:
|
||||
__set_errno (EBADF);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Release any resource associated with given conversion descriptor.
|
||||
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
|||
int
|
||||
iconv_close (iconv_t cd)
|
||||
{
|
||||
if (cd == (iconv_t *) -1L)
|
||||
if (__builtin_expect (cd == (iconv_t *) -1L, 0))
|
||||
{
|
||||
__set_errno (EBADF);
|
||||
return -1;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Get descriptor for character set conversion.
|
||||
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
|
||||
Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
|
||||
|
||||
|
@ -87,7 +87,7 @@ iconv_open (const char *tocode, const char *fromcode)
|
|||
|
||||
res = __gconv_open (tocode, fromcode, &cd, 0);
|
||||
|
||||
if (res != __GCONV_OK)
|
||||
if (__builtin_expect (res, __GCONV_OK) != __GCONV_OK)
|
||||
{
|
||||
/* We must set the error number according to the specs. */
|
||||
if (res == __GCONV_NOCONV || res == __GCONV_NODB)
|
||||
|
|
Loading…
Reference in New Issue