|
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:
|