Messages in this thread | | | Date | Tue, 02 Dec 2008 18:17:45 -0500 | From | Bill Davidsen <> | Subject | Re: [PATCH v2] ext3, ext4: do_split() fix loop, with obvious unsigned wrap |
| |
Theodore Tso wrote: > On Tue, Dec 02, 2008 at 12:08:38PM -0500, Bill Davidsen wrote: > >> Sorry, you are reading it wrong, the i values inside the loop are >> identical to those in the original. The value of i starts at count, and >> the test comes *before* the value is used inside the loop. The values of >> i inside the loop start at count-1 and go to zero, just as it did in the >> original. That's why the "i--" is there, the test is on the >> unincremented value range count to one, but the value inside the loop is >> correct (or at least is the same as the original patch). >> > > You're right; my bad. But with something like this: > > >>>> + for (i = count; i--; ) { >>>> > > ...where there is no third part of the for loop, and a decrement in > the second part of the loop, just for clarity's sake, it's much better > to write it as a while loop. >
I seriously disagree on that, writing it as a for makes it totally clear that the index initialization is part of the loop. I know, looks funny, not the way we have always done it, not invented here...
-- Bill Davidsen <davidsen@tmr.com> "Woe unto the statesman who makes war without a reason that will still be valid when the war is over..." Otto von Bismark
| |