Donn Cave wrote:
It looks easy enough to me to code up an order independent version
that
will actually work. I would initialize adds[] and dels[] with old & new
berval pointers, iterate through dels[] and adds[] (nested), and clear
both on match. The code is easier to follow and empirically I see one
fewer matches in the cases I tested it on. But that's just a test of
the algorithm - I haven't sorted out what needs to be done at the end of
the function where mcur etc. are modified depending on i == j.
The only way to do this right, without dying on an O(n^2) algorithm, is to sort
both arrays first and then walk through them in order as the original code did.
If you want to submit such a patch, please do. I don't have a lot of time to
focus on this at the moment.
--
-- Howard Chu
Chief Architect, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/