diff options
author | Jürg Billeter <j@bitron.ch> | 2020-10-29 10:30:39 +0100 |
---|---|---|
committer | Jürg Billeter <j@bitron.ch> | 2020-12-09 14:51:06 +0000 |
commit | 698330a601bcd51d7517edd9fc5466a136f1b1db (patch) | |
tree | f4e4c675248a9e641194eabfc9682d256c3cd66a | |
parent | 604fa06af97a4673ee093b3a1c070944eb0f1cf6 (diff) | |
download | buildstream-698330a601bcd51d7517edd9fc5466a136f1b1db.tar.gz |
cascache.py: Optimize _fetch_tree() using add_objects()
-rw-r--r-- | src/buildstream/_cas/cascache.py | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/buildstream/_cas/cascache.py b/src/buildstream/_cas/cascache.py index e19ac39ac..aa9bf17df 100644 --- a/src/buildstream/_cas/cascache.py +++ b/src/buildstream/_cas/cascache.py @@ -550,13 +550,14 @@ class CASCache: with open(objpath, "rb") as f: tree.ParseFromString(f.read()) - tree.children.extend([tree.root]) + dirbuffers = [tree.root.SerializeToString()] for directory in tree.children: - dirbuffer = directory.SerializeToString() - dirdigest = self.add_object(buffer=dirbuffer) - assert dirdigest.size_bytes == len(dirbuffer) + dirbuffers.append(directory.SerializeToString()) - return dirdigest + dirdigests = self.add_objects(buffers=dirbuffers) + + # The digest of the root directory + return dirdigests[0] # fetch_blobs(): # |