Blame db7087b883bf52cbff063ad17a41cc1cbb85104d.patch

Dan Callaghan e480556
From 2d3d0aeead0ac1b1f5e9fa5ef351aac8b14b5da9 Mon Sep 17 00:00:00 2001
Dan Callaghan e480556
From: Simon McVittie <smcv@debian.org>
Dan Callaghan e480556
Date: Mon, 10 Dec 2018 15:23:47 +0000
Dan Callaghan e480556
Subject: [PATCH] Filemap: catch StopIteration from next(iterator)
Dan Callaghan e480556
Dan Callaghan e480556
In Python >= 3.7, if code in a generator raises StopIteration, it is
Dan Callaghan e480556
transformed into a RuntimeError instead of terminating the generator
Dan Callaghan e480556
gracefully.
Dan Callaghan e480556
Dan Callaghan e480556
Closes: https://github.com/intel/bmap-tools/issues/57
Dan Callaghan e480556
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=915686
Dan Callaghan e480556
---
Dan Callaghan e480556
 bmaptools/Filemap.py | 6 +++++-
Dan Callaghan e480556
 1 file changed, 5 insertions(+), 1 deletion(-)
Dan Callaghan e480556
Dan Callaghan e480556
diff --git a/bmaptools/Filemap.py b/bmaptools/Filemap.py
Dan Callaghan e480556
index 3e56798..e06e654 100644
Dan Callaghan e480556
--- a/bmaptools/Filemap.py
Dan Callaghan e480556
+++ b/bmaptools/Filemap.py
Dan Callaghan e480556
@@ -476,7 +476,11 @@ def get_mapped_ranges(self, start, count):
Dan Callaghan e480556
         _log.debug("FilemapFiemap: get_mapped_ranges(%d,  %d(%d))"
Dan Callaghan e480556
                    % (start, count, start + count - 1))
Dan Callaghan e480556
         iterator = self._do_get_mapped_ranges(start, count)
Dan Callaghan e480556
-        first_prev, last_prev = next(iterator)
Dan Callaghan e480556
+
Dan Callaghan e480556
+        try:
Dan Callaghan e480556
+            first_prev, last_prev = next(iterator)
Dan Callaghan e480556
+        except StopIteration:
Dan Callaghan e480556
+            return
Dan Callaghan e480556
 
Dan Callaghan e480556
         for first, last in iterator:
Dan Callaghan e480556
             if last_prev == first - 1: