From ea83223c5cb7dbfbb37169baebf702484e79f014 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 22 Aug 2000 16:27:22 +0000 Subject: Update. 2000-08-22 Ulrich Drepper * stdlib/random_r.c: Cleanups. * stdlib/tst-random.c: New file. * stdlib/Makefile (tests): Add tst-random. Patches by Michael Fischer . * sysdeps/unix/sysv/linux/s390/getmsg.c: Remove. * sysdeps/unix/sysv/linux/s390/getpmsg.c: Remove. * sysdeps/unix/sysv/linux/s390/putmsg.c: Remove. * sysdeps/unix/sysv/linux/s390/putpmsg.c: Remove. --- ChangeLog | 15 +++++++++++---- stdlib/Makefile | 2 +- stdlib/random_r.c | 14 +++++++------- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/ChangeLog b/ChangeLog index db405c8e94..eaaf34a1b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,9 +1,16 @@ +2000-08-22 Ulrich Drepper + + * stdlib/random_r.c: Cleanups. + * stdlib/tst-random.c: New file. + * stdlib/Makefile (tests): Add tst-random. + Patches by Michael Fischer . + 2000-08-21 Martin Schwidefsky - * sysdeps/unix/sysv/linux/s390/getmsg.c: Remove. - * sysdeps/unix/sysv/linux/s390/getpmsg.c: Remove. - * sysdeps/unix/sysv/linux/s390/putmsg.c: Remove. - * sysdeps/unix/sysv/linux/s390/putpmsg.c: Remove. + * sysdeps/unix/sysv/linux/s390/getmsg.c: Remove. + * sysdeps/unix/sysv/linux/s390/getpmsg.c: Remove. + * sysdeps/unix/sysv/linux/s390/putmsg.c: Remove. + * sysdeps/unix/sysv/linux/s390/putpmsg.c: Remove. 2000-08-22 Jakub Jelinek diff --git a/stdlib/Makefile b/stdlib/Makefile index de6800ae8d..65df53d3cb 100644 --- a/stdlib/Makefile +++ b/stdlib/Makefile @@ -52,7 +52,7 @@ routines := \ distribute := exit.h grouping.h abort-instr.h isomac.c tests := tst-strtol tst-strtod testmb testrand testsort testdiv \ test-canon test-canon2 tst-strtoll tst-environ \ - tst-xpg-basename + tst-xpg-basename tst-random # Several mpn functions from GNU MP are used by the strtod function. diff --git a/stdlib/random_r.c b/stdlib/random_r.c index 120fceee11..00ba44bfff 100644 --- a/stdlib/random_r.c +++ b/stdlib/random_r.c @@ -268,7 +268,7 @@ __setstate_r (arg_state, buf) char *arg_state; struct random_data *buf; { - int32_t *new_state = (int32_t *) arg_state; + int32_t *new_state = 1 + (int32_t *) arg_state; int type; int old_type; int32_t *old_state; @@ -285,7 +285,7 @@ __setstate_r (arg_state, buf) else old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type; - type = new_state[0] % MAX_TYPES; + type = new_state[-1] % MAX_TYPES; if (type < TYPE_0 || type > TYPE_4) goto fail; @@ -295,13 +295,13 @@ __setstate_r (arg_state, buf) if (type != TYPE_0) { - int rear = new_state[0] / MAX_TYPES; - buf->rptr = &new_state[1 + rear]; - buf->fptr = &new_state[1 + (rear + separation) % degree]; + int rear = new_state[-1] / MAX_TYPES; + buf->rptr = &new_state[rear]; + buf->fptr = &new_state[(rear + separation) % degree]; } - buf->state = &new_state[1]; + buf->state = new_state; /* Set end_ptr too. */ - buf->end_ptr = &new_state[1 + degree]; + buf->end_ptr = &new_state[degree]; return 0; -- cgit v1.2.3