Author: zothar
Date: 2006-11-20 03:33:39 +0000 (Mon, 20 Nov 2006)
New Revision: 11017

Modified:
   trunk/freenet/src/freenet/io/comm/MessageFilter.java
Log:
Check for a source match before iterating over the fields in 
MessageFilter.match() for a slight performance gain.  This looks right to me, 
but perhaps source was after the field iteration for a reason I've missed.

Modified: trunk/freenet/src/freenet/io/comm/MessageFilter.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/MessageFilter.java        2006-11-20 
03:30:12 UTC (rev 11016)
+++ trunk/freenet/src/freenet/io/comm/MessageFilter.java        2006-11-20 
03:33:39 UTC (rev 11017)
@@ -126,11 +126,12 @@
                        _matched = true;
                        return true;
                }
-               if (_type != null) {
-                       if (!m.getSpec().equals(_type)) {
-                               return false;
-                       }
+               if ((_type != null) && (!_type.equals(m.getSpec()))) {
+                       return false;
                }
+               if ((_source != null) && (!_source.equals(m.getSource()))) {
+                       return false;
+               }
                synchronized (_fields) {
                        for (Iterator iter = _fields.keySet().iterator(); 
iter.hasNext();) {
                                String fieldName = (String) iter.next();
@@ -142,9 +143,6 @@
                                }
                        }
                }
-               if ((_source != null) && (!_source.equals(m.getSource()))) {
-                       return false;
-               }
                _matched=true;
                return true;
        }


Reply via email to