[前][次][番号順一覧][スレッド一覧]

ruby-changes:62857

From: Nobuyoshi <ko1@a...>
Date: Mon, 7 Sep 2020 20:08:31 +0900 (JST)
Subject: [ruby-changes:62857] 4924011262 (master): Added WITH_REAL macros

https://git.ruby-lang.org/ruby.git/commit/?id=4924011262

From 4924011262e35e3983e245cbfcff15aee7b295f3 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Mon, 7 Sep 2020 18:51:58 +0900
Subject: Added WITH_REAL macros

Added `WITH_REAL` versions to `RB_RANDOM_INTERFACE` macros.  Also
these macros including "without real" versions no longer contain
the terminator (semicolon and comma).

diff --git a/ext/-test-/random/loop.c b/ext/-test-/random/loop.c
index 246a1f5..4f7c800 100644
--- a/ext/-test-/random/loop.c
+++ b/ext/-test-/random/loop.c
@@ -7,13 +7,10 @@ typedef struct { https://github.com/ruby/ruby/blob/trunk/ext/-test-/random/loop.c#L7
     uint32_t num, idx, *buf;
 } rand_loop_t;
 
-static double loop_get_real(rb_random_t *rnd, int excl);
-
-RB_RANDOM_INTERFACE_DECLARE(loop)
+RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(loop);
 static const rb_random_interface_t random_loop_if = {
     32,
-    RB_RANDOM_INTERFACE_DEFINE(loop)
-    loop_get_real,
+    RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(loop)
 };
 
 static size_t
diff --git a/include/ruby/random.h b/include/ruby/random.h
index 4dd12d5..1d45dc2 100644
--- a/include/ruby/random.h
+++ b/include/ruby/random.h
@@ -44,14 +44,20 @@ typedef struct { https://github.com/ruby/ruby/blob/trunk/include/ruby/random.h#L44
 #define RB_RANDOM_INTERFACE_DECLARE(prefix) \
     static void prefix##_init(rb_random_t *, const uint32_t *, size_t); \
     static unsigned int prefix##_get_int32(rb_random_t *); \
-    static void prefix##_get_bytes(rb_random_t *, void *, size_t); \
-    /* end */
+    static void prefix##_get_bytes(rb_random_t *, void *, size_t)
+
+#define RB_RANDOM_INTERFACE_DECLARE_WITH_REAL(prefix) \
+    RB_RANDOM_INTERFACE_DECLARE(prefix); \
+    static double prefix##_get_real(rb_random_t *, int)
 
 #define RB_RANDOM_INTERFACE_DEFINE(prefix) \
     prefix##_init, \
     prefix##_get_int32, \
-    prefix##_get_bytes, \
-    /* end */
+    prefix##_get_bytes
+
+#define RB_RANDOM_INTERFACE_DEFINE_WITH_REAL(prefix) \
+    RB_RANDOM_INTERFACE_DEFINE(prefix), \
+    prefix##_get_real
 
 #if defined _WIN32 && !defined __CYGWIN__
 typedef rb_data_type_t rb_random_data_type_t;
diff --git a/random.c b/random.c
index 75f4dba..4ceff37 100644
--- a/random.c
+++ b/random.c
@@ -127,7 +127,7 @@ static VALUE random_seed(VALUE); https://github.com/ruby/ruby/blob/trunk/random.c#L127
 static void fill_random_seed(uint32_t *seed, size_t cnt);
 static VALUE make_seed_value(uint32_t *ptr, size_t len);
 
-RB_RANDOM_INTERFACE_DECLARE(rand_mt)
+RB_RANDOM_INTERFACE_DECLARE(rand_mt);
 static const rb_random_interface_t random_mt_if = {
     DEFAULT_SEED_CNT * 32,
     RB_RANDOM_INTERFACE_DEFINE(rand_mt)
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]