2003-06-11  Ulrich Drepper  <drepper@redhat.com>

	* allocatestack.c (queue_stack): Always inline.
	* ptreadhP.h (__do_cancel): Likewise.
This commit is contained in:
Ulrich Drepper 2003-06-11 21:57:23 +00:00
parent c98d505c4d
commit dd9423a67a
41 changed files with 189 additions and 117 deletions

View File

@ -1,5 +1,5 @@
/* Hierarchial argument parsing help output
Copyright (C) 1995-2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1995-2000, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Miles Bader <miles@gnu.ai.mit.edu>.
@ -521,7 +521,7 @@ hol_free (struct hol *hol)
free (hol);
}
static inline int
static int
hol_entry_short_iterate (const struct hol_entry *entry,
int (*func)(const struct argp_option *opt,
const struct argp_option *real,

View File

@ -361,7 +361,7 @@ static struct r_search_path_struct rtld_search_dirs;
static size_t max_dirnamelen;
static inline struct r_search_path_elem **
static struct r_search_path_elem **
fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
int check_trusted, const char *what, const char *where)
{
@ -1935,8 +1935,7 @@ _dl_rtld_di_serinfo (struct link_map *loader, Dl_serinfo *si, bool counting)
unsigned int idx = 0;
char *allocptr = (char *) &si->dls_serpath[si->dls_cnt];
inline void add_path (const struct r_search_path_struct *sps,
unsigned int flags)
void add_path (const struct r_search_path_struct *sps, unsigned int flags)
# define add_path(sps, flags) add_path(sps, 0) /* XXX */
{
if (sps->dirs != (void *) -1)

View File

@ -1,5 +1,5 @@
/* Handle symbol and library versioning.
Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -53,6 +53,7 @@
static inline struct link_map *
__attribute ((always_inline))
find_needed (const char *name, struct link_map *map)
{
struct link_map *tmap;

View File

@ -1,5 +1,5 @@
/* Look up a symbol in the loaded objects.
Copyright (C) 1995,96,97,98,99,2000,2001,2002 Free Software Foundation, Inc.
Copyright (C) 1995-2002, 2003 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
@ -28,7 +28,7 @@
/* Inner part of the lookup functions. We return a value > 0 if we
found the symbol, the value 0 if nothing is found and < 0 if
something bad happened. */
static inline int
static int
FCT (const char *undef_name, unsigned long int hash, const ElfW(Sym) *ref,
struct sym_val *result, struct r_scope_elem *scope, size_t i, ARG,
struct link_map *skip, int type_class)

View File

@ -1,4 +1,4 @@
# Copyright (C) 1997, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
# Copyright (C) 1997,1998,2000,2001,2002,2003 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
@ -35,11 +35,11 @@ CFLAGS-gconv_cache.c = -DSTATIC_GCONV
CFLAGS-gconv_simple.c = -DSTATIC_GCONV
endif
vpath %.c ../locale/programs
vpath %.c ../locale/programs ../intl
iconv_prog-modules = iconv_charmap charmap charmap-dir linereader \
dummy-repertoire simple-hash xstrdup xmalloc
iconvconfig-modules = strtab xmalloc
iconvconfig-modules = strtab xmalloc hash-string
extra-objs = $(iconv_prog-modules:=.o) $(iconvconfig-modules:=.o)
CFLAGS-iconv_prog.c = -I../locale/programs
CFLAGS-iconv_charmap.c = -I../locale/programs

View File

@ -159,7 +159,7 @@ find_module_idx (const char *str, size_t *idxp)
hashtab = (struct hash_entry *) ((char *) gconv_cache
+ header->hash_offset);
hval = hash_string (str);
hval = __hash_string (str);
idx = hval % header->hash_size;
hval2 = 1 + hval % (header->hash_size - 2);

View File

@ -1,5 +1,5 @@
/* Charset name normalization.
Copyright (C) 2001,02 Free Software Foundation, Inc.
Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 2001.
@ -22,7 +22,7 @@
#include <locale.h>
static inline void
static void
strip (char *wp, const char *s)
{
int slash_count = 0;
@ -48,7 +48,7 @@ strip (char *wp, const char *s)
}
static inline char * __attribute__ ((unused))
static inline char * __attribute__ ((unused, always_inline))
upstr (char *dst, const char *str)
{
char *cp = dst;
@ -56,8 +56,3 @@ upstr (char *dst, const char *str)
/* nothing */;
return dst;
}
/* If NAME is an codeset alias expand it. */
extern int __gconv_compare_alias (const char *name1, const char *name2)
internal_function;

View File

@ -1,5 +1,5 @@
/* Handle configuration data.
Copyright (C) 1997,98,99,2000,2001,2002 Free Software Foundation, Inc.
Copyright (C) 1997,98,99,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -125,7 +125,7 @@ detect_conflict (const char *alias)
/* Add new alias. */
static inline void
static void
add_alias (char *rp, void *modules)
{
/* We now expect two more string. The strings are normalized
@ -178,7 +178,7 @@ add_alias (char *rp, void *modules)
/* Insert a data structure for a new module in the search tree. */
static inline void
static void
internal_function
insert_module (struct gconv_module *newp, int tobefreed)
{

View File

@ -1,5 +1,5 @@
/* Provide access to the collection of available transformation modules.
Copyright (C) 1997,98,99,2000,2001,2002 Free Software Foundation, Inc.
Copyright (C) 1997,98,99,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -27,7 +27,6 @@
#include <dlfcn.h>
#include <gconv_int.h>
#include <gconv_charset.h>
/* Simple data structure for alias mapping. We have two names, `from'

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1997,1998,1999,2000,2001,2002 Free Software Foundation, Inc.
/* Copyright (C) 1997-2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -262,6 +262,11 @@ extern int __gconv_transliterate (struct __gconv_step *step,
size_t *irreversible) attribute_hidden;
/* If NAME is an codeset alias expand it. */
extern int __gconv_compare_alias (const char *name1, const char *name2)
internal_function;
/* Builtin transformations. */
#ifdef _LIBC
# define __BUILTIN_TRANSFORM(Name) \

View File

@ -72,6 +72,7 @@ __gconv_btwoc_ascii (struct __gconv_step *step, unsigned char c)
static inline int
__attribute ((always_inline))
internal_ucs4_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@ -113,6 +114,7 @@ internal_ucs4_loop (struct __gconv_step *step,
#ifndef _STRING_ARCH_unaligned
static inline int
__attribute ((always_inline))
internal_ucs4_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -161,6 +163,7 @@ internal_ucs4_loop_unaligned (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
internal_ucs4_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -219,6 +222,7 @@ internal_ucs4_loop_single (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
ucs4_internal_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@ -283,6 +287,7 @@ ucs4_internal_loop (struct __gconv_step *step,
#ifndef _STRING_ARCH_unaligned
static inline int
__attribute ((always_inline))
ucs4_internal_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -352,6 +357,7 @@ ucs4_internal_loop_unaligned (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
ucs4_internal_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -426,6 +432,7 @@ ucs4_internal_loop_single (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
internal_ucs4le_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@ -467,6 +474,7 @@ internal_ucs4le_loop (struct __gconv_step *step,
#ifndef _STRING_ARCH_unaligned
static inline int
__attribute ((always_inline))
internal_ucs4le_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -518,6 +526,7 @@ internal_ucs4le_loop_unaligned (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
internal_ucs4le_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -573,6 +582,7 @@ internal_ucs4le_loop_single (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
ucs4le_internal_loop (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@ -638,6 +648,7 @@ ucs4le_internal_loop (struct __gconv_step *step,
#ifndef _STRING_ARCH_unaligned
static inline int
__attribute ((always_inline))
ucs4le_internal_loop_unaligned (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,
@ -711,6 +722,7 @@ ucs4le_internal_loop_unaligned (struct __gconv_step *step,
static inline int
__attribute ((always_inline))
ucs4le_internal_loop_single (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp,

View File

@ -784,7 +784,7 @@ new_name (const char *str, struct Strent *strent)
newp->name = str;
newp->strent = strent;
newp->module_idx = -1;
newp->hashval = hash_string (str);
newp->hashval = __hash_string (str);
++nnames;

View File

@ -257,6 +257,7 @@
/* The function returns the status, as defined in gconv.h. */
static inline int
__attribute ((always_inline))
FCTNAME (LOOPFCT) (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,
@ -342,6 +343,7 @@ FCTNAME (LOOPFCT) (struct __gconv_step *step,
# define SINGLE(fct) SINGLE2 (fct)
# define SINGLE2(fct) fct##_single
static inline int
__attribute ((always_inline))
SINGLE(LOOPFCT) (struct __gconv_step *step,
struct __gconv_step_data *step_data,
const unsigned char **inptrp, const unsigned char *inend,

View File

@ -1,5 +1,5 @@
/* Access functions for CNS 11643 handling.
Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -40,6 +40,7 @@ extern const uint32_t __cns11643l15_to_ucs4_tab[];
static inline uint32_t
__attribute ((always_inline))
cns11643_to_ucs4 (const char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
@ -140,6 +141,7 @@ extern const char __cns11643_from_ucs4p2c_tab[][3];
static inline size_t
__attribute ((always_inline))
ucs4_to_cns11643 (uint32_t wch, char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;

View File

@ -1,5 +1,5 @@
/* Access functions for CNS 11643, plane 1 handling.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -26,6 +26,7 @@ extern const uint16_t __cns11643l1_to_ucs4_tab[];
static inline uint32_t
__attribute ((always_inline))
cns11643l1_to_ucs4 (const unsigned char **s, size_t avail,
unsigned char offset)
{
@ -71,6 +72,7 @@ extern const char __cns11643l1_from_ucs4_tab14[][2];
static inline size_t
__attribute ((always_inline))
ucs4_to_cns11643l1 (uint32_t wch, unsigned char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;

View File

@ -1,5 +1,5 @@
/* Mapping tables for EUC-KR handling.
Copyright (C) 1998, 1999, 2000-2002 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000-2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Jungshik Shin <jshin@pantheon.yale.edu>
and Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -25,6 +25,7 @@
static inline void
__attribute ((always_inline))
euckr_from_ucs4 (uint32_t ch, unsigned char *cp)
{
if (ch > 0x9f)

View File

@ -1,5 +1,5 @@
/* Access functions for GB2312 conversion.
Copyright (C) 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1998.
@ -30,6 +30,7 @@ extern const uint16_t __gb2312_to_ucs[];
static inline uint32_t
__attribute ((always_inline))
gb2312_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
@ -67,6 +68,7 @@ extern const char __gb2312_from_ucs4_tab8[][2];
extern const char __gb2312_from_ucs4_tab9[][2];
static inline size_t
__attribute ((always_inline))
ucs4_to_gb2312 (uint32_t wch, unsigned char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;

View File

@ -1,5 +1,5 @@
/* Access functions for JISX0201 conversion.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -26,6 +26,7 @@ extern const uint32_t __jisx0201_to_ucs4[];
static inline uint32_t
__attribute ((always_inline))
jisx0201_to_ucs4 (char ch)
{
uint32_t val = __jisx0201_to_ucs4[(unsigned char) ch];
@ -38,6 +39,7 @@ jisx0201_to_ucs4 (char ch)
static inline size_t
__attribute ((always_inline))
ucs4_to_jisx0201 (uint32_t wch, char *s)
{
char ch;

View File

@ -1,5 +1,5 @@
/* Access functions for JISX0208 conversion.
Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -43,6 +43,7 @@ struct jisx0208_ucs_idx
static inline uint32_t
__attribute ((always_inline))
jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
{
unsigned char ch = *(*s);
@ -70,6 +71,7 @@ jisx0208_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
static inline size_t
__attribute ((always_inline))
ucs4_to_jisx0208 (uint32_t wch, char *s, size_t avail)
{
unsigned int ch = (unsigned int) wch;

View File

@ -1,5 +1,5 @@
/* Access functions for JISX0212 conversion.
Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
Copyright (C) 1997, 1998, 1999, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
@ -42,6 +42,7 @@ extern const char __jisx0212_from_ucs[][2];
static inline uint32_t
__attribute ((always_inline))
jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
{
const struct jisx0212_idx *rp = __jisx0212_to_ucs_idx;
@ -77,6 +78,7 @@ jisx0212_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
static inline size_t
__attribute ((always_inline))
ucs4_to_jisx0212 (uint32_t wch, char *s, size_t avail)
{
const struct jisx0212_idx *rp = __jisx0212_from_ucs_idx;

View File

@ -1,5 +1,5 @@
/* Functions for JISX0213 conversion.
Copyright (C) 2002 Free Software Foundation, Inc.
Copyright (C) 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <bruno@clisp.org>, 2002.
@ -32,6 +32,7 @@ extern const uint16_t __jisx0213_from_ucs_level2[];
#define NELEMS(arr) (sizeof (arr) / sizeof (arr[0]))
static inline uint32_t
__attribute ((always_inline))
jisx0213_to_ucs4 (unsigned int row, unsigned int col)
{
uint32_t val;
@ -64,6 +65,7 @@ jisx0213_to_ucs4 (unsigned int row, unsigned int col)
}
static inline uint16_t
__attribute ((always_inline))
ucs4_to_jisx0213 (uint32_t ucs)
{
if (ucs < NELEMS (__jisx0213_from_ucs_level1) << 6)

View File

@ -1,5 +1,5 @@
/* Access functions for KS C 5601-1992 based encoding conversion.
Copyright (C) 1998, 1999, 2000 Free Software Foundation, Inc.
Copyright (C) 1998, 1999, 2000, 2003 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
@ -44,6 +44,7 @@ extern const struct map __ksc5601_hanja_from_ucs[KSC5601_HANJA];
static inline uint32_t
__attribute ((always_inline))
ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
{
unsigned char ch = **s;
@ -85,6 +86,7 @@ ksc5601_to_ucs4 (const unsigned char **s, size_t avail, unsigned char offset)
}
static inline size_t
__attribute ((always_inline))
ucs4_to_ksc5601_hangul (uint32_t wch, unsigned char *s, size_t avail)
{
int l = 0;
@ -116,6 +118,7 @@ ucs4_to_ksc5601_hangul (uint32_t wch, unsigned char *s, size_t avail)
static inline size_t
__attribute ((always_inline))
ucs4_to_ksc5601_hanja (uint32_t wch, unsigned char *s, size_t avail)
{
int l = 0;
@ -146,6 +149,7 @@ ucs4_to_ksc5601_hanja (uint32_t wch, unsigned char *s, size_t avail)
}
static inline size_t
__attribute ((always_inline))
ucs4_to_ksc5601_sym (uint32_t wch, unsigned char *s, size_t avail)
{
int l = 0;
@ -177,6 +181,7 @@ ucs4_to_ksc5601_sym (uint32_t wch, unsigned char *s, size_t avail)
static inline size_t
__attribute ((always_inline))
ucs4_to_ksc5601 (uint32_t wch, unsigned char *s, size_t avail)
{
if (wch >= 0xac00 && wch <= 0xd7a3)

View File

@ -1,5 +1,5 @@
/* Conversion module for UTF-7.
Copyright (C) 2000-2002 Free Software Foundation, Inc.
Copyright (C) 2000-2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Bruno Haible <haible@clisp.cons.org>, 2000.
@ -93,7 +93,7 @@ isxbase64 (uint32_t ch)
/* Converts a value in the range 0..63 to a base64 encoded char. */
static inline unsigned char
static unsigned char
base64 (unsigned int i)
{
if (i < 26)

View File

@ -359,11 +359,11 @@
# endif
/* Return a pointer (void *const *) to the first element of SET. */
# define symbol_set_first_element(set) (&__start_##set)
# define symbol_set_first_element(set) ((void *const *) (&__start_##set))
/* Return true iff PTR (a void *const *) has been incremented
past the last element in SET. */
# define symbol_set_end_p(set, ptr) ((ptr) >= &__stop_##set)
# define symbol_set_end_p(set, ptr) ((ptr) >= (void *const *) &__stop_##set)
# else /* Not ELF: a.out. */

View File

@ -1,5 +1,5 @@
/* Macros for using symbol sets for running lists of functions.
Copyright (C) 1994, 1995, 1997, 2000 Free Software Foundation, Inc.
Copyright (C) 1994, 1995, 1997, 2000, 2003 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
@ -40,12 +40,12 @@
/* Run all the functions hooked on the set called NAME.
Each function is called like this: `function ARGS'. */
# define RUN_HOOK(NAME, ARGS) \
do { \
void *const *__unbounded ptr; \
for (ptr = symbol_set_first_element (NAME); \
! symbol_set_end_p (NAME, ptr); ++ptr) \
(*(__##NAME##_hook_function_t *) *ptr) ARGS; \
# define RUN_HOOK(NAME, ARGS) \
do { \
void *const *__unbounded ptr; \
for (ptr = (void *const *) symbol_set_first_element (NAME); \
! symbol_set_end_p (NAME, ptr); ++ptr) \
(*(__##NAME##_hook_function_t *) *ptr) ARGS; \
} while (0)
/* Define a hook variable with NAME and PROTO, and a function called RUNNER

View File

@ -47,7 +47,7 @@ routines := htonl htons \
getaliasent_r getaliasent getaliasname getaliasname_r \
in6_addr getnameinfo if_index ifaddrs
aux := check_pf
aux := check_pf ifreq
tests := htontest test_ifindex tst-ntoa tst-ether_aton tst-network \
tst-gethnm test-ifaddrs

View File

@ -22,8 +22,8 @@ subdir = intl
headers = libintl.h
routines = bindtextdom dcgettext dgettext gettext \
dcigettext dcngettext dngettext ngettext \
finddomain loadmsgcat localealias textdomain \
l10nflist explodename plural plural-exp
finddomain loadmsgcat localealias textdomain
aux = l10nflist explodename plural plural-exp hash-string
distribute = gmo.h gettextP.h hash-string.h loadinfo.h locale.alias \
plural.y plural-exp.h po2test.sed tst-gettext.sh tst-translit.sh \
translit.po tst-gettext2.sh tstlang1.po tstlang2.po tstcodeset.po\

View File

@ -1,5 +1,5 @@
/* Implementation of the internal dcigettext function.
Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1995-2002, 2003 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
@ -695,7 +695,7 @@ _nl_find_msg (domain_file, domainbinding, msgid, lengthp)
{
/* Use the hashing table. */
nls_uint32 len = strlen (msgid);
nls_uint32 hash_val = hash_string (msgid);
nls_uint32 hash_val = __hash_string (msgid);
nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));

47
intl/hash-string.c Normal file
View File

@ -0,0 +1,47 @@
/* Implements a string hashing function.
Copyright (C) 1995, 1997, 1998, 2000, 2003 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
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#include "hash-string.h"
/* Defines the so called `hashpjw' function by P.J. Weinberger
[see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
1986, 1987 Bell Telephone Laboratories, Inc.] */
unsigned long int
__hash_string (str_param)
const char *str_param;
{
unsigned long int hval, g;
const char *str = str_param;
/* Compute the hash value for the given string. */
hval = 0;
while (*str != '\0')
{
hval <<= 4;
hval += (unsigned long int) *str++;
g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
if (g != 0)
{
hval ^= g >> (HASHWORDBITS - 8);
hval ^= g;
}
}
return hval;
}

View File

@ -1,5 +1,5 @@
/* Implements a string hashing function.
Copyright (C) 1995, 1997, 1998, 2000 Free Software Foundation, Inc.
Copyright (C) 1995, 1997, 1998, 2000, 2003 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
@ -34,27 +34,5 @@
/* Defines the so called `hashpjw' function by P.J. Weinberger
[see Aho/Sethi/Ullman, COMPILERS: Principles, Techniques and Tools,
1986, 1987 Bell Telephone Laboratories, Inc.] */
static unsigned long int hash_string PARAMS ((const char *__str_param));
static inline unsigned long int
hash_string (str_param)
const char *str_param;
{
unsigned long int hval, g;
const char *str = str_param;
/* Compute the hash value for the given string. */
hval = 0;
while (*str != '\0')
{
hval <<= 4;
hval += (unsigned long int) *str++;
g = hval & ((unsigned long int) 0xf << (HASHWORDBITS - 4));
if (g != 0)
{
hval ^= g >> (HASHWORDBITS - 8);
hval ^= g;
}
}
return hval;
}
extern unsigned long int __hash_string PARAMS ((const char *__str_param))
attribute_hidden;

View File

@ -1,5 +1,5 @@
/* Load needed message catalogs.
Copyright (C) 1995-1999, 2000, 2001, 2002 Free Software Foundation, Inc.
Copyright (C) 1995-2002, 2003 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
@ -1209,7 +1209,7 @@ _nl_load_domain (domain_file, domainbinding)
for (i = 0; i < n_sysdep_strings; i++)
{
const char *msgid = inmem_orig_sysdep_tab[i].pointer;
nls_uint32 hash_val = hash_string (msgid);
nls_uint32 hash_val = __hash_string (msgid);
nls_uint32 idx = hash_val % domain->hash_size;
nls_uint32 incr = 1 + (hash_val % (domain->hash_size - 2));

View File

@ -258,6 +258,7 @@ find_object (struct ftw_data *data, struct STAT *st)
static inline int
__attribute ((always_inline))
open_dir_stream (struct ftw_data *data, struct dir_data *dirp)
{
int result = 0;
@ -348,7 +349,8 @@ open_dir_stream (struct ftw_data *data, struct dir_data *dirp)
}
static inline int
static int
internal_function
process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
size_t namlen)
{

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
@ -28,6 +28,7 @@
#include "localeinfo.h"
#include "../iconv/gconv_charset.h"
#include "../iconv/gconv_int.h"
#ifdef NL_CURRENT_INDIRECT

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper <drepper@gnu.org>, 1996.
@ -110,6 +110,35 @@ lr_eof (struct linereader *lr)
}
void
lr_ignore_rest (struct linereader *lr, int verbose)
{
if (verbose)
{
while (isspace (lr->buf[lr->idx]) && lr->buf[lr->idx] != '\n'
&& lr->buf[lr->idx] != lr->comment_char)
if (lr->buf[lr->idx] == '\0')
{
if (lr_next (lr) < 0)
return;
}
else
++lr->idx;
if (lr->buf[lr->idx] != '\n' && ! feof (lr->fp)
&& lr->buf[lr->idx] != lr->comment_char)
lr_error (lr, _("trailing garbage at end of line"));
}
/* Ignore continued line. */
while (lr->bufact > 0 && lr->buf[lr->bufact - 1] != '\n')
if (lr_next (lr) < 0)
break;
lr->idx = lr->bufact;
}
void
lr_close (struct linereader *lr)
{

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-2001, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1996-2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Contributed by Ulrich Drepper, <drepper@gnu.org>.
@ -95,6 +95,7 @@ extern struct token *lr_token (struct linereader *lr,
struct localedef_t *locale,
const struct repertoire_t *repertoire,
int verbose);
extern void lr_ignore_rest (struct linereader *lr, int verbose);
#define lr_error(lr, fmt, args...) \
@ -103,6 +104,7 @@ extern struct token *lr_token (struct linereader *lr,
static inline int
__attribute ((always_inline))
lr_getc (struct linereader *lr)
{
if (lr->idx == lr->bufact)
@ -120,6 +122,7 @@ lr_getc (struct linereader *lr)
static inline int
__attribute ((always_inline))
lr_ungetc (struct linereader *lr, int ch)
{
if (lr->idx == 0)
@ -142,33 +145,4 @@ lr_ungetn (struct linereader *lr, size_t n)
}
static inline void
lr_ignore_rest (struct linereader *lr, int verbose)
{
if (verbose)
{
while (isspace (lr->buf[lr->idx]) && lr->buf[lr->idx] != '\n'
&& lr->buf[lr->idx] != lr->comment_char)
if (lr->buf[lr->idx] == '\0')
{
if (lr_next (lr) < 0)
return;
}
else
++lr->idx;
if (lr->buf[lr->idx] != '\n' && ! feof (lr->fp)
&& lr->buf[lr->idx] != lr->comment_char)
lr_error (lr, _("trailing garbage at end of line"));
}
/* Ignore continued line. */
while (lr->bufact > 0 && lr->buf[lr->bufact - 1] != '\n')
if (lr_next (lr) < 0)
break;
lr->idx = lr->bufact;
}
#endif /* linereader.h */

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1991, 92, 95-99, 2000, 2002 Free Software Foundation, Inc.
/* Copyright (C) 1991, 92, 1995-2000, 2002, 2003 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
@ -128,7 +128,7 @@ extern int _nl_msg_cat_cntr;
/* Construct a new composite name. */
static inline char *
static char *
new_composite_name (int category, const char *newnames[__LC_LAST])
{
size_t last_len = 0;

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
/* Copyright (C) 1996,1997,1998,1999,2000,2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper, <drepper@cygnus.com>.
@ -19,6 +19,7 @@
/* Find index of weight. */
static inline int32_t
__attribute ((always_inline))
findidx (const unsigned char **cpp)
{
int_fast32_t i = table[*(*cpp)++];

View File

@ -1,4 +1,4 @@
/* Copyright (C) 1996-2000, 2001 Free Software Foundation, Inc.
/* Copyright (C) 1996-2000, 2001, 2003 Free Software Foundation, Inc.
This file is part of the GNU C Library.
Written by Ulrich Drepper, <drepper@cygnus.com>.
@ -19,6 +19,7 @@
/* Find index of weight. */
static inline int32_t
__attribute ((always_inline))
findidx (const wint_t **cpp)
{
int32_t i;

View File

@ -1,3 +1,8 @@
2003-06-11 Ulrich Drepper <drepper@redhat.com>
* allocatestack.c (queue_stack): Always inline.
* ptreadhP.h (__do_cancel): Likewise.
2003-06-10 Jakub Jelinek <jakub@redhat.com>
* sysdeps/unix/sysv/linux/s390/sem_timedwait.c (sem_timedwait): Fix

View File

@ -202,6 +202,7 @@ get_cached_stack (size_t *sizep, void **memp)
/* Add a stack frame which is not used anymore to the stack. Must be
called with the cache lock held. */
static inline void
__attribute ((always_inline))
queue_stack (struct pthread *stack)
{
/* We unconditionally add the stack to the list. The memory may

View File

@ -116,7 +116,7 @@ extern void __pthread_unwind (__pthread_unwind_buf_t *__buf)
/* Called when a thread reacts on a cancellation request. */
static inline void
__attribute ((noreturn))
__attribute ((noreturn, always_inline))
__do_cancel (void)
{
struct pthread *self = THREAD_SELF;