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.