summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-random/src/random.c
diff options
context:
space:
mode:
authorMATSUMOTO Ryosuke <[email protected]>2013-03-26 21:48:10 +0900
committerMATSUMOTO Ryosuke <[email protected]>2013-03-26 21:48:10 +0900
commitbdd27cbdcae7feb816e92795c43d220abad54223 (patch)
tree57d1b1c0b10ed0becb31aef4997b21ba6c138ac1 /mrbgems/mruby-random/src/random.c
parentb1bd62e047d99387ca9681e5d907713b4c94bb3e (diff)
downloadmruby-bdd27cbdcae7feb816e92795c43d220abad54223.tar.gz
mruby-bdd27cbdcae7feb816e92795c43d220abad54223.zip
Change Random module to class
Diffstat (limited to 'mrbgems/mruby-random/src/random.c')
-rw-r--r--mrbgems/mruby-random/src/random.c19
1 files changed, 9 insertions, 10 deletions
diff --git a/mrbgems/mruby-random/src/random.c b/mrbgems/mruby-random/src/random.c
index 9b5858a76..41d1774dd 100644
--- a/mrbgems/mruby-random/src/random.c
+++ b/mrbgems/mruby-random/src/random.c
@@ -10,7 +10,7 @@
#include <time.h>
-#define RAND_SEED_KEY "$mrb_ext_rand_seed"
+#define GLOBAL_RAND_SEED_KEY "$mrb_g_rand_seed"
void mt_srand(unsigned long seed)
{
@@ -54,7 +54,7 @@ mrb_value mrb_random_mt_rand(mrb_state *mrb, mrb_value max)
return value;
}
-static mrb_value mrb_random_rand(mrb_state *mrb, mrb_value self)
+static mrb_value mrb_random_g_rand(mrb_state *mrb, mrb_value self)
{
mrb_value *argv;
mrb_int argc;
@@ -82,14 +82,14 @@ static mrb_value mrb_random_rand(mrb_state *mrb, mrb_value self)
return mrb_nil_value();
}
- mrb_value seed = mrb_gv_get(mrb, mrb_intern(mrb, RAND_SEED_KEY));
+ mrb_value seed = mrb_gv_get(mrb, mrb_intern(mrb, GLOBAL_RAND_SEED_KEY));
if (mrb_nil_p(seed))
mrb_random_mt_srand(mrb, mrb_nil_value());
return mrb_random_mt_rand(mrb, max);
}
-static mrb_value mrb_random_srand(mrb_state *mrb, mrb_value self)
+static mrb_value mrb_random_g_srand(mrb_state *mrb, mrb_value self)
{
mrb_int argc;
mrb_value *argv;
@@ -118,8 +118,8 @@ static mrb_value mrb_random_srand(mrb_state *mrb, mrb_value self)
}
seed = mrb_random_mt_srand(mrb, seed);
- mrb_value old_seed = mrb_gv_get(mrb, mrb_intern(mrb, RAND_SEED_KEY));
- mrb_gv_set(mrb, mrb_intern(mrb, RAND_SEED_KEY), seed);
+ mrb_value old_seed = mrb_gv_get(mrb, mrb_intern(mrb, GLOBAL_RAND_SEED_KEY));
+ mrb_gv_set(mrb, mrb_intern(mrb, GLOBAL_RAND_SEED_KEY), seed);
return old_seed;
}
@@ -128,10 +128,9 @@ void mrb_mruby_random_gem_init(mrb_state *mrb)
{
struct RClass *random;
- random = mrb_define_module(mrb, "Random");
-
- mrb_define_class_method(mrb, random, "rand", mrb_random_rand, ARGS_ANY());
- mrb_define_class_method(mrb, random, "srand", mrb_random_srand, ARGS_ANY());
+ random = mrb_define_class(mrb, "Random", mrb->object_class);
+ mrb_define_class_method(mrb, random, "rand", mrb_random_g_rand, ARGS_ANY());
+ mrb_define_class_method(mrb, random, "srand", mrb_random_g_srand, ARGS_ANY());
}
void mrb_mruby_random_gem_final(mrb_state *mrb)