grand *rr = va_arg(ap, grand *);
rr->ops->fill(rr, g->d.p, g->d.sz);
} break;
- case DSARAND_PASSES:
- g->d.passes = va_arg(ap, unsigned);
- break;
+ case DSARAND_PASSES: {
+ unsigned n = va_arg(ap, unsigned);
+ rc = g->d.passes;
+ if (n > 0) g->d.passes = n;
+ } break;
case DSARAND_SEEDSZ:
rc = g->d.sz;
break;