rand/rand-x86ish.S: Add missing `undef' of the `COUNT' register.
[catacomb] / rand / dsarand.c
index 9b18ab0..a4328aa 100644 (file)
@@ -282,9 +282,11 @@ static int gmisc(grand *r, unsigned op, ...)
       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;
@@ -310,7 +312,8 @@ static const grand_ops gops = {
   "dsarand",
   0, 0,
   gmisc, gdestroy,
-  grand_word, grand_byte, grand_word, grand_range, gfill
+  grand_defaultword, grand_defaultbyte, grand_defaultword,
+  grand_defaultrange, gfill
 };
 
 /* --- @dsarand_create@ --- *