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/