1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

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).
This commit is contained in:
Nobuyoshi Nakada 2020-09-07 18:51:58 +09:00
parent d6ec0ef59b
commit 4924011262
Notes: git 2020-09-07 20:08:34 +09:00
3 changed files with 13 additions and 10 deletions

View file

@ -7,13 +7,10 @@ typedef struct {
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

View file

@ -44,14 +44,20 @@ typedef struct {
#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;

View file

@ -127,7 +127,7 @@ static VALUE random_seed(VALUE);
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)