Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8287572f authored by Tao Bao's avatar Tao Bao Committed by android-build-merger
Browse files

Merge "Fix calculation of stashed blocks."

am: db08d835

* commit 'db08d835':
  Fix calculation of stashed blocks.
parents 95402464 db08d835
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -338,8 +338,8 @@ class BlockImageDiff(object):
          sid = next_stash_id
          next_stash_id += 1
        stashes[s] = sid
        stashed_blocks += sr.size()
        if self.version == 2:
          stashed_blocks += sr.size()
          out.append("stash %d %s\n" % (sid, sr.to_string_raw()))
        else:
          sh = self.HashBlocks(self.src, sr)
@@ -347,12 +347,14 @@ class BlockImageDiff(object):
            stashes[sh] += 1
          else:
            stashes[sh] = 1
            stashed_blocks += sr.size()
            out.append("stash %s %s\n" % (sh, sr.to_string_raw()))

      if stashed_blocks > max_stashed_blocks:
        max_stashed_blocks = stashed_blocks

      free_string = []
      free_size = 0

      if self.version == 1:
        src_str = xf.src_ranges.to_string_raw() if xf.src_ranges else ""
@@ -371,7 +373,6 @@ class BlockImageDiff(object):
        mapped_stashes = []
        for s, sr in xf.use_stash:
          sid = stashes.pop(s)
          stashed_blocks -= sr.size()
          unstashed_src_ranges = unstashed_src_ranges.subtract(sr)
          sh = self.HashBlocks(self.src, sr)
          sr = xf.src_ranges.map_within(sr)
@@ -384,11 +385,13 @@ class BlockImageDiff(object):
            # and lead to OTA failures.
            # Bug: 23119955
            free_string.append("free %d\n" % (sid,))
            free_size += sr.size()
          else:
            assert sh in stashes
            src_str.append("%s:%s" % (sh, sr.to_string_raw()))
            stashes[sh] -= 1
            if stashes[sh] == 0:
              free_size += sr.size()
              free_string.append("free %s\n" % (sh))
              stashes.pop(sh)
          heapq.heappush(free_stash_ids, sid)
@@ -492,6 +495,7 @@ class BlockImageDiff(object):

      if free_string:
        out.append("".join(free_string))
        stashed_blocks -= free_size

      if self.version >= 2 and common.OPTIONS.cache_size is not None:
        # Sanity check: abort if we're going to need more stash space than