-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/33623/
-----------------------------------------------------------
(Updated April 28, 2015, 10:57 a.m.)
Review request for qpid, Alan Conway, Andrew Stitcher, and Rafael Schloming.
Bugs: PROTON-858
https://issues.apache.org/jira/browse/PROTON-858
Repository: qpid-proton-git
Description
-------
The internal map implementation for proton-c uses coalesced hashing, but the
current deletion algorithm does not take account of this. On deletion of
entries, the map can lose its ability to locate other entries by key.
This patch is the simplest possible fix. It frees the deleted entry, makes any
previous entry that points to this tha tail of its chain, and then relocates
any entries in a chain following the deleted entry. Though I believe this to be
correct and safe, it does involve more work on some deletions. The approach can
be optimised further, either be reducing the amount of chain that needs
relocated, or by marking records as deleted in the first instance and only
rehashing later on some criteria.
(I started off trying to do the latter, but it is more complicated and I still
haven't got my patch fully correct. When I get that working I'll post that
also. It is a more involved change though, so perhaps we may want to consider
this simpler approach for 0.9.1).
Diffs
-----
proton-c/src/object/map.c 1a758a1
Diff: https://reviews.apache.org/r/33623/diff/
Testing
-------
Thanks,
Gordon Sim