mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* random.c: include internal.h.
(mt_state): Use rb_integer_unpack. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@41156 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
8ce912bdb3
commit
8bc16423cc
3 changed files with 10 additions and 18 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
Sat Jun 8 06:00:47 2013 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
|
* random.c: include internal.h.
|
||||||
|
(mt_state): Use rb_integer_unpack.
|
||||||
|
|
||||||
Sat Jun 8 00:55:51 2013 Tanaka Akira <akr@fsij.org>
|
Sat Jun 8 00:55:51 2013 Tanaka Akira <akr@fsij.org>
|
||||||
|
|
||||||
* bignum.c (integer_pack_loop_setup): word_num_nailbytes_ret argument
|
* bignum.c (integer_pack_loop_setup): word_num_nailbytes_ret argument
|
||||||
|
|
|
@ -717,7 +717,7 @@ process.$(OBJEXT): {$(VPATH)}process.c $(RUBY_H_INCLUDES) \
|
||||||
$(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h \
|
$(VM_CORE_H_INCLUDES) {$(VPATH)}internal.h \
|
||||||
{$(VPATH)}thread.h {$(VPATH)}vm_opts.h
|
{$(VPATH)}thread.h {$(VPATH)}vm_opts.h
|
||||||
random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES) \
|
random.$(OBJEXT): {$(VPATH)}random.c $(RUBY_H_INCLUDES) \
|
||||||
{$(VPATH)}siphash.c {$(VPATH)}siphash.h
|
{$(VPATH)}siphash.c {$(VPATH)}siphash.h {$(VPATH)}internal.h
|
||||||
range.$(OBJEXT): {$(VPATH)}range.c $(RUBY_H_INCLUDES) \
|
range.$(OBJEXT): {$(VPATH)}range.c $(RUBY_H_INCLUDES) \
|
||||||
$(ENCODING_H_INCLUDES) {$(VPATH)}internal.h {$(VPATH)}id.h
|
$(ENCODING_H_INCLUDES) {$(VPATH)}internal.h {$(VPATH)}id.h
|
||||||
rational.$(OBJEXT): {$(VPATH)}rational.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h $(hdrdir)/ruby.h
|
rational.$(OBJEXT): {$(VPATH)}rational.c $(RUBY_H_INCLUDES) {$(VPATH)}internal.h $(hdrdir)/ruby.h
|
||||||
|
|
21
random.c
21
random.c
|
@ -60,6 +60,7 @@ The original copyright notice follows.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "ruby/ruby.h"
|
#include "ruby/ruby.h"
|
||||||
|
#include "internal.h"
|
||||||
|
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
|
@ -617,23 +618,9 @@ random_copy(VALUE obj, VALUE orig)
|
||||||
static VALUE
|
static VALUE
|
||||||
mt_state(const struct MT *mt)
|
mt_state(const struct MT *mt)
|
||||||
{
|
{
|
||||||
VALUE bigo = rb_big_new(sizeof(mt->state) / sizeof(BDIGIT), 1);
|
return rb_integer_unpack(1, mt->state, numberof(mt->state),
|
||||||
BDIGIT *d = RBIGNUM_DIGITS(bigo);
|
sizeof(*mt->state), 0,
|
||||||
int i;
|
INTEGER_PACK_LSWORD_FIRST|INTEGER_PACK_NATIVE_BYTE_ORDER);
|
||||||
|
|
||||||
for (i = 0; i < numberof(mt->state); ++i) {
|
|
||||||
unsigned int x = mt->state[i];
|
|
||||||
#if SIZEOF_BDIGITS < SIZEOF_INT32
|
|
||||||
int j;
|
|
||||||
for (j = 0; j < SIZEOF_INT32 / SIZEOF_BDIGITS; ++j) {
|
|
||||||
*d++ = BIGLO(x);
|
|
||||||
x = BIGDN(x);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
*d++ = (BDIGIT)x;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
return rb_big_norm(bigo);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* :nodoc: */
|
/* :nodoc: */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue