match: don't use mutable default argument value
authorGregory Szorc <gregory.szorc@gmail.com>
Sun, 12 Mar 2017 21:53:03 -0700
changeset 31392 6168d4b93634
parent 31391 d2878bec55bd
child 31393 8b6927eb7efd
match: don't use mutable default argument value There shouldn't be a big perf hit creating a new object because this function is complicated and does things that dwarf the cost of creating a new PyObject.
mercurial/match.py
--- a/mercurial/match.py	Sun Mar 12 21:52:17 2017 -0700
+++ b/mercurial/match.py	Sun Mar 12 21:53:03 2017 -0700
@@ -85,7 +85,7 @@
     return True
 
 class match(object):
-    def __init__(self, root, cwd, patterns, include=[], exclude=[],
+    def __init__(self, root, cwd, patterns, include=None, exclude=None,
                  default='glob', exact=False, auditor=None, ctx=None,
                  listsubrepos=False, warn=None, badfn=None):
         """build an object to match a set of file patterns
@@ -117,6 +117,8 @@
                               the same directory
         '<something>' - a pattern of the specified default type
         """
+        include = include or []
+        exclude = exclude or []
 
         self._root = root
         self._cwd = cwd