diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-11-08 09:06:21 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-11-10 11:59:45 +0900 |
commit | 6eaed20e145c1ab4c9c4ccf669d0ebea934f4d36 (patch) | |
tree | ec43f8696b661dcd8d19ad60e353999fbac0490b /random.c | |
parent | 0ae5de1a5ddcca407dd2ba30ca5d5f3d7c3ea4bc (diff) |
Add version to the interface of Random extensions
Diffstat (limited to 'random.c')
-rw-r--r-- | random.c | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -400,6 +400,15 @@ random_init(int argc, VALUE *argv, VALUE obj) rb_raise(rb_eTypeError, "undefined random interface: %s", RTYPEDDATA_TYPE(obj)->wrap_struct_name); } + + unsigned int major = rng->version.major; + unsigned int minor = rng->version.minor; + if (major != RUBY_RANDOM_INTERFACE_VERSION_MAJOR) { + rb_raise(rb_eTypeError, "Random interface version " + STRINGIZE(RUBY_RANDOM_INTERFACE_VERSION_MAJOR) "." + STRINGIZE(RUBY_RANDOM_INTERFACE_VERSION_MINOR) " " + "expected: %d.%d", major, minor); + } argc = rb_check_arity(argc, 0, 1); rb_check_frozen(obj); if (argc == 0) { |