summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJürg Billeter <j@bitron.ch>2020-10-29 10:30:39 +0100
committerJürg Billeter <j@bitron.ch>2020-12-09 14:51:06 +0000
commit698330a601bcd51d7517edd9fc5466a136f1b1db (patch)
treef4e4c675248a9e641194eabfc9682d256c3cd66a /src
parent604fa06af97a4673ee093b3a1c070944eb0f1cf6 (diff)
downloadbuildstream-698330a601bcd51d7517edd9fc5466a136f1b1db.tar.gz
cascache.py: Optimize _fetch_tree() using add_objects()
Diffstat (limited to 'src')
-rw-r--r--src/buildstream/_cas/cascache.py11
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():
#