Moving a found object to the front of its bucket to reduce the necessary traversal steps to find an object. This change improves the search time on large system with many data or in link lists.
(closes issue #19233)
Reported by: schmidts
Review: https://reviewboard.asterisk.org/r/1201/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@316962
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
}
ast_free(cur); /* free the link record */
}
+ if ((match) && (!(flags & OBJ_UNLINK))) {
+ AST_LIST_REMOVE_CURRENT(entry);
+ AST_LIST_INSERT_HEAD(&c->buckets[i], cur, entry);
+ }
if ((match & CMP_STOP) || !(flags & OBJ_MULTIPLE)) {
/* We found our only (or last) match, so force an exit from