projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
From http://www.jwz.org/xscreensaver/xscreensaver-5.34.tar.gz
[xscreensaver]
/
hacks
/
rd-bomb.c
diff --git
a/hacks/rd-bomb.c
b/hacks/rd-bomb.c
index dfcc2897cab5cacf51cb1c4c0d2c1cec183b4e31..08ec7a753d9c84dd8c2a6accab19ac5b607c8ecd 100644
(file)
--- a/
hacks/rd-bomb.c
+++ b/
hacks/rd-bomb.c
@@
-95,10
+95,10
@@
pixack_init(struct state *st, int *size_h, int *size_v)
st->height = get_integer_resource (st->dpy, "height", "Integer");
if (st->width <= 0 && st->height <= 0 && (R & 1))
st->height = get_integer_resource (st->dpy, "height", "Integer");
if (st->width <= 0 && st->height <= 0 && (R & 1))
- st->width = st->height =
48 + BELLRAND(256
);
+ st->width = st->height =
64 + BELLRAND(512
);
- if (st->width <= 0) st->width =
48 + BELLRAND(256
);
- if (st->height <= 0) st->height =
48 + BELLRAND(256
);
+ if (st->width <= 0) st->width =
64 + BELLRAND(512
);
+ if (st->height <= 0) st->height =
64 + BELLRAND(512
);
if (st->width > st->xgwa.width) st->width = st->xgwa.width;
if (st->height > st->xgwa.height) st->height = st->xgwa.height;
if (st->width > st->xgwa.width) st->width = st->xgwa.width;
if (st->height > st->xgwa.height) st->height = st->xgwa.height;
@@
-236,7
+236,9
@@
pixack_frame(struct state *st, char *pix_buf)
/* John E. Pearson "Complex Patterns in a Simple System"
Science, July 1993 */
/* John E. Pearson "Complex Patterns in a Simple System"
Science, July 1993 */
- uvv = (((r1 * r2) >> bps) * r2) >> bps;
+ /* uvv = (((r1 * r2) >> bps) * r2) >> bps; */
+ /* avoid signed integer overflow */
+ uvv = ((((r1 >> 1)* r2) >> bps) * r2) >> (bps - 1);
switch (st->reaction) { /* costs 4% */
case 0:
r1 += 4 * (((28 * (mx-r1)) >> 10) - uvv);
switch (st->reaction) { /* costs 4% */
case 0:
r1 += 4 * (((28 * (mx-r1)) >> 10) - uvv);