Previously the increment was outside the loop body, turning it into a
dead increment.
Move the increment into the loop body as it is done in the true branch
above. This fixes the offsets recorded in the default_pager_page_t
objects.
Found using the Clang Static Analyzer.
* mach-defpager/default_pager.c (pager_pages): Fix returned page offsets.
---
mach-defpager/default_pager.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/mach-defpager/default_pager.c b/mach-defpager/default_pager.c
index 8e466f7..a65a5fe 100644
--- a/mach-defpager/default_pager.c
+++ b/mach-defpager/default_pager.c
@@ -879,12 +879,13 @@ pager_pages(pager, pages, numpages)
offset += vm_page_size;
}
} else {
- for (emap = &map[size]; map < emap; map++)
+ for (emap = &map[size]; map < emap; map++) {
if ( ! no_block(*map) ) {
if (actual++ < numpages)
pages++->dpp_offset = offset;
}
- offset += vm_page_size;
+ offset += vm_page_size;
+ }
}
return actual;
}
--
1.7.10.4