-----------------------------------------------------------
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

Reply via email to