mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-24 14:00:30 +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;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !_STRING_ARCH_unaligned
|
|
||||||
/* The aliases_len array in the mapped database might very
|
/* The aliases_len array in the mapped database might very
|
||||||
well be unaligned. We will access it word-wise so on
|
well be unaligned. We will access it word-wise so on
|
||||||
platforms which do not tolerate unaligned accesses we
|
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
|
hst_resp.h_aliases_cnt
|
||||||
* sizeof (uint32_t));
|
* sizeof (uint32_t));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
if (type != GETHOSTBYADDR && type != GETHOSTBYNAME)
|
if (type != GETHOSTBYADDR && type != GETHOSTBYNAME)
|
||||||
{
|
{
|
||||||
if (hst_resp.h_length == INADDRSZ)
|
if (hst_resp.h_length == INADDRSZ)
|
||||||
|
@ -140,7 +140,6 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
|
|||||||
> recend, 0))
|
> recend, 0))
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
#if !_STRING_ARCH_unaligned
|
|
||||||
/* The aliases_len array in the mapped database might very
|
/* The aliases_len array in the mapped database might very
|
||||||
well be unaligned. We will access it word-wise so on
|
well be unaligned. We will access it word-wise so on
|
||||||
platforms which do not tolerate unaligned accesses we
|
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
|
serv_resp.s_aliases_cnt
|
||||||
* sizeof (uint32_t));
|
* 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);
|
struct hashentry *here = (struct hashentry *) (mapped->data + work);
|
||||||
ref_t here_key, here_packet;
|
ref_t here_key, here_packet;
|
||||||
|
|
||||||
#if !_STRING_ARCH_unaligned
|
|
||||||
/* Although during garbage collection when moving struct hashentry
|
/* Although during garbage collection when moving struct hashentry
|
||||||
records around we first copy from old to new location and then
|
records around we first copy from old to new location and then
|
||||||
adjust pointer from previous hashentry to it, there is no barrier
|
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. */
|
application. */
|
||||||
if ((uintptr_t) here & (__alignof__ (*here) - 1))
|
if ((uintptr_t) here & (__alignof__ (*here) - 1))
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (type == here->type
|
if (type == here->type
|
||||||
&& keylen == here->len
|
&& keylen == here->len
|
||||||
@ -487,10 +485,8 @@ __nscd_cache_search (request_type type, const char *key, size_t keylen,
|
|||||||
struct datahead *dh
|
struct datahead *dh
|
||||||
= (struct datahead *) (mapped->data + here_packet);
|
= (struct datahead *) (mapped->data + here_packet);
|
||||||
|
|
||||||
#if !_STRING_ARCH_unaligned
|
|
||||||
if ((uintptr_t) dh & (__alignof__ (*dh) - 1))
|
if ((uintptr_t) dh & (__alignof__ (*dh) - 1))
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* See whether we must ignore the entry or whether something
|
/* See whether we must ignore the entry or whether something
|
||||||
is wrong because garbage collection is in progress. */
|
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;
|
struct hashentry *trailelem;
|
||||||
trailelem = (struct hashentry *) (mapped->data + trail);
|
trailelem = (struct hashentry *) (mapped->data + trail);
|
||||||
|
|
||||||
#if !_STRING_ARCH_unaligned
|
|
||||||
/* We have to redo the checks. Maybe the data changed. */
|
/* We have to redo the checks. Maybe the data changed. */
|
||||||
if ((uintptr_t) trailelem & (__alignof__ (*trailelem) - 1))
|
if ((uintptr_t) trailelem & (__alignof__ (*trailelem) - 1))
|
||||||
return NULL;
|
return NULL;
|
||||||
#endif
|
|
||||||
|
|
||||||
if (trail + MINIMUM_HASHENTRY_SIZE > datasize)
|
if (trail + MINIMUM_HASHENTRY_SIZE > datasize)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user