diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-04-29 09:11:38 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-04-29 09:11:38 +0900 |
| commit | 975d52d804b8dda4d2f6831506913d0dcf46fe45 (patch) | |
| tree | 447a7ab4c5b83ce0321273bf7095b042d9f1a56d | |
| parent | 499619454b13b00466c2fddac02c5c6949bf5250 (diff) | |
| download | mruby-975d52d804b8dda4d2f6831506913d0dcf46fe45.tar.gz mruby-975d52d804b8dda4d2f6831506913d0dcf46fe45.zip | |
fix memory leaks in mruby-random
| -rw-r--r-- | mrbgems/mruby-random/src/random.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/mrbgems/mruby-random/src/random.c b/mrbgems/mruby-random/src/random.c index 3dda341cb..b1d00d79e 100644 --- a/mrbgems/mruby-random/src/random.c +++ b/mrbgems/mruby-random/src/random.c @@ -17,6 +17,7 @@ static void mt_state_free(mrb_state *mrb, void *p) { + mrb_free(mrb, p); } static const struct mrb_data_type mt_state_type = { @@ -191,8 +192,6 @@ static mrb_value mrb_random_rand(mrb_state *mrb, mrb_value self) if (mrb_nil_p(seed)) { mrb_random_mt_srand(mrb, t, mrb_nil_value()); } - mrb_iv_set(mrb, self, mrb_intern(mrb, MT_STATE_KEY), - mrb_obj_value(Data_Wrap_Struct(mrb, mrb->object_class, &mt_state_type, (void*) t))); return mrb_random_mt_rand(mrb, t, max); } @@ -206,8 +205,7 @@ static mrb_value mrb_random_srand(mrb_state *mrb, mrb_value self) seed = mrb_random_mt_srand(mrb, t, seed); old_seed = mrb_iv_get(mrb, self, mrb_intern(mrb, INSTANCE_RAND_SEED_KEY)); mrb_iv_set(mrb, self, mrb_intern(mrb, INSTANCE_RAND_SEED_KEY), seed); - mrb_iv_set(mrb, self, mrb_intern(mrb, MT_STATE_KEY), - mrb_obj_value(Data_Wrap_Struct(mrb, mrb->object_class, &mt_state_type, (void*) t))); + return old_seed; } |
