Ver código fonte

Minor refactoring to reuse existing id string objects when possible

Jonas Borgström 14 anos atrás
pai
commit
2a631bb3e6
2 arquivos alterados com 4 adições e 13 exclusões
  1. 2 11
      darc/archive.py
  2. 2 2
      darc/cache.py

+ 2 - 11
darc/archive.py

@@ -78,15 +78,6 @@ class Archive(object):
         self.store.put(NS_ARCHIVE_METADATA, self.id, data)
         self.store.commit()
 
-    def add_chunk(self, id, size):
-        try:
-            return self.chunk_idx[id]
-        except KeyError:
-            idx = len(self.chunks)
-            self.chunks.append((id, size))
-            self.chunk_idx[id] = idx
-            return idx
-
     def stats(self, cache):
         self.get_items()
         osize = csize = usize = 0
@@ -273,14 +264,14 @@ class Archive(object):
             return self.chunk_idx[id]
         except KeyError:
             idx = len(self.chunks)
-            size = cache.chunk_incref(id)
+            id, size = cache.chunk_incref(id)
             self.chunks.append((id, size))
             self.chunk_idx[id] = idx
             return idx
 
     def process_chunk(self, id, data, cache):
         idx = len(self.chunks)
-        size = cache.add_chunk(id, data)
+        id, size = cache.add_chunk(id, data)
         self.chunks.append((id, size))
         self.chunk_idx[id] = idx
         return idx

+ 2 - 2
darc/cache.py

@@ -79,7 +79,7 @@ class Cache(object):
         csize = len(data)
         self.store.put(NS_CHUNK, id, data)
         self.chunk_counts[id] = (1, csize)
-        return csize
+        return id, csize
 
     def seen_chunk(self, id):
         return self.chunk_counts.get(id, (0, 0))[0]
@@ -87,7 +87,7 @@ class Cache(object):
     def chunk_incref(self, id):
         count, size = self.chunk_counts[id]
         self.chunk_counts[id] = (count + 1, size)
-        return size
+        return id, size
 
     def chunk_decref(self, id):
         count, size = self.chunk_counts[id]