dvd-sector-copy.c (find_good_sector): Use `good' rather than `bad_hi'.
authorMark Wooding <mdw@distorted.org.uk>
Fri, 8 Apr 2022 17:50:34 +0000 (18:50 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Fri, 8 Apr 2022 17:52:25 +0000 (18:52 +0100)
It should be the case that, if there's any difference at all, `good' is
earlier than `bad_hi', which will give us more good data.

dvd-sector-copy.c

index 40ee26d..16edf5a 100644 (file)
@@ -777,16 +777,16 @@ static ssize_t find_good_sector(secaddr *pos_inout, secaddr end,
     if (n == want) good = pos;
     else bad_hi = pos + n + 1;
   }
-  recovered(bad_lo, bad_hi); *pos_inout = bad_hi;
-  if (bad_hi < r.pos + r.start || r.pos + r.end <= bad_hi)
+  recovered(bad_lo, good); *pos_inout = good;
+  if (good < r.pos + r.start || r.pos + r.end <= good)
     n = 0;
   else {
-    n = r.pos + r.end - bad_hi;
-    rearrange_sectors(&r, 0, bad_hi - r.pos, n);
+    n = r.pos + r.end - good;
+    rearrange_sectors(&r, 0, good - r.pos, n);
   }
 #ifdef DEBUG
   show_recovery_buffer_map(&r, "returning %zd good sectors at %"PRIuSEC"",
-                          n, bad_hi);
+                          n, good);
 #endif
   return (n);
 }