mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
nscd: Remove _STRING_ARCH_unaligned usage
It only adds a small overhead for unaligned inputs (which should not be common) and unify the code. Checked on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Wilco Dijkstra <Wilco.Dijkstra@arm.com>
This commit is contained in:
parent
a6ccce23af
commit
f281a955e9
@ -185,7 +185,6 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
||||
goto out;
|
||||
}
|
||||
|
||||
#if !_STRING_ARCH_unaligned
|
||||
/* The aliases_len array in the mapped database might very
|
||||
well be unaligned. We will access it word-wise so on
|
||||
platforms which do not tolerate unaligned accesses we
|
||||
@ -199,7 +198,6 @@ nscd_gethst_r (const char *key, size_t keylen, request_type type,
|
||||
hst_resp.h_aliases_cnt
|
||||
* sizeof (uint32_t));
|
||||
}
|
||||
#endif
|
||||
if (type != GETHOSTBYADDR && type != GETHOSTBYNAME)
|
||||
{
|
||||
if (hst_resp.h_length == INADDRSZ)
|
||||
|
@ -140,7 +140,6 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
|
||||
> recend, 0))
|
||||
goto out;
|
||||
|
||||
#if !_STRING_ARCH_unaligned
|
||||
/* The aliases_len array in the mapped database might very
|
||||
well be unaligned. We will access it word-wise so on
|
||||
platforms which do not tolerate unaligned accesses we
|
||||
@ -170,7 +169,6 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
|
||||
serv_resp.s_aliases_cnt
|
||||
* sizeof (uint32_t));
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -465,7 +465,6 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
|
||||
struct hashentry *here = (struct hashentry *) (mapped->data + work);
|
||||
ref_t here_key, here_packet;
|
||||
|
||||
#if !_STRING_ARCH_unaligned
|
||||
/* Although during garbage collection when moving struct hashentry
|
||||
records around we first copy from old to new location and then
|
||||
adjust pointer from previous hashentry to it, there is no barrier
|
||||
@ -474,7 +473,6 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
|
||||
application. */
|
||||
if ((uintptr_t) here & (__alignof__ (*here) - 1))
|
||||
return NULL;
|
||||
#endif
|
||||
|
||||
if (type == here->type
|
||||
&& keylen == here->len
|
||||
@ -487,10 +485,8 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
|
||||
struct datahead *dh
|
||||
= (struct datahead *) (mapped->data + here_packet);
|
||||
|
||||
#if !_STRING_ARCH_unaligned
|
||||
if ((uintptr_t) dh & (__alignof__ (*dh) - 1))
|
||||
return NULL;
|
||||
#endif
|
||||
|
||||
/* See whether we must ignore the entry or whether something
|
||||
is wrong because garbage collection is in progress. */
|
||||
@ -511,11 +507,9 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
|
||||
struct hashentry *trailelem;
|
||||
trailelem = (struct hashentry *) (mapped->data + trail);
|
||||
|
||||
#if !_STRING_ARCH_unaligned
|
||||
/* We have to redo the checks. Maybe the data changed. */
|
||||
if ((uintptr_t) trailelem & (__alignof__ (*trailelem) - 1))
|
||||
return NULL;
|
||||
#endif
|
||||
|
||||
if (trail + MINIMUM_HASHENTRY_SIZE > datasize)
|
||||
return NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user