summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-11-27 21:36:12 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2020-11-27 21:38:08 +0900
commit039ba387aa3c94600c60bbc2d7a9cf448f843ca5 (patch)
tree9424b858ce86c1c8769982cd36de25254ba820cf
parent5d8fe1267d2d4e60943e7b41f6dad990a53e077b (diff)
Use opaque struct pointer than void
-rw-r--r--include/ruby/random.h5
-rw-r--r--ractor.c6
-rw-r--r--ractor_core.h4
-rw-r--r--random.c4
4 files changed, 11 insertions, 8 deletions
diff --git a/include/ruby/random.h b/include/ruby/random.h
index 001f67df86..56b2dd413f 100644
--- a/include/ruby/random.h
+++ b/include/ruby/random.h
@@ -14,9 +14,10 @@
RBIMPL_SYMBOL_EXPORT_BEGIN()
-typedef struct {
+struct rb_random_struct {
VALUE seed;
-} rb_random_t;
+};
+typedef struct rb_random_struct rb_random_t;
typedef void rb_random_init_func(rb_random_t *, const uint32_t *, size_t);
typedef unsigned int rb_random_get_int32_func(rb_random_t *);
diff --git a/ractor.c b/ractor.c
index 58f899e9ee..cb474d00b4 100644
--- a/ractor.c
+++ b/ractor.c
@@ -1773,11 +1773,11 @@ rb_ractor_stderr_set(VALUE err)
}
}
-void *
-rb_ractor_default_rand(void *ptr)
+struct rb_random_struct *
+rb_ractor_default_rand(struct rb_random_struct *ptr)
{
if (rb_ractor_main_p()) {
- static void *default_rnd;
+ static struct rb_random_struct *default_rnd;
if (UNLIKELY(ptr != NULL)) {
rb_ractor_t *cr = GET_RACTOR();
cr->default_rand = default_rnd = ptr;
diff --git a/ractor_core.h b/ractor_core.h
index dd662141a0..6e9a63dc28 100644
--- a/ractor_core.h
+++ b/ractor_core.h
@@ -36,6 +36,8 @@ struct rb_ractor_waiting_list {
rb_ractor_t **ractors;
};
+struct rb_random_struct; // c.f. ruby/random.h
+
struct rb_ractor_struct {
// ractor lock
rb_nativethread_lock_t lock;
@@ -127,7 +129,7 @@ struct rb_ractor_struct {
VALUE verbose;
VALUE debug;
- void *default_rand; // used in random.c
+ struct rb_random_struct *default_rand; // used in random.c
// gc.c rb_objspace_reachable_objects_from
struct gc_mark_func_data_struct {
diff --git a/random.c b/random.c
index 76183f9c7a..6b26e2b6cd 100644
--- a/random.c
+++ b/random.c
@@ -149,11 +149,11 @@ rand_start(rb_random_mt_t *r)
static rb_random_mt_t *
default_rand(void)
{
- void *rb_ractor_default_rand(void *); // ractor.c
+ rb_random_t *rb_ractor_default_rand(rb_random_t *); // ractor.c
rb_random_mt_t *rnd = (rb_random_mt_t *)rb_ractor_default_rand(NULL);
if (rnd == NULL) {
rnd = ZALLOC(rb_random_mt_t);
- rb_ractor_default_rand(rnd);
+ rb_ractor_default_rand(&rnd->base);
}
return rnd;
}