https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7149
--- Comment #4 from Jakub Zawadzki <darkjames-ws@xxxxxxxxxxxx> 2012-04-19 07:21:46 PDT ---
(In reply to comment #1)
> Created attachment 8272 [details]
> fast conversation lookup by cacheing the latest found element
This patch doesn't look correct to me.
you added:
+ if((match->latest_found)&&(match->latest_found->setup_frame<=frame_num))
+     return match->latest_found;
What if latest_found->setup_frame = 1?
It'll be always true.
So conversation_lookup_hashtable
will return either match->last or match->latest_found.
Please look at logic in for() loop.
We also need to check if latest_found->{next->...->next}->setup_frame <=
frame_num
What we can do is:
    if((match->latest_found)&&(match->latest_found->setup_frame<=frame_num))
        conversation = latest_found;
    else
        conversation = match->next;
    for (; conversation; conversation = conversation->next) {
          /* ... *
(and I'm not quite sure about it)
Not O(1), sorry.
-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are watching all bug changes.