[Gd-chatter] r11045 - trunk/libraries/gui-sniffer

hannes at gwydiondylan.org hannes at gwydiondylan.org
Sat Dec 9 17:22:39 CET 2006


Author: hannes
Date: Sat Dec  9 17:22:37 2006
New Revision: 11045

Modified:
   trunk/libraries/gui-sniffer/gui-sniffer.dylan
Log:
Bug: 7299
*improve performance by copying the sequence instead of adding each item seperately

Modified: trunk/libraries/gui-sniffer/gui-sniffer.dylan
==============================================================================
--- trunk/libraries/gui-sniffer/gui-sniffer.dylan	(original)
+++ trunk/libraries/gui-sniffer/gui-sniffer.dylan	Sat Dec  9 17:22:37 2006
@@ -248,13 +248,10 @@
                     map(real-frame, frame.network-frames),
                     frame.network-frames)
         else
-          frame.network-frames
+          copy-sequence(frame.network-frames)
         end;
     unless (shown-packets = gadget-items(frame.packet-table))
-      gadget-items(frame.packet-table) := #();
-      do(method(x)
-           add-item(frame.packet-table, make-item(frame.packet-table, x))
-         end, shown-packets);
+      gadget-items(frame.packet-table) := shown-packets;
       show-packet(frame);
     end;
   end;
@@ -846,8 +843,10 @@
 define method reinit-gui (frame :: <gui-sniffer-frame>)
   frame.first-packet-arrived := #f;
   *count* := 0;
-  frame.network-frames := make(<stretchy-vector>);
-  gadget-items(frame.packet-table) := #();
+  with-lock ($packet-list-lock)
+    frame.network-frames := make(<stretchy-vector>);
+    gadget-items(frame.packet-table) := #();
+  end;
   show-packet(frame);
 end;
 



More information about the chatter mailing list