| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
POSIX specifies the behaviour for null rootp input, but it
was not implemented correctly.
|
|
|
|
|
| |
changed the insertion method to simplify the recursion logic and
reduce code size a bit.
|
|
|
|
|
| |
malloc failure was not properly propagated in the insertion method
which led to null pointer dereference.
|
|
|
|
|
|
|
| |
the tsearch data structure is an avl tree, but it did not implement
the deletion operation correctly so the tree could become unbalanced.
reported by Ed Schouten.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
this change is to align with a change in the glibc interface.
|
|
|
|
|
|
|
| |
patch by nsz. the actual object the caller has storing the tree root
has type void *, so accessing it as struct node * is not valid.
instead, simply access the value, move it to a temporary of the
appropriate type and work from there, then move the result back.
|
| |
|
| |
|
|
|