diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-06-15 20:03:46 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-06-15 20:03:46 +0000 |
commit | 127e5a48e7b64b5aa7c01b4ccfcc6852f31c2b20 (patch) | |
tree | 94a60eb3e0b5fdbe490b2d67e81a35b2fa04c0ed /rdiff-backup/src/selection.py | |
parent | d2943df4a4eb71162dfd3939e0c668a83d85ee4e (diff) | |
download | rdiff-backup-127e5a48e7b64b5aa7c01b4ccfcc6852f31c2b20.tar.gz |
Various CPU optimizations
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@126 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/src/selection.py')
-rw-r--r-- | rdiff-backup/src/selection.py | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/rdiff-backup/src/selection.py b/rdiff-backup/src/selection.py index 4c003c8..3d1f0e2 100644 --- a/rdiff-backup/src/selection.py +++ b/rdiff-backup/src/selection.py @@ -117,13 +117,15 @@ class Select: if dsrpath.isdir(): for dsrp in self.iterate_in_dir(dsrpath, rec_func, sel_func): yield dsrp - elif s == 2 and dsrpath.isdir(): # Directory is merely scanned - iid = self.iterate_in_dir(dsrpath, rec_func, sel_func) - try: first = iid.next() - except StopIteration: return # no files inside; skip dsrp - yield dsrpath - yield first - for dsrp in iid: yield dsrp + elif s == 2: + if dsrpath.isdir(): # Directory is merely scanned + iid = self.iterate_in_dir(dsrpath, rec_func, sel_func) + try: first = iid.next() + except StopIteration: return # no files inside; skip dsrp + yield dsrpath + yield first + for dsrp in iid: yield dsrp + else: assert 0, "Invalid selection result %s" % (str(s),) def iterate_in_dir(self, dsrpath, rec_func, sel_func): """Iterate the dsrps in directory dsrpath.""" @@ -137,7 +139,7 @@ class Select: else: for filename in Robust.listrp(dsrpath): new_dsrp = Robust.check_common_error( - error_handler, dsrpath.append, filename) + error_handler, dsrpath.append, [filename]) if new_dsrp: for dsrp in rec_func(new_dsrp, rec_func, sel_func): yield dsrp |