aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-09-07 18:56:39 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-09-07 20:08:01 +0900
commit2b07b24bdf15e4feeb9dae94a17999070cd77121 (patch)
treebace8aba07da5edfc4e0b7196c6a3baa02e9d0af
parent4924011262e35e3983e245cbfcff15aee7b295f3 (diff)
downloadruby-2b07b24bdf15e4feeb9dae94a17999070cd77121.tar.gz
Added `rb_random_base_init`
To enclose the initialization of Random::Base part.
-rw-r--r--ext/-test-/random/loop.c2
-rw-r--r--include/ruby/random.h1
-rw-r--r--random.c9
3 files changed, 10 insertions, 2 deletions
diff --git a/ext/-test-/random/loop.c b/ext/-test-/random/loop.c
index 4f7c800500..ec4eff013e 100644
--- a/ext/-test-/random/loop.c
+++ b/ext/-test-/random/loop.c
@@ -38,7 +38,7 @@ loop_alloc(VALUE klass)
{
rand_loop_t *rnd;
VALUE obj = TypedData_Make_Struct(klass, rand_loop_t, &random_loop_type, rnd);
- rnd->base.seed = INT2FIX(0);
+ rb_random_base_init(&rnd->base);
return obj;
}
diff --git a/include/ruby/random.h b/include/ruby/random.h
index 1d45dc25b9..2e7ac75a01 100644
--- a/include/ruby/random.h
+++ b/include/ruby/random.h
@@ -71,6 +71,7 @@ typedef const rb_data_type_t rb_random_data_type_t;
#endif
void rb_random_mark(void *ptr);
+void rb_random_base_init(rb_random_t *rnd);
double rb_int_pair_to_real(uint32_t a, uint32_t b, int excl);
void rb_rand_bytes_int32(rb_random_get_int32_func *, rb_random_t *, void *, size_t);
RUBY_EXTERN const rb_data_type_t rb_random_data_type;
diff --git a/random.c b/random.c
index 4ceff377e3..587e93c89d 100644
--- a/random.c
+++ b/random.c
@@ -297,12 +297,19 @@ try_rand_if(VALUE obj, rb_random_t *rnd)
}
/* :nodoc: */
+void
+rb_random_base_init(rb_random_t *rnd)
+{
+ rnd->seed = INT2FIX(0);
+}
+
+/* :nodoc: */
static VALUE
random_alloc(VALUE klass)
{
rb_random_mt_t *rnd;
VALUE obj = TypedData_Make_Struct(klass, rb_random_mt_t, &random_mt_type, rnd);
- rnd->base.seed = INT2FIX(0);
+ rb_random_base_init(&rnd->base);
return obj;
}