X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fcontrol%2Floop.c;h=40a33c11bbafc451adddb40f9529356ed12c6776;hb=423d3e418a94598b85c82fb83c9796de7712288b;hp=20cf69e5d9ce2abbeb14daa126909a57efb2eb32;hpb=9f087e7aa4cdff1d5d46d5e188c0017a9d2d0029;p=pspp-builds.git diff --git a/src/language/control/loop.c b/src/language/control/loop.c index 20cf69e5..40a33c11 100644 --- a/src/language/control/loop.c +++ b/src/language/control/loop.c @@ -17,6 +17,7 @@ #include #include "control-stack.h" + #include #include #include @@ -180,7 +181,7 @@ close_loop (void *loop_) && loop->index_var == NULL && loop->loop_condition == NULL && loop->end_loop_condition == NULL) - loop->max_pass_count = get_mxloops (); + loop->max_pass_count = settings_get_mxloops (); } /* Parses an IF clause for LOOP or END LOOP and stores the @@ -320,7 +321,8 @@ loop_trns_proc (void *loop_, struct ccase *c, casenumber case_num) case_data_rw (c, loop->index_var)->f = loop->cur; /* Throw out pathological cases. */ - if (!finite (loop->cur) || !finite (loop->by) || !finite (loop->last) + if (!isfinite (loop->cur) || !isfinite (loop->by) + || !isfinite (loop->last) || loop->by == 0.0 || (loop->by > 0.0 && loop->cur > loop->last) || (loop->by < 0.0 && loop->cur < loop->last))