about summary refs log tree commit diff
path: root/src/search/hsearch.c
Commit message (Collapse)AuthorAgeFilesLines
* reduce spurious inclusion of libc.hRich Felker2018-09-121-1/+0
| | | | | | | | | | | | | | | | | | | | | libc.h was intended to be a header for access to global libc state and related interfaces, but ended up included all over the place because it was the way to get the weak_alias macro. most of the inclusions removed here are places where weak_alias was needed. a few were recently introduced for hidden. some go all the way back to when libc.h defined CANCELPT_BEGIN and _END, and all (wrongly implemented) cancellation points had to include it. remaining spurious users are mostly callers of the LOCK/UNLOCK macros and files that use the LFS64 macro to define the awful *64 aliases. in a few places, new inclusion of libc.h is added because several internal headers no longer implicitly include libc.h. declarations for __lockfile and __unlockfile are moved from libc.h to stdio_impl.h so that the latter does not need libc.h. putting them in libc.h made no sense at all, since the macros in stdio_impl.h are needed to use them correctly anyway.
* make inadvertently exposed __h{create,delete,search}_r functions staticRich Felker2018-09-121-6/+6
|
* remove struct elem entirely from hsearch.csin2014-04-021-29/+22
| | | | | | | | | | | | | There are two changes here, both of which make sense to be done in a single patch: - Remove hash from struct elem and compute it at runtime wherever necessary. - Eliminate struct elem and use ENTRY directly. As a result we cut down on the memory usage as each element in the hash table now contains only an ENTRY not an ENTRY + size_t for the hash. The downside is that the hash needs to be computed at runtime.
* implement hcreate_r, hdestroy_r and hsearch_rsin2014-04-021-30/+73
| | | | | | | | | | the size and alignment of struct hsearch_data are matched to the glibc definition for binary compatibility. the members of the structure do not match, which should not be a problem as long as applications correctly treat the structure as opaque. unlike the glibc implementation, this version of hcreate_r does not require the caller to zero-fill the structure before use.
* POSIX conformance fix: define struct entry in search.hSzabolcs Nagy2013-10-291-8/+8
|
* XSI search.h API implementation by Szabolcs NagyRich Felker2011-06-251-0/+118