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


Reply via email to